hier passieren gerade komische Dinge.
In meinem Hauptscript sind einige Bestandteile dazu da eine bestimmte Anwendung im Chrome oder IE zu öffnen bzw. sofern offen eine Kundennummer ins Suchfeld einzutragen und die suche zu starten.
Um das Suchfeld ausfindig zu machen nutze ich Gdip_BitmapFromScreen("hwnd:" . HWND) die HWND ist 100%ig korrekt weil das Script selbst das Fenster öffnet und die HWND so direkt bekommt bzw. weiterverwendet.
Ich habe die Teile die gesucht werden sollen als BMP Dateien gespeichert und lese diese per Gdip_CreateBitmapFromFile(file) ein.
Meine Suchfunktion sieht nun so aus:
Code: Select all
SearchNeedle(hwnd, file)
{
Global RET, LIST, AAXDebug, AAXGDIalt
If !gdipToken := Gdip_Startup()
{
MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
Return
}
if (AAXDebug=1)
{
file2:=A_TickCount ".png"
bmpHaystack := Gdip_BitmapFromScreen("hwnd:" . HWND)
Gdip_SaveBitmapToFile(bmpHaystack, file2, 100)
}
else
{
bmpHaystack := Gdip_BitmapFromScreen("hwnd:" . HWND)
}
bmpNeedle := Gdip_CreateBitmapFromFile(file)
RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,0,0,0,0,25,"",1)
Gdip_DisposeImage(bmpHaystack)
Gdip_DisposeImage(bmpNeedle)
Gdip_Shutdown(gdipToken)
}
Es passierte schon mal, dass eine neue Browserversion neue Bilder für den Vergleich benötigte. Danach war das thema gegessen. Aber diesmal ist es anders. Wenn ich AAXDebug:=1 setze erstellt das Script das Bild welches es zum vergleichen nutzt ebenfalls als PNG. Öffne ich diese stellt es sich so dar, dass der Chrome komplett schwarz ist, und der IE komplett Weiß. Da ist kein Inhalt mehr.
Ich steh auf dem Schlauch. Warum ist das? Verhindern die Browser das erstellen des Bildes? Kann man das ändern?
Hilfe
MfG
fump
EDIT//
Nutze ich erst WinGetPos,x,y,w,h,ahk_id %hwnd% und dann bmpHaystack := Gdip_BitmapFromScreen(x "|" y "|" w "|" h) wird das Bild korrekt erstellt und auch die Suche klappt erfolgreich.
Ist aber nicht Sinn der Sache. Denn bmpHaystack := Gdip_BitmapFromScreen("hwnd:" . HWND) sollte ja nun genauso funktionieren.