hab mir ein kleines skript geschrieben um über den touch über nicht sichtbaren buttons/fenster die immer um vordergrund liegen das jeweilig laufende programm zu beenden und ein anderes zu starten
funktioniert dann so
click button1
click button2
hold shift+click button3
laufendes programm wird beendet
anderes wird gestartet
sleep 150 sek
programm wird beendet
anderes programm wird gestartet
die buttons sollten jeweils im linken oberen, rechten oberen, und rechten unteren eck des bildschirm liegen
soweit so gut für meine auflösung am laptob angepasst...
nur soll das ganze auf verschiedenen terminals laufen die alle irgednwie andere auflösungen haben
mal 1440x900 mal mit 1024x768 mal 2048x1024 usw
gibts jetzt ne möglichkeit die auflösung automatisch aus zu lesen und das skript bzw die positionen der fenster mit den buttons automatisch an zu passen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")
If Not ProcessExists("notepad.exe") Then ;check mainprogram is running
Run("notepad.exe") ;if not start mainprogram
EndIf
sleep(2000)
gui1()
Func gui1()
Local $hGUI1 = GUICreate("Gui 1", 50, 65, -50, -25, 0, 0) ;window left top
Local $idButton2 = GUICtrlCreateButton("",46, 0, 82, 40)
WinSetTrans( $hGUI1, '', 255 ) ; set transparent to 1 for invisible
WinSetOnTop("Gui 1", '', 1) ; set window always on top
GUISetState(@SW_SHOW)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton2
; Disable the first GUI
GUISetState(@SW_DISABLE, $hGUI1)
gui2()
EndSwitch
WEnd
EndFunc ;==>gui1
Func gui2()
Local $hGUI2 = GUICreate("Gui 2", 85, 65, 1293, -25, 0, 0) ;window rigth top
Local $idButton3 = GUICtrlCreateButton("", 0, 0, 82, 40)
WinSetTrans( $hGUI2, '', 255 ) ; set transparent to 1 for invisible
WinSetOnTop("Gui 2", '', 1) ; set window always on top
GUISetState(@SW_SHOW)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton3
; Disable the first GUI
GUISetState(@SW_DISABLE, $hGUI2)
gui3()
EndSwitch
WEnd
EndFunc
Func gui3()
Local $hGUI3 = GUICreate("Gui 3", 85, 65, 1293, 700, 0, 0) ;window rigth down
Local $idButton3 = GUICtrlCreateButton("", 0, 0, 82, 40)
WinSetTrans( $hGUI3, '', 255 ) ; set transparent to 1 for invisible
WinSetOnTop("Gui 3", '', 1) ; set window always on top
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton3
If _IsPressed("10", $hDLL) Then ;hold shift + click button for action
ProcessClose("menu.exe")
sleep(2000)
run("C:\ATM\atm.exe")
sleep(150000)
processclose("atm.exe")
sleep(2000)
run("check config.exe")
EndIf
EndSwitch
WEnd
EndFunc
Alles anzeigen
so das wäre mal der ursprüngliche code...
die check config exe beendet dieses script und startet es nach einer gewissen zeit wieder neu
im prinzip gehts darum diese 2 zeilen automatisch an die bildschirmauflösung an zu passen
denn der erste button passt ja eigentlich immer
damit die positionen immer stimmen bzw die buttons immer im eck oben rechts und unten rechts liegen