Hallo,
habe ein riesiges Problem. Schonmal im vorraus möchte ich euch warnen. Mein VB ProgrammierStill ist relativ gewöhnungsbedürftig, aber das ist ein anderes Problem.
Ich habe ein Programm, wo einfach die Farbe des Pixels unter dem MAuszeiger rausgelesen wird, und ausgegeben. Problem ist:
Läuft das Programm etwas länger passieren sehr merkwürdige sachen! Mein Desktop geht Kaputt und Programme stürzen ab. Das Projekt an sich stürtzt sowieso ab. Die Taskleiste geht nach oben, bis riegndwann das ganze Bild grau ist! Eine andere Auffälligkeit, im Taskmanager geht der Speicherverbrauch immer langsam nach oben. Aber der Speocherverbrauch geht nicht konstant nach oben, es kommt auch vor, dass er zurück geht.
Ausprobiert habe ich folgendes:
- EXE erstellt
- Unnötife funktionen rausgenommen
- Die Info nicht in der TASKleiste eingeblendet
- Time Intervall verändert ( ändert sich vllt nur die dauer bis zum absturz)
- Die IF Abfrage rausgenommen
...
Probieren konnte ich nicht:
- Anderes System
Das ist eigentlich der wichtigste Code.
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 Timer1_Timer()
xPos.Text = CursorPos.x + 1
yPos.Text = CursorPos.y + 1
Call GetCursorPos(CursorPos)
ldC = GetWindowDC(0)
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 Vielleicht habt ihr ja ein paar Coole Ideen!
Anbei die Form, die ich als RAR archive anhänge.
http://www.file-upload.net/download-1903584/Form1.rar.html
Und einmal ein Screenshot, also damit iihr euch ein kleines Bild machen könnt:
Es fängt so an, das die Zahl in der Ecke auftaucht, und dann um so länger es läuft um so schlimmer, bis irwann Apokalypse ist ^^
Vielen Danke im Vorraus!
Grüße |