gdip, wie 2 Bilder im Gui laden ?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

gdip, wie 2 Bilder im Gui laden ?

28 Sep 2018, 09:37

Hallo, ich fange gerade an, ein Gui mit gdip zu erstellen, scheitere aber an der Postion der Bilder.
Beide Bilder werden übereinander gelegt und ich weiß nicht, wie ich hier eine andere Postion angeben kann.


Code: Select all

#SingleInstance, Force
#NoEnv
SetBatchLines, -1

; Uncomment if Gdip.ahk is not in your standard library
#Include, D:\Tools\AutoHotkey 1.1\Gdip.ahk

; Start gdi+
If !pToken := Gdip_Startup()
{
	MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
	ExitApp
}


Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, 1: Show, w1920 h190 ;, NA
hwnd1 := WinExist()
Koch_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Koch.png")
J_Bitmap := Gdip_CreateBitmapFromFile("Bilder/J.png")

;Width := Gdip_GetImageWidth(Koch_Bitmap), Height := Gdip_GetImageHeight(Koch_Bitmap)
hbm := CreateDIBSection(80, 80)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetInterpolationMode(G, 7)

Gdip_DrawImage(G, Koch_Bitmap, 0, 0, 80, 80, 0, 0, 80, 80)
Gdip_DrawImage(G, J_Bitmap, 0, 0, 80, 80, 0, 0, 80, 80)
UpdateLayeredWindow(hwnd1, hdc, 200, 20, 80, 80) ; Position des Bildes
SelectObject(hdc, obm)
DeleteObject(hbm)
DeleteDC(hdc)
Gdip_DeleteGraphics(G)
;Gdip_DisposeImage(Koch_Bitmap)
Return

Exit:
; gdi+ may now be shutdown on exiting the program
Gdip_Shutdown(pToken)
F9::
ExitApp
Return
MannyKSoSo
Posts: 440
Joined: 28 Apr 2018, 21:59

Re: gdip, wie 2 Bilder im Gui laden ?

28 Sep 2018, 09:43

Hallo, nach Ihren zwei Variablen in Gdi DrawImage ist die x-Koordinate und y-Koordinate, die Sie beide auf 0 setzen, legen Sie die x-Koordinate der zweiten auf 85 und die Bilder sollten nicht überlappen.

Hinweis: Ich spreche kein Deutsch
nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: gdip, wie 2 Bilder im Gui laden ?

28 Sep 2018, 09:47

Leider nicht, dann schneidet er das Bild ab, links, rechts, oben oder unten.

Das Script habe ich gefunden, es war aber nur mit 1 Bild drin.
Leider finde ich kein Script, wo 2 Bilder drin sind, damit ich sehen kann, wie das funktioniert.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: gdip, wie 2 Bilder im Gui laden ?

28 Sep 2018, 14:05

Es würde dir gut tun zu verstehen wie obiges Script eigentlich das Bild auf deine GUI bringt.

Zuerst erstellst erstellst du ein Zwischenspeicher Bild namens hbm.
Danach öffnest du einen Device Context der für verschiedene Dinge wichtig ist - der Device Context wird mit dem Bild verknüpft.
Als nächstes erstellst du eine pGraphics welche verwendet wird um mit GDIp zu zeichnen - der pGraphics wird aus dem Device Context erstellt.
Als letzter vorbereitender Schritt lädst du ein Bild.

Danach befehligst du, dass das Bild auf die pGraphics gezeichnet wird.
Gdip_DrawImage(die pGraphics, das Bild, ...)
Bei deinen Einstellungen von der Größe wird das Bild schlichtweg mit gleichbleibender Größe auf die pGraphics gezeichnet wird.
Die pGrahics zeichnet dann auf den Device Context dieser wiederum zeichnet auf dein Zwischenspeicher Bild hbm.
Da hbm auch genau so groß ist wie das Bild das du geladen hast wird das gesamte Zwischenspeicher Bild mit deinem geladenen Bild überzeichnet.

Im nächsten Schritt befiehlst du diesen Device Context auf das GUI zu zeichnen:
UpdateLayeredWindow(GUI ID (HWND), dein Device context, ...)
Bei deinen Einstellugen wird nur der Inhalt mit Größe genau eines Bildes an eine bestimmte Stelle im GUI kopiert.

Wenn du nun einfach ein 2. DrawImage ausführst werden die alten Daten in deinem Zwischenspeicher Bild einfach übermalt.
Um das zu verhindern solltest du das Zwischenspeicher Bild doppelt so groß machen und beide Bilder nebeneinander auf dieses zeichnen und den Device Context doppelt so groß auf die GUI zu zeichnen.
Recommends AHK Studio
nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: gdip, wie 2 Bilder im Gui laden ?

28 Sep 2018, 23:17

Vielen Dank, ich habe es geschafft das beide Bilder nebeneinander angezeigt werden.

Ist mein erster geh versuch mit gdip. Jetzt stehe ich vor dem Problem, wie ich den Bildern eine Aktion hinzufügen kann, also beim Klick auf das Koch Bild gehe zur Sprungmarke xy.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: gdip, wie 2 Bilder im Gui laden ?

29 Sep 2018, 04:38

An sich bietet Windows keine Möglichkeit direkt zu schauen ob ein Klick über so einem Bild ist.
Windows verwendet eher controls - wie z.B. ein Picture control oder ein edit.
Wenn du Bilder per GDIp nur anzeigen willst kannst du sie direkt per GDIp so auf das Bild zeichnen - wenn du jedoch auch auf clicks reagieren musst lohnt es sich vielleicht für jedes Bild ein eigenes Picture control hinzuzufügen und ein eigenes gLabel anzulegen.

Falls du wirklich mit deiner jetzigen Methode weiterarbeiten möchtest müsstest du z.B. einen Hotkey auf die Linke Maustaste legen, solange die Maus über einem der Bilder ist.
Dafür könntest du z.B. mit #If arbeiten:

Code: Select all

#If ueberBild1()
LButton::
Msgbox Bild1 wurde geclickt
return
#If ueberBild2()
LButton::
Msgbox Bild2 wurde geclickt
return
Eine andere Methode wäre es Allgemein einen Hotkey auf die Linke Maustaste zu legen solange dein GUI aktiv ist und zu schauen ob die Maus über einem Bild ist:

Code: Select all

#IfWinActive, deine GUI
~Lbutton:: ;LButton durchlassen da die linke Maustaste sonst überall blockiert ist solange deine GUI aktiv ist
if (uberBild1()) {
	Msgbox Bild1 geclickt
} else if (ueberBild2()) {
	Msgbox Bild2 geclickt
}
Um zu testen ob deine Maus über einem deiner Bilder ist bietet sich MouseGetPosition an.
Wenn deine Mausposition von MouseGetPosition den selben Nullpunkt wie die Positions- und Größenangabe wie dein Bild haben kannst du folgende Berechnung verwenden um dies zu machen:

Code: Select all

x_Position_Bild := ..
y_Position_Bild := ..
weite_Bild := ..
höhe_Bild := ..
x_Position_Maus := ..
y_Position_Maus := ..

if (x_Position_Maus >= x_Position_Bild && x_Position_Maus <= x_Position_Bild + weite_Bild) {
	Msgbox passt von der x Position
}

if (y_Position_Maus >= y_Position_Bild && y_Position_Maus <= y_Position_Bild + höhe_Bild) {
	Msgbox passt von der y Position
}
Recommends AHK Studio
nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: gdip, wie 2 Bilder im Gui laden ?

29 Sep 2018, 10:23

Vielen lieben Dank, habe es jetzt mal mit einem Klick über einem Bild gemacht, so sieht es zur Zeit aus:

https://drive.google.com/file/d/1NH3adv ... sp=sharing

Code: Select all

#SingleInstance, Force
#NoEnv
SetBatchLines, -1

; Uncomment if Gdip.ahk is not in your standard library
#Include, D:\Tools\AutoHotkey 1.1\Gdip.ahk
#Include D:\Tools\AutoHotkey 1.1\Compiler\ToolTipOpt.ahk
; Start gdi+
If !pToken := Gdip_Startup()
{
	MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
	ExitApp
}


Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs

Gui, 1: Show, w1920 h120 ;, NA
hwnd1 := WinExist()
Koch_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Koch.png")
J_Bitmap := Gdip_CreateBitmapFromFile("Bilder/J.png")
Stiefel_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Stiefel.png")
Springseil_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Springseil.png")
Seife_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Seife.png")
Hammer_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Hammer.png")
Nuss_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Nuss.png")
Buddeln_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Buddeln.png")
Hypersphaere_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Hypersphaere.png")
Fahnendrehen_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Fahnendrehen.png")
Apfelmaschine_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Apfelmaschine.png")
Apfelbaum_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Apfelbaum.png")
Schloss_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Schloss.png")
Weintrauben_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Weintrauben.png")
Kanne_Bitmap := Gdip_CreateBitmapFromFile("Bilder/Kanne.png")

;Width := Gdip_GetImageWidth(Koch_Bitmap), Height := Gdip_GetImageHeight(Koch_Bitmap)
hbm := CreateDIBSection(600, 120)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetInterpolationMode(G, 7)
Gdip_DrawImage(G, Koch_Bitmap, 0, 0, 60, 60, 0, 0, 60, 60) ;, gJbuddeln
Gdip_DrawImage(G, J_Bitmap, 60, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Stiefel_Bitmap, 120, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Springseil_Bitmap, 180, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Seife_Bitmap, 240, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Hammer_Bitmap, 300, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Nuss_Bitmap, 360, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Buddeln_Bitmap, 420, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Hypersphaere_Bitmap, 480, 0, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Fahnendrehen_Bitmap, 30, 53, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Apfelmaschine_Bitmap, 90, 53, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Apfelbaum_Bitmap, 150, 53, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Schloss_Bitmap, 330, 53, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Weintrauben_Bitmap, 390, 53, 60, 60, 0, 0, 60, 60)
Gdip_DrawImage(G, Kanne_Bitmap, 450, 53, 60, 60, 0, 0, 60, 60)
UpdateLayeredWindow(hwnd1, hdc, 0, 0, 600, 120) ; Position des Bildes
;SelectObject(hdc, obm)
DeleteObject(hbm)
DeleteDC(hdc)
Gdip_DeleteGraphics(G)
;Gdip_DisposeImage(Koch_Bitmap)
Gui, Add, Picture, gZombieKoeche x0 y0 w60 h60, Bilder/Leer.png
Gui, Add, Picture, gJbuddeln x60 y0 w60 h60, Bilder/Leer.png
Gui, Add, Picture, gStiefel x120 y0 w60 h60, Bilder/Leer.png
Gui, font, cBlack s8 normal
ToolTip, F8 Reload`nF9 Exit, 238, 68, 1
ToolTip, Version 1.01, 1850, 0, 2
Return

Exit:
; gdi+ may now be shutdown on exiting the program
Gdip_Shutdown(pToken)

; --------------------------------------- Sprungmarken ----------------------------------

ZombieKoeche:
ToolTipFont("s16", "arialbd")
ToolTip, Plaziere das Bild und drücke Space, 98, 120, 3
Sleep, 100
KeyWait, Space, D
ToolTip, , , , 3
Sleep, 500
Loop, 30
{
	MeinLabel:
    /*
    Einsiedler anklicken
    */
    SendEvent, {Click, 238, 449, 0}
    Sleep, 10
    Sleep, 300
    Click, Left, 1
    Sleep, 10
    Sleep, 300
    SendEvent, {Click, 301, 461, 0}
    Sleep, 10
    Sleep, 300
    Click, Left, 1
    Sleep, 10
    Sleep, 300
    SendEvent, {Click, 426, 385, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY 
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 605, 296, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 780, 210, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 956, 122, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 603, 474, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 779, 386, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 960, 297, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1136, 209, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 783, 560, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 960, 472, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1136, 386, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12 
    SendEvent, {Click, %FoundX%, %FoundY%, 0} 
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1308, 297, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 955, 650, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY 
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12 
    SendEvent, {Click, %FoundX%, %FoundY%, 0} 
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1133, 562, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1309, 472, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50 
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1485, 385, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0} 
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1135, 736, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY 
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12 
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1310, 648, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1486, 562, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY 
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 1661, 472, 0}
    Sleep, 10
    Sleep, 100
    MouseGetPos, FoundX, FoundY  
    Sleep, 100
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    FoundX += 50  
    FoundY += 12  
    SendEvent, {Click, %FoundX%, %FoundY%, 0}  
    Sleep, 10
    Sleep, 200
    Click, Left, 1
    Sleep, 10
    Sleep, 200
    SendEvent, {Click, 240, 100, 0}
    Sleep, 10
	ToolTipFont("s16", "arialbd")
    tooltip := {"x" : 100, "y" : 970}, 3
duration := 980 ; in Sekunden
SetTimer, Countdown, 1000

Countdown:
{
if !(duration) {
ToolTip, , , , 3
SetTimer, , Off
Goto, MeinLabel
return
}
duration--
minutes := SubStr("0" . (duration // 60), -1)
seconds := SubStr("0" . (Mod(duration, 60)), -1)
ToolTip, % minutes . ":" . seconds, % tooltip.x, % tooltip.y, 3
return
}
    Goto, MeinLabel
}
Return


Jbuddeln:
Var := "J"
ToolTipFont("s16", "arialbd")
ToolTip, Plaziere das Bild und drücke Space, 98, 120, 3
Sleep, 500
KeyWait, Space, D
ToolTip, , , , 3
Sleep, 500

PixelSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, 0xFC85A4, 1, Fast RGB
if ErrorLevel=1
    Goto, Nicht-gefunden
if ErrorLevel=0
    MouseMove, %FoundX%, %FoundY%, 0
	SendEvent, {Click, Rel 0, 40, 0}
    SetMouseDelay, 3
   
	Click, left, 350
    Sleep, 10
	SendEvent, {Click, Rel 150, 20, 0}
    ToolTipFont("s16", "arialbd")
ToolTip, buddel nach dem J..., , ,3
Sleep, 3000
ToolTip, , , , 3

Return
; J buddeln Ende	




Stiefel:
Var := "Stiefel"
ToolTipFont("s16", "arialbd")
ToolTip, Plaziere das Bild und drücke Space, 98, 120, 3
Sleep, 100
KeyWait, Space, D
ToolTip, , , , 3
Sleep, 500

CoordMode, Pixel, Window
PixelSearch, FoundX, FoundY, 0, 0, 1920, 1080, 0xc15a0c, 0, Fast RGB
if ErrorLevel=1
    Goto, Nicht-gefunden

If ErrorLevel = 0
	Click, %FoundX%, %FoundY%, 0
    SendEvent, {Click, Rel -5, 15, 0}
    Sleep, 10
    SetMouseDelay, 3
    Click, Left, 350
        Sleep, 0
   
    Sleep, 300
    SendEvent, {Click, Rel 150, 20, 0}
    Sleep, 10
 
    ToolTipFont("s16", "arialbd")
ToolTip, buddel nach dem Stiefel, , , 3
Sleep, 3000
ToolTip, , , , 3
Return
; Stiefel buddeln Ende	

Nicht-gefunden:
Return
F8::Reload
F9::
ExitApp
Return
User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: gdip, wie 2 Bilder im Gui laden ?

29 Sep 2018, 10:48

Hi, nur so aus reiner Neugier: wozu sind die vielen doppelten Sleep-Anweisungen? Die kann man doch zusammenfassen - oder hat das einen anderen Hintergrund?

VG - Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: gdip, wie 2 Bilder im Gui laden ?

30 Sep 2018, 11:18

Hallo, die doppelten Sleep Anweisungen müssen nicht sein, da hast Du recht, die kommen noch aus eines meiner ersten Scripte, damals noch mit den MacroCreator erstellt.
Habe den Teil jetzt nur eben reinkopiert um alles zu testen und ich muss sagen, läuft super, so kann ich mir doch so einige lästige Aufgaben aus 2 verschiedenen Spielen abnehmen lassen (darum auch die 2 verschiedenen Farbe).

lg

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 57 guests