vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Absturz beim MiniProjekt - 
Autor: Preisser
Datum: 22.09.09 11:35

Hallo,
ich hatte mal bei mir das selbe Problem, und es dürfte an der Zeile
ldC = GetWindowDC(0)
liegen, die im Timer1_Timer-Ereignis steht. Wenn diese API-Funktion sehr oft aufgerufen wird, benötigt das Programm immer mehr Ressourcen und führt zu diesen Grafikfehlern. Laut MSDN muss dieses Handle wieder freigegeben werden, mit der ReleaseDC Funktion. Oder man ruft diese Funktion nur einmal beim Programmstart auf, und benutzt dann immer dieses Handle, wie z. B. so:

Option Explicit
Dim CursorPos As POINTAPI
Dim a As String
Dim b As String
Dim ldC As Long
Dim lol As Long
Dim sTmp As String
Dim zaehler As Integer
 
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
 
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, _
    ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) _
        As Long
 
Private Type POINTAPI 'Variablentyp deklarieren
   x As Long
   y As Long
End Type
 
 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Private Declare Sub mouse_event Lib "user32" ( _
  ByVal dwFlags As Long, _
  ByVal dx As Long, _
  ByVal dy As Long, _
  ByVal cButtons As Long, _
  ByVal dwExtraInfo As Long)
 
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
 
 
 
Private Sub Form_Load()
ldC = GetWindowDC(0)
End Sub 
 
Private Sub Timer1_Timer()
 
xPos.Text = CursorPos.x + 1
yPos.Text = CursorPos.y + 1
Call GetCursorPos(CursorPos)
 
lol = GetPixel(ldC, CursorPos.x, CursorPos.y)
DoEvents
 
 
If Combo1.Text = "Hex" Then
    sTmp = Right$("000000" & Hex(lol), 6)
    Form1.Caption = "R:" & Right$(sTmp, 2) & " G:" & Mid$(sTmp, 3, 2) & " B:" & _
      Left$(sTmp, 2)
    ElseIf Combo1.Text = "Dec" Then
 
    sTmp = Right$("000000" & Hex(lol), 6)
    Form1.Caption = "R:" & rechneUm(Right(sTmp, 2)) & " G:" & rechneUm(Mid( _
      sTmp, 3, 2)) & " B:" & rechneUm(Left(sTmp, 2))
    End If
 
End Sub


Beitrag wurde zuletzt am 22.09.09 um 11:38:40 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Absturz beim MiniProjekt -1.448DaPole22.09.09 11:19
Re: Absturz beim MiniProjekt -910Preisser22.09.09 11:35
Re: Absturz beim MiniProjekt -913Dirk22.09.09 11:56
Re: Absturz beim MiniProjekt -911DaPole22.09.09 12:15
Re: Absturz beim MiniProjekt -895DaPole22.09.09 16:25
Re: Absturz beim MiniProjekt -855Dirk23.09.09 10:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel