Loop unterbrechen mit GUI Button

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Loop unterbrechen mit GUI Button

18 Mar 2020, 06:03

Moin :)
Ich habe folgenden Code, welchen ich mit deinem Button unterbrechen möchte:
Spoiler
Das Problem: Der Loop läuft die ganze Zeit und ich kann ihn nicht mit dem drücken des Buttons beenden...
Ich habe auch schon einige Videos gesehen - die machen das allerdings alle mit Hotkeys und nicht mit Buttons. (bitte entschuldigt den unsauberen Code.. Ich bin blutige Anfängerin was Coding angeht)
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 06:56

Moin,

es fällt mir schwer, Deine Programmstruktur nachzuvollziehen. Die Routine TMon_start: fehlt und Open_Gui_10: wird nicht aufgerufen. Was genau soll das Skript in welcher Reihenfolge tun?
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 06:59

naja es ist leider nur ein Teil des Scripts. wenn ich hier das komplette Script reinposte, könnte das zu unübersichtlich werden oder ?
Oder soll ich mal alle Codezeilen zusammenwerfen ?
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 07:05

Code: Select all

/*
Aktuelles:

- testen wie das Programm bei gleichzeitigen Anrufen arbeitet (ignoriert oder annimmt)
- komplett-Test !
- Hash ?

*/







/*

ahk_class TAlertDlg (Dialog unten rechts)
ahk_class TMainForm
ahk_exe PhonerLite.exe

*/

iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus


CoordMode, Mousemove, Relative
#SingleInstance, Force


SetWorkingDir %A_ScriptDir%



Gui, Add, Picture, x2 y-1 w360 h210 , E:\Users\Michelle\Desktop\tmp arbeit\Scripts\TelefonScript\bg.png
Gui, Add, Progress, x24 y159 w310 h30 cBlue vMyProgress, 0
Gui, Show, w363 h207,

GuiControl,, MyProgress, 10
sleep, 200
GuiControl,, MyProgress, 20
sleep, 100
GuiControl,, MyProgress, 25
sleep, 100
GuiControl,, MyProgress, 30
sleep, 100
GuiControl,, MyProgress, 40
sleep, 300
GuiControl,, MyProgress, 70
sleep, 300
GuiControl,, MyProgress, 100
Gui, Destroy
goto, Hauptmenu

GuiClose:
ExitApp




/*
####################################
#########TESTING AREA###############
####################################


F12::


ExitApp



####################################
#########TESTING END################
####################################
*/

Hauptmenu:



;#include GDrivePfadWahl.ahk - Anfang

iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
	iniread, GDrive, Settings.ini, Einstellungen, GoogleDrivePfad
		if(FileExist(GDrive . "\Driveordner.ini"))
		{
		}
		else
		{
			goto, Folder_Select
		}
			
		if GDrive = ERROR
		{

		}
		else
		{
			goto, After_Folder_Select
		}


		Folder_Select:
		msgbox, Bitte wähle im nächsten Schritt das Google Drive-Verzeichnis aus, welches dir freigeschaltet wurde.
		FileSelectFolder, GDrive, , 3
		if GDrive =
		{
			MsgBox, Du hast leider kein Verzeichnis ausgewählt. Bitte wähle erneut.
			Goto, Folder_Select
		}
		else
		{
			if (FileExist(GDrive . "\Driveordner.ini"))
			{
				iniwrite, %GDrive%, Settings.ini, Einstellungen, GoogleDrivePfad
				MsgBox, Vielen Dank. Das Programm läd jetzt.
			}
			else
			{
				MsgBox, 16, Falscher Dateipfad, Leider ist der eingegebene Dateipfad nicht korrekt. Wenn du Hilfe brauchst wende dich bitte an Michelle.
				goto, Folder_Select
			}
		}

;#include GDrivePfadWahl.ahk - Ende





After_Folder_Select:



Gui_10_top:

;#Include Hauptmenu.ahk - Anfang

iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus
Gui, 10:Show
if TMon_Datei = aktiv
{
GuiControl, Hide, Status_TMON_signal_inaktiv
GuiControl, Show, Status_TMON_signal_aktiv
Loop
{
    iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus
    if (TMon_Datei = "inaktiv")
    {
        break
    }
    if (!WinExist("ahk_class TAlertDlg"))
    {
        continue
    }
    
	if (TMon_Datei = "aktiv" AND WinExist("ahk_class TAlertDlg"))
    {
        goto, TMon_start
        break
    }
}
}
else
{
    GuiControl, Hide, Status_TMON_signal_aktiv
    GuiControl, Show, Status_TMON_signal_inaktiv
}

iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus

if DSync_Datei = ERROR
{
    iniwrite,inaktiv,settings.ini,Einstellungen,GDriveSyncStatus
    iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
}
if TMon_Datei = ERROR
{
    iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus
    iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus
}
else
{
}

Open_Gui_10:
Gui,10: Destroy
Gui,12: Destroy
Gui,10: Font, s15 bold
Gui,10: Add, Text, x12 y9 w210 h30 +Center, Telefon-Tool
Gui,10: Font,

Gui,10: Add, Button, x12 y159 w210 h60 gTMon_umschalten, Umschalten
Gui,10: Add, Button, x62 y229 w100 h30 g10GuiClose, Programm beenden
Gui,10: Font, s12
Gui,10: Add, Text, x30 y139 w210 h20 , Telefon Monitoring

; ####### TMON #######

Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_aktiv , %A_ScriptDir%\Bilder\Aktiv.png
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_inaktiv , %A_ScriptDir%\Bilder\Inaktiv.png

iniread, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
if auto_annehmen_Datei = 0
{
    gui,10:Font, s10
    Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen, Automatisch Anruf annehmen?
    Gui,10:Font,
}
else
{
    gui,10:Font, s10
    Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen Checked, Automatisch Anruf annehmen?
    Gui,10:Font,
}


Gui,10: Show, w239 h271, Hauptmenu
return

10GuiClose:
ExitApp

Auto_annehmen:

iniread, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
if auto_annehmen_Datei = 1
{
    iniwrite, 0, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
    goto, Gui_10_top
}
else
{
    iniwrite, 1, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
    Goto, Gui_10_top
}

TMon_umschalten: 
iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus

if TMon_Datei = aktiv
{
    iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus
    TMon_Datei = inaktiv
    Goto, Gui_10_Top
}
else
{
    iniwrite,aktiv,settings.ini,Einstellungen,TMonStatus
    TMon_Datei = aktiv
    Goto, Gui_10_Top
}

Esc::
iniwrite, inaktiv, settings.ini, Einstellungen, TMonStatus
return

;#Include Hauptmenu.ahk - Ende


TMon_start:
IniRead, GDrivePfad, Settings.ini, Einstellungen, GoogleDrivePfad
; Kopieren Rufnummer + copy to var Telnummer
WinActivate, ahk_class TMainForm
MouseMove, 76, 347
MouseClick, right
sleep, 100
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
sleep, 200
SendInput, {enter}
sleep, 200
Telnummer=%clipboard%
sleep, 200

if(FileExist(GDrive . "\" . telnummer . ".ini"))
{
	Goto, AnfrageKunde
}
else
{
	goto, NeueNummerEintragen
}

ExitApp

AnfrageKunde:

IniRead, Ansprechpartner, %GDrivePfad%\%telnummer%.ini, %telnummer%, Ansprechpartner
IniRead, Firma, %GDrivePfad%\%telnummer%.ini, %telnummer%, Firma

Gui, 2:Font, s15 c0x000000
Gui, 2:Font, bold
Gui, 2:Add, Text, x0 y0 w495 h25 +BackgroundTrans +Center, Grund für Anruf
Gui, 2:Font,
Gui, 2:Font, s12 c0x000000

Gui, 2:Add, Text, x275 y30 w175 h20, Name Ansprechpartner
Gui, 2:Add, Text, x35 y105 w130 h20, Firma
Gui, 2:Add, Text, x35 y30 w130 h20, Telefonnummer

Gui, 2:Add, Edit, x275 y50 w180 h30 +Disabled vAnsprechpartner, %Ansprechpartner%
Gui, 2:Add, Edit, x35 y125 w180 h30 +Disabled vfirma, %Firma%
Gui, 2:Add, Edit, x35 y50 w180 h30 +Left +Disabled, %telnummer%

Gui, 2:Add, Button, x195 y360 w100 h30 gAnrufEintragen, Eintragen

Gui, 2:Add, Edit, x35 y180 w425 h165 vGrundFuerAnruf, Grund für Anruf

Gui, 2:Font, s10
Gui, 2:Add, Checkbox, x280 y155 w230 h20 vAnruferCheckbox, Anrufer = Ansprechpartner ?
Gui, 2:Font, s12
Gui, 2:Add, Edit, x280 y125 w180 h30 vAnrufer, 
Gui, 2:Add, Text, x280 y105 w130 h20, Name Anrufer
Gui, 2:Show, w491 h396, Kunde Anfrage

MsgBox, 262180, Eingehender Anruf, Möchtest du den Anruf von %telnummer% (%Ansprechpartner% - %Firma%) annehmen?
if msgbox = yes
{
	WinActivate, ahk_class TMainForm
	Mouseclick, left, 22, 62
}
else
{
	goto, Resetall
}
return

2GuiClose:
ExitApp
; This Gui is generated by X-GUI Creator



AnruferCheckbox:
GuiControlGet, enabledState, Enabled, Anrufer
enabledState := !enabledState
GuiControl, Enable%enabledState%, Anrufer
Return




NeueNummerEintragen: ;Anrufernummer steht nicht in der Datenbank
; load Gui (1) Kunde nicht angelegt in Datenbank
Gui, 1: Font, s14 c0x000000
Gui, 1: Font, bold
Gui, 1: Add, Text, x0 y0 w250 h25 +BackgroundTrans +Center, Kunde ist nicht angelegt

Gui, 1: Font, 
Gui, 1: Font, s12 c0x000000
Gui, 1: Add, Text, x12 y89 w130 h20 , Ansprechpartner
Gui, 1: Add, Text, x12 y159 w130 h20 , Firma
Gui, 1: Add, Text, x12 y29 w130 h20 , Telefonnummer
Gui, 1: Add, Edit, x12 y109 w230 h30 vansprechpartner, Ansprechpartner
Gui, 1: Add, Edit, x12 y179 w230 h30 vfirma, Firma
Gui, 1: Add, Edit, x12 y49 w230 h30 +Left +Disabled, %telnummer% test

Gui, 1: Add, Button, x72 y229 w100 h30 gKundeAnlegen, Eintragen
; Generated using SmartGUI Creator for SciTE
Gui, 1: Show, w258 h275, Kunden anlegen in Datenbank
return

1GuiClose:
ExitApp
return


KundeAnlegen:
Gui, 1: submit 

IniRead, GDrivePfad, Settings.ini, Einstellungen, GoogleDrivePfad
IniWrite, 1, %GDrivePfad%\%telnummer%.ini, %telnummer%, existiert
IniWrite, %Ansprechpartner%, %GDrivePfad%\%telnummer%.ini, %telnummer%, Ansprechpartner
IniWrite, %Firma%, %GDrivePfad%\%telnummer%.ini, %telnummer%, Firma

Goto, AnfrageKunde

return

;CallLog
AnrufEintragen:
Gui, 2: submit

MsgBox, 36, Anruf beenden?, Möchtest du wirklich auflegen?
IfMsgBox Yes
{
	WinActivate, ("ahk_class TMainForm")
	MouseClick, left, 55, 67
}
IfMsgBox No
{
	
}


FormatTime, Datum,, d.MM.yyyy-HH:mm:ss tt

IniWrite, %Telnummer%, CallLog.ini, %datum%, Telefonnummer
IniWrite, %GrundFuerAnruf%, CallLog.ini, %datum%, Grund


if(AnruferCheckbox = 1)
{
IniWrite, %Ansprechpartner%, CallLog.ini, %datum%, Anrufer
}
else
{
IniWrite, %Anrufer%, CallLog.ini, %datum%, Anrufer
}

msgbox, CallLog erstellt

Resetall:
Gui, Destroy
Gui, 2:Destroy
Gui, 3:Destroy

;iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus

goto, Hauptmenu


^Esc::
ExitApp
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 08:09

OK, das macht es nicht wirklich einfacher für mich.

  1. Das Programm startet mit einem Progress-GUI.
  2. Dann springt es zu After_Folder_Select: bzw. Gui_10_top:.
  3. Dort gibt es gleich mal ein Gui, 10:Show für ein GUI, das noch gar nicht erstellt wurde.
  4. Dann wird - abhängig vom Inhalt von TMonStatus in der Ini-Datei eine Schleife gestartet. Ich nehme an, sie ist das aktuelle Problem.
Warum baust Du das GUI 10 nicht schon vorher auf?
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 08:21

Das Progress-Gui ist nur optischer Natur.
Das Gui, 10:Show war (so mein Verständnis von Coding) dafür da, damit das Gui10 auch beim Loop angezeigt wird und nutzbar bleibt (was offensichtlich nicht so funktioniert wie geplant...

Genau. Der eigentliche Punkt um den es geht ist folgendes:
Ich möchte, dass wenn der Button gedrückt wird (und in der ini der Punkt

Code: Select all

TMonStatus
der Loop läuft und überwacht, ob das Fenster

Code: Select all

ahk_class TAlertDlg
existiert.
Wenn nicht, soll das ganze einfach weiterlaufen und schauen. Wenn es existiert, soll der loop abbrechen und es geht dann ab Zeile 264 weiter mit

Code: Select all

TMon_start:
weiter.

Ich bekomme den Loop auch aktiviert, aber mit erneutem drücken des Buttons nicht wieder deaktiviert... das ist eigentlich nur der Punkt, vor dem ich grade stehe...
UnReALiTyy
Posts: 223
Joined: 06 Jun 2017, 11:38

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 09:34

@GamerG1rl wenn ich dich richtig verstanden habe, dann vielleicht so?

Code: Select all

Gui_10_top:
iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus
if (TMon_Datei = "aktiv")	{
TMon_Datei :=
GuiControl, Hide, Status_TMON_signal_inaktiv
GuiControl, Show, Status_TMON_signal_aktiv
Loop
{
	if (WinExist("ahk_class TAlertDlg"))	{
		break
		gosub, TMon_start
	}
	if (TMon_Datei = "inaktiv")	{
		TMon_Datei := "aktiv"
		break
	}
}
}
else	{
	TMon_Datei := "inaktiv"
    GuiControl, Hide, Status_TMON_signal_aktiv
    GuiControl, Show, Status_TMON_signal_inaktiv
}
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 10:03

hm.. leider lässt sich das dann trotzdem nicht umschalten...
Es soll quasi mit dem einen Button aktiviert werden und mit dem gleichen button auch wieder deaktiviert werden...
Geht sowas überhaupt ?
UnReALiTyy
Posts: 223
Joined: 06 Jun 2017, 11:38

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 10:18

GamerG1rl wrote:
18 Mar 2020, 10:03
hm.. leider lässt sich das dann trotzdem nicht umschalten...
Es soll quasi mit dem einen Button aktiviert werden und mit dem gleichen button auch wieder deaktiviert werden...
Geht sowas überhaupt ?
Sicher geht das habe ich Quasi damit auch erstellt.
UnReALiTyy
Posts: 223
Joined: 06 Jun 2017, 11:38

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 10:24

@GamerG1rl vielleicht hilft dir diese Version mehr?

Code: Select all

Gui_10_top:
If aktiv := !aktiv 	{
TMon_Datei :=
GuiControl, Hide, Status_TMON_signal_inaktiv
GuiControl, Show, Status_TMON_signal_aktiv
Loop
{
	if (WinExist("ahk_class TAlertDlg"))	{
		break
		gosub, TMon_start
	}
	if (TMon_Datei = "inaktiv")
		break
}
}
else	{
	TMon_Datei := "inaktiv"
    GuiControl, Hide, Status_TMON_signal_aktiv
    GuiControl, Show, Status_TMON_signal_inaktiv
}
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 10:33

Jetzt zeigt er das Gui 10 gar nicht mehr an und geht direkt in den Loop :( entweder bin ich zu blöd für loops oder ich versteh nicht, was falsch ist... :/
Der Code sieht ejtzt so aus:

(Ich habe die Zeilen 137 - 170 durch die Zeilen von UnReALiTyy ausgetauscht... hat leider nichts gebracht)

Code: Select all



iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus


CoordMode, Mousemove, Relative
#SingleInstance, Force


SetWorkingDir %A_ScriptDir%



Gui, Add, Picture, x2 y-1 w360 h210 , E:\Users\Michelle\Desktop\tmp arbeit\Scripts\TelefonScript\bg.png
Gui, Add, Progress, x24 y159 w310 h30 cBlue vMyProgress, 0
Gui, Show, w363 h207,

GuiControl,, MyProgress, 10
sleep, 200
GuiControl,, MyProgress, 20
sleep, 100
GuiControl,, MyProgress, 25
sleep, 100
GuiControl,, MyProgress, 30
sleep, 100
GuiControl,, MyProgress, 40
sleep, 300
GuiControl,, MyProgress, 70
sleep, 300
GuiControl,, MyProgress, 100
Gui, Destroy
goto, Hauptmenu

GuiClose:
ExitApp




/*
####################################
#########TESTING AREA###############
####################################


F12::


ExitApp



####################################
#########TESTING END################
####################################
*/

Hauptmenu:



;#include GDrivePfadWahl.ahk - Anfang

iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
	iniread, GDrive, Settings.ini, Einstellungen, GoogleDrivePfad
		if(FileExist(GDrive . "\Driveordner.ini"))
		{
		}
		else
		{
			goto, Folder_Select
		}
			
		if GDrive = ERROR
		{

		}
		else
		{
			goto, After_Folder_Select
		}


		Folder_Select:
		msgbox, Bitte wähle im nächsten Schritt das Google Drive-Verzeichnis aus, welches dir freigeschaltet wurde.
		FileSelectFolder, GDrive, , 3
		if GDrive =
		{
			MsgBox, Du hast leider kein Verzeichnis ausgewählt. Bitte wähle erneut.
			Goto, Folder_Select
		}
		else
		{
			if (FileExist(GDrive . "\Driveordner.ini"))
			{
				iniwrite, %GDrive%, Settings.ini, Einstellungen, GoogleDrivePfad
				MsgBox, Vielen Dank. Das Programm läd jetzt.
			}
			else
			{
				MsgBox, 16, Falscher Dateipfad, Leider ist der eingegebene Dateipfad nicht korrekt. Wenn du Hilfe brauchst wende dich bitte an Michelle.
				goto, Folder_Select
			}
		}

;#include GDrivePfadWahl.ahk - Ende





After_Folder_Select:




Gui_10_top:

If aktiv := !aktiv 	{
TMon_Datei :=
GuiControl, Hide, Status_TMON_signal_inaktiv
GuiControl, Show, Status_TMON_signal_aktiv

Loop
{
	if (WinExist("ahk_class TAlertDlg"))	{
		break
		gosub, TMon_start
	}
	if (TMon_Datei = "inaktiv")
		break
}
}
else	{
	TMon_Datei := "inaktiv"
    GuiControl, Hide, Status_TMON_signal_aktiv
    GuiControl, Show, Status_TMON_signal_inaktiv
}



iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus

if DSync_Datei = ERROR
{
    iniwrite,inaktiv,settings.ini,Einstellungen,GDriveSyncStatus
    iniread,DSync_Datei, settings.ini,Einstellungen,GDriveSyncStatus
}
if TMon_Datei = ERROR
{
    iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus
    iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus
}
else
{
}

Open_Gui_10:
Gui,10: Destroy
Gui,12: Destroy
Gui,10: Font, s15 bold
Gui,10: Add, Text, x12 y9 w210 h30 +Center, Telefon-Tool
Gui,10: Font,

Gui,10: Add, Button, x12 y159 w210 h60 gTMon_umschalten, Umschalten
Gui,10: Add, Button, x62 y229 w100 h30 g10GuiClose, Programm beenden
Gui,10: Font, s12
Gui,10: Add, Text, x30 y139 w210 h20 , Telefon Monitoring

; ####### TMON #######

Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_aktiv , %A_ScriptDir%\Bilder\Aktiv.png
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_inaktiv , %A_ScriptDir%\Bilder\Inaktiv.png

iniread, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
if auto_annehmen_Datei = 0
{
    gui,10:Font, s10
    Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen, Automatisch Anruf annehmen?
    Gui,10:Font,
}
else
{
    gui,10:Font, s10
    Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen Checked, Automatisch Anruf annehmen?
    Gui,10:Font,
}


Gui,10: Show, w239 h271, Hauptmenu
return

10GuiClose:
ExitApp

Auto_annehmen:

iniread, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
if auto_annehmen_Datei = 1
{
    iniwrite, 0, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
    goto, Gui_10_top
}
else
{
    iniwrite, 1, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
    Goto, Gui_10_top
}

TMon_umschalten: 
iniread,TMon_Datei, settings.ini,Einstellungen,TMonStatus

if TMon_Datei = aktiv
{
    iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus
    TMon_Datei = inaktiv
    Goto, Gui_10_Top
}
else
{
    iniwrite,aktiv,settings.ini,Einstellungen,TMonStatus
    TMon_Datei = aktiv
    Goto, Gui_10_Top
}

Esc::
iniwrite, inaktiv, settings.ini, Einstellungen, TMonStatus
return

;#Include Hauptmenu.ahk - Ende


TMon_start:
IniRead, GDrivePfad, Settings.ini, Einstellungen, GoogleDrivePfad
; Kopieren Rufnummer + copy to var Telnummer
WinActivate, ahk_class TMainForm
MouseMove, 76, 347
MouseClick, right
sleep, 100
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
SendInput, {down}
sleep, 200
SendInput, {enter}
sleep, 200
Telnummer=%clipboard%
sleep, 200

if(FileExist(GDrive . "\" . telnummer . ".ini"))
{
	Goto, AnfrageKunde
}
else
{
	goto, NeueNummerEintragen
}

ExitApp

AnfrageKunde:

IniRead, Ansprechpartner, %GDrivePfad%\%telnummer%.ini, %telnummer%, Ansprechpartner
IniRead, Firma, %GDrivePfad%\%telnummer%.ini, %telnummer%, Firma

Gui, 2:Font, s15 c0x000000
Gui, 2:Font, bold
Gui, 2:Add, Text, x0 y0 w495 h25 +BackgroundTrans +Center, Grund für Anruf
Gui, 2:Font,
Gui, 2:Font, s12 c0x000000

Gui, 2:Add, Text, x275 y30 w175 h20, Name Ansprechpartner
Gui, 2:Add, Text, x35 y105 w130 h20, Firma
Gui, 2:Add, Text, x35 y30 w130 h20, Telefonnummer

Gui, 2:Add, Edit, x275 y50 w180 h30 +Disabled vAnsprechpartner, %Ansprechpartner%
Gui, 2:Add, Edit, x35 y125 w180 h30 +Disabled vfirma, %Firma%
Gui, 2:Add, Edit, x35 y50 w180 h30 +Left +Disabled, %telnummer%

Gui, 2:Add, Button, x195 y360 w100 h30 gAnrufEintragen, Eintragen

Gui, 2:Add, Edit, x35 y180 w425 h165 vGrundFuerAnruf, Grund für Anruf

Gui, 2:Font, s10
Gui, 2:Add, Checkbox, x280 y155 w230 h20 vAnruferCheckbox, Anrufer = Ansprechpartner ?
Gui, 2:Font, s12
Gui, 2:Add, Edit, x280 y125 w180 h30 vAnrufer, 
Gui, 2:Add, Text, x280 y105 w130 h20, Name Anrufer
Gui, 2:Show, w491 h396, Kunde Anfrage

MsgBox, 262180, Eingehender Anruf, Möchtest du den Anruf von %telnummer% (%Ansprechpartner% - %Firma%) annehmen?
if msgbox = yes
{
	WinActivate, ahk_class TMainForm
	Mouseclick, left, 22, 62
}
else
{
	goto, Resetall
}
return

2GuiClose:
ExitApp
; This Gui is generated by X-GUI Creator



AnruferCheckbox:
GuiControlGet, enabledState, Enabled, Anrufer
enabledState := !enabledState
GuiControl, Enable%enabledState%, Anrufer
Return




NeueNummerEintragen: ;Anrufernummer steht nicht in der Datenbank
; load Gui (1) Kunde nicht angelegt in Datenbank
Gui, 1: Font, s14 c0x000000
Gui, 1: Font, bold
Gui, 1: Add, Text, x0 y0 w250 h25 +BackgroundTrans +Center, Kunde ist nicht angelegt

Gui, 1: Font, 
Gui, 1: Font, s12 c0x000000
Gui, 1: Add, Text, x12 y89 w130 h20 , Ansprechpartner
Gui, 1: Add, Text, x12 y159 w130 h20 , Firma
Gui, 1: Add, Text, x12 y29 w130 h20 , Telefonnummer
Gui, 1: Add, Edit, x12 y109 w230 h30 vansprechpartner, Ansprechpartner
Gui, 1: Add, Edit, x12 y179 w230 h30 vfirma, Firma
Gui, 1: Add, Edit, x12 y49 w230 h30 +Left +Disabled, %telnummer% test

Gui, 1: Add, Button, x72 y229 w100 h30 gKundeAnlegen, Eintragen
; Generated using SmartGUI Creator for SciTE
Gui, 1: Show, w258 h275, Kunden anlegen in Datenbank
return

1GuiClose:
ExitApp
return


KundeAnlegen:
Gui, 1: submit 

IniRead, GDrivePfad, Settings.ini, Einstellungen, GoogleDrivePfad
IniWrite, 1, %GDrivePfad%\%telnummer%.ini, %telnummer%, existiert
IniWrite, %Ansprechpartner%, %GDrivePfad%\%telnummer%.ini, %telnummer%, Ansprechpartner
IniWrite, %Firma%, %GDrivePfad%\%telnummer%.ini, %telnummer%, Firma

Goto, AnfrageKunde

return

;CallLog
AnrufEintragen:
Gui, 2: submit

MsgBox, 36, Anruf beenden?, Möchtest du wirklich auflegen?
IfMsgBox Yes
{
	WinActivate, ("ahk_class TMainForm")
	MouseClick, left, 55, 67
}
IfMsgBox No
{
	
}


FormatTime, Datum,, d.MM.yyyy-HH:mm:ss tt

IniWrite, %Telnummer%, CallLog.ini, %datum%, Telefonnummer
IniWrite, %GrundFuerAnruf%, CallLog.ini, %datum%, Grund


if(AnruferCheckbox = 1)
{
IniWrite, %Ansprechpartner%, CallLog.ini, %datum%, Anrufer
}
else
{
IniWrite, %Anrufer%, CallLog.ini, %datum%, Anrufer
}

msgbox, CallLog erstellt

Resetall:
Gui, Destroy
Gui, 2:Destroy
Gui, 3:Destroy

;iniwrite,inaktiv,settings.ini,Einstellungen,TMonStatus

goto, Hauptmenu


^Esc::
ExitApp
UnReALiTyy
Posts: 223
Joined: 06 Jun 2017, 11:38

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 10:42

Dann einfach Gui Show davorsetzen?

Code: Select all

Gui_10_top:
Gui, 10:Show
If aktiv := !aktiv 	{
TMon_Datei :=
GuiControl, Hide, Status_TMON_signal_inaktiv
GuiControl, Show, Status_TMON_signal_aktiv
Loop
{
	if (WinExist("ahk_class TAlertDlg"))	{
		break
		gosub, TMon_start
	}
	if (TMon_Datei = "inaktiv")
		break
}
}
else	{
	TMon_Datei := "inaktiv"
    GuiControl, Hide, Status_TMON_signal_aktiv
    GuiControl, Show, Status_TMON_signal_inaktiv
}
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

18 Mar 2020, 11:44

Nochmal zum Mitschreiben: Bei Start des Skripts soll das GUI 10 angezeigt werden. Danach soll das Skript, wenn der Schlüssel TMonStatus in der INI den Wert aktiv ensthält, ggf. in einer Schleife warten, bis ein Fenster "ahk_class TAlertDlg" erstellt wird.

Ist das soweit richtig? Was soll geschehen, wenn der Status am Anfang nicht aktiv ist?
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

19 Mar 2020, 04:10

just me wrote:
18 Mar 2020, 11:44
Nochmal zum Mitschreiben: Bei Start des Skripts soll das GUI 10 angezeigt werden. Danach soll das Skript, wenn der Schlüssel TMonStatus in der INI den Wert aktiv ensthält, ggf. in einer Schleife warten, bis ein Fenster "ahk_class TAlertDlg" erstellt wird.

Ist das soweit richtig? Was soll geschehen, wenn der Status am Anfang nicht aktiv ist?
Soweit korrekt. Sobald das Fenster dann besteht soll das Script weitergehen zu TMon_start: und dann den rest des Script ausgeben (was ja auch funktioniert.

Wenn am Anfang in der Datei inaktiv steht soll erstmal nichts passieren, außer dass das Gui:10 angezeigt wird und gewartet werden soll, bis der Benutzer das ganze über den Button gTMon_umschalten aktiviert.
Dann soll das Programm in den Loop gehen und solange loopen, bis das Fenster "ahk_class TAlertDlg" existiert ODER das ganze mit klicken auf den gleichen Button im Gui 10 wieder deaktiviert wird.
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

19 Mar 2020, 08:18

Ok, ich will versuchen, Dir zu helfen.
Das wird allerdings etwas dauern, weil ich bei dieser Gelegenheit die Gotos beseitigen will. Sie machen immer mal wieder unerwarteten Ärger, wenn ein Programm über einen längeren Zeitraum hin und her verzweigt.
Um das zu schaffen, muss ich mich allerdings mehr als ursprünglich geplant in die Programmstruktur/-abläufe einarbeiten.
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

19 Mar 2020, 09:05

okey vielen Dank <3
Ich hoffe ich verstehe später, was du da gecoded hast. immerhin will ich ja was dazulernen ;)
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

20 Mar 2020, 06:29

Hallo,

ich habe mich bemüht, auf unnötigen Syntax-Schnickschnack zu verzichten. Außerdem sollten wir in kleinen Schritten vorgehen.

Hier ist ein Entwurf für den Start des Skripts:

Code: Select all

#NoEnv
#SingleInstance, Force

/*
Aktuelles:

- testen wie das Programm bei gleichzeitigen Anrufen arbeitet (ignoriert oder annimmt)
- komplett-Test !
- Hash ?

*/

/*

ahk_class TAlertDlg (Dialog unten rechts)
ahk_class TMainForm
ahk_exe PhonerLite.exe

*/

SetWorkingDir, %A_ScriptDir%
CoordMode, Mousemove, Relative
IniWrite, inaktiv, settings.ini, Einstellungen, TMonStatus

; Progress GUI =========================================================================================================
Gui, Add, Picture, x2 y-1 w360 h210 , E:\Users\Michelle\Desktop\tmp arbeit\Scripts\TelefonScript\bg.png
Gui, Add, Progress, x24 y159 w310 h30 cBlue vMyProgress, 0
Gui, Show, w363 h207,
GuiControl,, MyProgress, 10
Sleep, 200
GuiControl,, MyProgress, 20
Sleep, 100
GuiControl,, MyProgress, 25
Sleep, 100
GuiControl,, MyProgress, 30
Sleep, 100
GuiControl,, MyProgress, 40
Sleep, 300
GuiControl,, MyProgress, 70
Sleep, 300
GuiControl,, MyProgress, 100
Gui, Destroy

; Settings.ini =========================================================================================================
IniRead, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
If (auto_annehmen_Datei != 0) And (auto_annehmen_Datei != 1)
{
   auto_annehmen_Datei := 0
   IniWrite, %auto_annehmen_Datei%, settings.ini, Einstellungen, Automatisch_Anruf_annehmen
}
IniRead, DSync_Datei, settings.ini, Einstellungen, GDriveSyncStatus
If (DSync_Datei != "aktiv") And (DSync_Datei != "inaktiv")
{
   DSync_Datei := "inaktiv"
   IniWrite, %DSync_Datei%, settings.ini, Einstellungen, GDriveSyncStatus
}
IniRead, TMon_Datei, settings.ini, Einstellungen, TMonStatus
If (TMon_Datei != "aktiv") And (TMon_Datei != "inaktiv")
{
   TMon_Datei := "inaktiv"
   IniWrite, %TMon_Datei%, settings.ini, Einstellungen, TMonStatus
}

; GDrive ===============================================================================================================
; Goto, Open_Gui_10 ; <<<<<<<<< just me
IniRead, GDrive, Settings.ini, Einstellungen, GoogleDrivePfad
If (GDrive = "ERROR") Or !FileExist(GDrive . "\Driveordner.ini")
{
   Loop
   {
      MsgBox, Bitte wähle im nächsten Schritt das Google Drive-Verzeichnis aus, welches dir freigeschaltet wurde.
		FileSelectFolder, GDrive, , 3
		If (GDrive = "")
		{
			MsgBox, Du hast leider kein Verzeichnis ausgewählt. Bitte wähle erneut.
		}
		Else If !FileExist(GDrive . "\Driveordner.ini")
		{
			MsgBox, 16, Falscher Dateipfad, Leider ist der eingegebene Dateipfad nicht korrekt. Wenn du Hilfe brauchst wende dich bitte an Michelle.
      }
      Else
      {
			IniWrite, %GDrive%, Settings.ini, Einstellungen, GoogleDrivePfad
			MsgBox, Vielen Dank. Das Programm läd jetzt.
         Break
      }
   }
}
; GUI 10 ===============================================================================================================
Open_Gui_10:
Gui,10: Destroy
Gui,10: Font, s15 bold
Gui,10: Add, Text, x12 y9 w210 h30 +Center, Telefon-Tool
Gui,10: Font

Gui,10: Add, Button, x12 y159 w210 h60 gTMon_umschalten, Umschalten
Gui,10: Add, Button, x62 y229 w100 h30 g10GuiClose, Programm beenden
Gui,10: Font, s12
Gui,10: Add, Text, x30 y139 w210 h20 , Telefon Monitoring

; ####### TMON #######
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_aktiv , %A_ScriptDir%\Bilder\Aktiv.png
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_inaktiv , %A_ScriptDir%\Bilder\Inaktiv.png

If (auto_annehmen_Datei = 1)
   CheckCB := "Checked"
Else
   CheckCB := ""
Gui,10: Font, s10
Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen %CheckCB%, Automatisch Anruf annehmen?
Gui,10: Font

Gosub, TMon_Status

Gui,10: Show, w239 h271, Hauptmenu
Return
; ======================================================================================================================
Auto_annehmen:
   GuiControlGet, CheckCB, , Auto_annehmen_Status
   IniWrite, %CheckCB%, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
Return
; ======================================================================================================================
TMon_umschalten:
   If (TMon_Datei = "aktiv")
      TMon_Datei := "inaktiv"
   Else
      TMon_Datei := "aktiv"
   IniWrite, %TMon_Datei%, settings.ini, Einstellungen, TMonStatus
   Gosub, TMon_Status
Return
; ======================================================================================================================
; Esc::
;    IniWrite, inaktiv, settings.ini, Einstellungen, TMonStatus
; return
; ======================================================================================================================
TMon_Status:
   If (TMon_Datei = "aktiv")
   {
      GuiControl, 10:Hide, Status_TMON_signal_inaktiv
      GuiControl, 10:Show, Status_TMON_signal_aktiv
   }
   Else
   {
      GuiControl, 10:Show, Status_TMON_signal_inaktiv
      GuiControl, 10:Hide, Status_TMON_signal_aktiv
   }
Return
; ======================================================================================================================
10GuiClose:
ExitApp
Schau Dir das mal an und sage mir, ob es Dir so entgegenkomt und/oder ob es Verständnisprobleme gibt.
GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Re: Loop unterbrechen mit GUI Button

20 Mar 2020, 22:07

Cool. Soweit habe ich alles was du in den Code geschrieben hast verstanden.
Damit ich das richtig verstehe: (für mich zum verständnis)
Goto -> springen zum Label und führt ab da weiter aus.
GoSub -> Springen zum Label bis zum nächsten return und springt danach zurück an die Stelle des GoSub und führt das ganze weiter aus.
hab ich das soweit richtig beschrieben ?
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

21 Mar 2020, 04:55

Moin,

alles richtig. Goto scheint oft auf den ersten Blick die 'einfachere' und flexiblere Variante zu sein, Gosub ist aber normalerweise stabiler und erzeugt 'klarere' Strukturen. In jedem Fall sollte man vermeiden, eine per Gosub (das gilt auch für die Gui- und Guicontrollabel) aufgerufene Routine per Goto zu verlassen. Das kann die interne AHK Ablaufkontrolle mächtig verwirren.

Ich melde mich später wieder. Bereite Dich schon mal auf weitere Fragen zum Ablauf beim Aufruf von TMon_start: vor.

Bis dann!
just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop unterbrechen mit GUI Button

22 Mar 2020, 05:07

Und schon wieder Moin,

ich habe mich gestern etwas vertrödelt, deshalb erst heute wieder.

Ich habe versucht, Deine kritische Schleife durch einen Timer zu ersetzen:

Code: Select all

#NoEnv
#SingleInstance, Force

/*
Aktuelles:

- testen wie das Programm bei gleichzeitigen Anrufen arbeitet (ignoriert oder annimmt)
- komplett-Test !
- Hash ?

*/

/*

ahk_class TAlertDlg (Dialog unten rechts)
ahk_class TMainForm
ahk_exe PhonerLite.exe

*/

SetWorkingDir, %A_ScriptDir%
CoordMode, Mousemove, Relative
IniWrite, inaktiv, settings.ini, Einstellungen, TMonStatus

; Progress GUI =========================================================================================================
Gui, Add, Picture, x2 y-1 w360 h210 , E:\Users\Michelle\Desktop\tmp arbeit\Scripts\TelefonScript\bg.png
Gui, Add, Progress, x24 y159 w310 h30 cBlue vMyProgress, 0
Gui, Show, w363 h207,
GuiControl,, MyProgress, 10
Sleep, 200
GuiControl,, MyProgress, 20
Sleep, 100
GuiControl,, MyProgress, 25
Sleep, 100
GuiControl,, MyProgress, 30
Sleep, 100
GuiControl,, MyProgress, 40
Sleep, 300
GuiControl,, MyProgress, 70
Sleep, 300
GuiControl,, MyProgress, 100
Gui, Destroy

; Settings.ini =========================================================================================================
IniRead, auto_annehmen_Datei, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
If (auto_annehmen_Datei != 0) And (auto_annehmen_Datei != 1)
{
   auto_annehmen_Datei := 0
   IniWrite, %auto_annehmen_Datei%, settings.ini, Einstellungen, Automatisch_Anruf_annehmen
}
IniRead, DSync_Datei, settings.ini, Einstellungen, GDriveSyncStatus
If (DSync_Datei != "aktiv") And (DSync_Datei != "inaktiv")
{
   DSync_Datei := "inaktiv"
   IniWrite, %DSync_Datei%, settings.ini, Einstellungen, GDriveSyncStatus
}
IniRead, TMon_Datei, settings.ini, Einstellungen, TMonStatus
If (TMon_Datei != "aktiv") And (TMon_Datei != "inaktiv")
{
   TMon_Datei := "inaktiv"
   IniWrite, %TMon_Datei%, settings.ini, Einstellungen, TMonStatus
}

; GDrive ===============================================================================================================
; Goto, Open_Gui_10 ; <<<<<<<<< just me
IniRead, GDrive, Settings.ini, Einstellungen, GoogleDrivePfad
If (GDrive = "ERROR") Or !FileExist(GDrive . "\Driveordner.ini")
{
   Loop
   {
      MsgBox, Bitte wähle im nächsten Schritt das Google Drive-Verzeichnis aus, welches dir freigeschaltet wurde.
		FileSelectFolder, GDrive, , 3
		If (GDrive = "")
		{
			MsgBox, Du hast leider kein Verzeichnis ausgewählt. Bitte wähle erneut.
		}
		Else If !FileExist(GDrive . "\Driveordner.ini")
		{
			MsgBox, 16, Falscher Dateipfad, Leider ist der eingegebene Dateipfad nicht korrekt. Wenn du Hilfe brauchst wende dich bitte an Michelle.
      }
      Else
      {
			IniWrite, %GDrive%, Settings.ini, Einstellungen, GoogleDrivePfad
			MsgBox, Vielen Dank. Das Programm läd jetzt.
         Break
      }
   }
}
; GUI 10 ===============================================================================================================
Open_Gui_10:
Gui,10: Destroy
Gui,10: Font, s15 bold
Gui,10: Add, Text, x12 y9 w210 h30 +Center, Telefon-Tool
Gui,10: Font

Gui,10: Add, Button, x12 y159 w210 h60 gTMon_umschalten, Umschalten
Gui,10: Add, Button, x62 y229 w100 h30 g10GuiClose, Programm beenden
Gui,10: Font, s12
Gui,10: Add, Text, x30 y139 w210 h20 , Telefon Monitoring

; ####### TMON #######
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_aktiv , %A_ScriptDir%\Bilder\Aktiv.png
Gui,10: Add, Picture, x10 y142 w16 h16 vStatus_TMON_signal_inaktiv , %A_ScriptDir%\Bilder\Inaktiv.png

If (auto_annehmen_Datei = 1)
   CheckCB := "Checked"
Else
   CheckCB := ""
Gui,10: Font, s10
Gui,10: Add, Checkbox, x10 y100 w220 h40 vAuto_annehmen_Status gAuto_annehmen %CheckCB%, Automatisch Anruf annehmen?
Gui,10: Font

Gosub, TMon_Status

Gui,10: Show, w239 h271, Hauptmenu

SetTimer, CheckTMon, 100

Return
; ======================================================================================================================
Auto_annehmen:
   GuiControlGet, CheckCB, , Auto_annehmen_Status
   IniWrite, %CheckCB%, Settings.ini, Einstellungen, Automatisch_Anruf_annehmen
Return
; ======================================================================================================================
TMon_umschalten:
   If (TMon_Datei = "aktiv")
      TMon_Datei := "inaktiv"
   Else
      TMon_Datei := "aktiv"
   IniWrite, %TMon_Datei%, settings.ini, Einstellungen, TMonStatus
   Gosub, TMon_Status
Return
; ======================================================================================================================
; Esc::
;    IniWrite, inaktiv, settings.ini, Einstellungen, TMonStatus
; return
; ======================================================================================================================
TMon_Status:
   If (TMon_Datei = "aktiv")
   {
      GuiControl, 10:Hide, Status_TMON_signal_inaktiv
      GuiControl, 10:Show, Status_TMON_signal_aktiv
   }
   Else
   {
      GuiControl, 10:Show, Status_TMON_signal_inaktiv
      GuiControl, 10:Hide, Status_TMON_signal_aktiv
   }
Return
; ======================================================================================================================
10GuiClose:
ExitApp

; ======================================================================================================================
CheckTMon:
   If (TMon_Datei = "aktiv") And WinExist("ahk_class TAlertDlg")
   {
      Gosub, TMon_start
   }
Return

; ======================================================================================================================
TMon_start:
   ; Kopieren Rufnummer + copy to var Telnummer
   WinActivate, ahk_class TMainForm
   MouseMove, 76, 347
   MouseClick, right
   Sleep, 100
   SendInput, {down}
   SendInput, {down}
   SendInput, {down}
   SendInput, {down}
   SendInput, {down}
   SendInput, {down}
   SendInput, {down}
   Sleep, 200
   SendInput, {enter}
   Sleep, 200
   Telnummer := Clipboard
   Sleep, 200

   If FileExist(GDrive . "\" . telnummer . ".ini")
   {
   	MsgBox, 0, %telnummer%, Aufruf AnfrageKunde
   }
   Else
   {
   	MsgBox, 0, %telnummer%, Aufruf NeueNummerEintragen
   }
Return
Wie ich es sehe, wurde dort bei aktiver Überwachung und vorhandenem Fenster "ahk_class TAlertDlg" die Routine TMon_start: aufgerufen. Die wiederum hat zunächst einmal zwei Ziele: AnfrageKunde: und NeueNummerEintragen:, wobei aus letzterer auch wieder nach AnfrageKunde: verzweigt werden kann.

Und nun schon meine Fragen: Was genau sollen diese Routinen tun, wann sollen sie beendet werden und unter welchen Bedingungen soll nach NeueNummerEintragen: AnfrageKunde: aufgerufen werden?

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: WPLPHSS and 34 guests