Tja! Vad menas med hdc?? vad ska jag skriva där? Api... ;) <code>Public Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long Berätta vad det är du vill gör och hur du försöker göra det. Istället för att fråga fur du tänk lösa det. Kan finnas bättre sätt att göra det på. Tack alla jag hittade ett (förmig) sedan länge glömt men dock älskat verktyg...APITEXTVIEWER :D och hittade vad jag behövde tackar tackar Skulle du vilja posta det? Är intresserad av precis samma grej! Nu vet jag inte hur jag har snurrat till det.Problem med GetPixel()
Jag vill altså spara färgen viss bildpunkt i en variabel och köra en loop ända tills den aktuella aktuella färgen för den bildpunkten inte matchar variabeln. Vad i min kod är fel?
Dim acnr As Long
Dim pixen As Variant
Dim pixen2 As Variant
<code>
Sub skicka()
'Härifrån till.....
SetCursorPos 120, 520
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Sleep 100
SendKeys acnr, True
Sleep 100
SendKeys "{TAB}", True
Sleep 100
SendKeys acnr, True
hehe = hehe + 1
Form1.Caption = "AccGen:" & acnr
Sleep 10000
SendKeys "{ENTER}", True
Sleep 5000
'..hit fungerar koden bry er inte om den om ni inte vill.
pixen2 = GetPixel(, 560, 240)
End Sub
Private Sub Command1_Click()
'Detta funkar ej
pixen = GetPixel(, 560, 240)
pixen2 = GetPixel(, 560, 240)
Do While pixen2 = pixen
skicka
pixen2 = GetPixel(, 560, 240)
Loop
End Sub
Private Sub Form_Load()
acnr = 100000
Form1.Caption = "AccGen:" & acnr
End Sub
</code>Problem med GetPixel()
Jag vill inte få reda på en en pixel i ett av mina egna fönster.
<code>
Public Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long
</code>Sv: Problem med GetPixel()
hdc heter egentligen hDc, dvs. en handle (handtag/referens) till ett context device, dvs. ett objekt du kan rita på. Det objektet kan t.ex. vara kopplat till ett fönster eller vara fristående så att man kan t.ex. kan rita en bild och spara den utan att behöva visa den någonstanns.
För att få tag på ett annat fönsters dc så behövs det lite api, ta dig en titt på (vb 6 syntax):
Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
Du stoppar där in handlen till det fönster du vill titta på och får tillbaka en handle till en dc. Den handlen kan du sedan stoppa in i GetPixel funktionen.Sv: Problem med GetPixel()
</code>
är detta api jag ska använda för att få fram hwnd?Sv: Problem med GetPixel()
Om punkten/pixeln ligger i formuläret använder du Me.hDC:
<code>
pixen = GetPixel(Me.hDC, 560, 240)
</code>
Och om punkten/pixeln ligger i ett underliggande kontroll/fönster använder du DinKontrol.hDC:
<code>
pixen = GetPixel(Picture1.hDC, 560, 240)
</code>Sv: Problem med GetPixel()
Sv: Problem med GetPixel()
mvh FredrikSv: Problem med GetPixel()
Men det funkar och det är jag glad för... I alla fall...
MODUL
<code>
Public Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long
</code>
FORM
<code>
Command1_Click( )
GetPixel (,X,Y)
End Sub
</code>