Try ... catch e - problem
Posted: 04 Mar 2018, 16:46
hallo ahk gemeinde,
folgender code funktioniert bei mir einwandfrei, bis auf, wenn ich keine internetverbindung habe, dann kommt leider eine fehlermeldung.
ich habe den teil, der für das versenden der mail zuständig ist, wie ich es in einer anderen anfrage
https://autohotkey.com/boards/viewtopic ... 21#p201121
gelernt habe
eingepasst. aber irgendwo habe ich wohl doch einen fehler drin. ich sehe nicht mal die msgbox, welche das fehlen der internetverbindung anzeigen soll.
weil wohl nicht jeder den power director auf seinem rechner hat, habe ich die unwesentlichen teile gelöscht. dabei kommt dann folgender code heraus,
ich hoffe es ist so übersichtlich. folgender code funktioniert
nur wenn ich die verbindung zum internet trenne, kommt eine fehlermeldung
folgender code funktioniert bei mir einwandfrei, bis auf, wenn ich keine internetverbindung habe, dann kommt leider eine fehlermeldung.
ich habe den teil, der für das versenden der mail zuständig ist, wie ich es in einer anderen anfrage
https://autohotkey.com/boards/viewtopic ... 21#p201121
gelernt habe
Code: Select all
Try {
......
}
catch e {
.....
}
Code: Select all
; power director starten, aufnahmemodus initialisieren, fenster minimieren und aufnahme starten
#Persistent ;sorgt dafür, dass sich das Programm nicht beendet
;preSettings
restsizeAlarm = 02:30: ; zeit für alarm am pc und per email
alarmEmail = on
; /*
;alle PowerDirector Prozesse schliessen
; +++++++++++++++++++++++++++++++++++++++++++
Process, Exist, CES_AudioCacheAgent.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, PDR11.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, UACAgent.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, CES_CacheAgent.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, CES_IPCAgent.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, MotionMenuGenerator.exe
PID := Errorlevel
Process, Close, %PID%
Process, Exist, PDHanumanSvr.exe
PID := Errorlevel
Process, Close, %PID%
sleep, 5000
; +++++++++++++++++++++++++++++++++++++++++++
; */
PowerDirectorPfad := "C:\Program Files\CyberLink\PowerDirector11\PDR11.exe"
run, %PowerDirectorPfad%
sleep, 15000 ; 15 sekunden warten bis PD gestartet ist
Control, Check,, AfxWnd90u7, ahk_class VIDEOEDITOR ; aufzeichnungsmodus aktivieren
sleep, 20000 ; 20 sekunden warten
Control, Check,, AfxWnd90u41, ahk_class VIDEOEDITOR ; fenster minimieren
sleep, 1000
SetTimer, restSize, 10000
goto start
return
start:
Control, Check,, AfxWnd90u15, ahk_class VIDEOEDITOR ;aufnahme start
Sleep, 7169000 ; zwei stunden aufnahme 31 sekunden sleep abgerechnet
soundbeep, 2000
sleep, 1000
Control, Check,, AfxWnd90u15, ahk_class VIDEOEDITOR ;aufnahme stop
sleep, 30000 ; 30 sekunden warten
goto start
#t:: ;win + t
if tooltip_info_anzahl > 0
{
tooltip_info_anzahl += 1
return
}
tooltip_info_anzahl = 1
SetTimer, TasteTooltipToogle, -800
return
TasteTooltipToogle:
if tooltip_info_anzahl = 1
{
SetTimer, Schleife2, off
SetTimer, Schleife1, 300
}
else if tooltip_info_anzahl = 2
{
SetTimer, Schleife1, off
SetTimer, Schleife2, 300
}
else if tooltip_info_anzahl > 2
{
SetTimer, Schleife1, off
SetTimer, Schleife2, off
tooltip
}
tooltip_info_anzahl = 0
return
Schleife1:
SetTimer, Schleife2, Off
ControlGetText, _frei_, Static10, ahk_class VIDEOEDITOR
ToolTip, %_frei_%
return
Schleife2:
SetTimer, Schleife1, Off
gosub Schleife2Daten
; MsgBox, Power Director Stats:`nAufgenommen: %_aufgenommen_%`nFrei: %_frei_%`nBenutzt: %_benutzt_%`nÜbersprungen: %_uebersprungen_%`nAufgenommen: %_aufgenommen_%`nVerfügbare Länge: %_VerfuegbarerPlattenplatz_%
ToolTip, Power Director Stats:`nLaufwerk: %_laufwerk_%`nDateigrösse: %_aufgenommenGB_%`nFrei: %_frei_%`nBenutzt: %_benutzt_%`nAufgenommen: %_aufgenommen_%`nVerfügbare Restzeit: %_VerfuegbarerPlattenplatz_%`nRestzeit Alarm: %restsizeAlarm%00
; ToolTip, Power Director Stats:`nLaufwerk: %_laufwerk_%`nDateigrösse: %_aufgenommenGB_%`nFrei: %_frei_%`nBenutzt: %_benutzt_%`nÜbersprungen: %_uebersprungen_%`nAufgenommen: %_aufgenommen_%`nVerfügbare Länge: %_VerfuegbarerPlattenplatz_%
return
Schleife2Daten:
ControlGetText, _laufwerk_, Static8, ahk_class VIDEOEDITOR
ControlGetText, _aufgenommenGB_, Static9, ahk_class VIDEOEDITOR
ControlGetText, _frei_, Static10, ahk_class VIDEOEDITOR
ControlGetText, _benutzt_, Static11, ahk_class VIDEOEDITOR
ControlGetText, _uebersprungen_, Static12, ahk_class VIDEOEDITOR
ControlGetText, _Aufgenommen_, Static13, ahk_class VIDEOEDITOR
ControlGetText, _VerfuegbarerPlattenplatz_, Static14, ahk_class VIDEOEDITOR
return
restSize:
ControlGetText, _LWrestSize_, Static8, ahk_class VIDEOEDITOR
stringreplace, _LWrestSize_, _LWrestSize_, :\, %A_Space%, ALL
ControlGetText, _restSize_, Static14, ahk_class VIDEOEDITOR
if _restSize_ contains %restsizeAlarm%
SetTimer, restSizeAlarm, 20000
return
restSizeAlarm:
SetTimer, restSize, off
soundbeep, 2000, 2000
sleep, 1000
ComObjCreate("SAPI.SpVoice").Speak("achtung festplatte " . _LWrestSize_ . " bald voll")
gosub alarmEmail
return
alarmEmail:
if alarmEmail = on
{
gosub Schleife2Daten
Schleife2Daten_ = achtung festplatte bald voll`n`nPower Director Stats:`nLaufwerk: %_laufwerk_%`nDateigrösse: %_aufgenommenGB_%`nFrei: %_frei_%`nBenutzt: %_benutzt_%`nAufgenommen: %_aufgenommen_%`nVerfügbare Restzeit: %_VerfuegbarerPlattenplatz_%`nRestzeit Alarm: %restsizeAlarm%00
SendGmail(Schleife2Daten_,"deineGmailAdresse@gmail.com")
alarmEmail = off
}
return
#s:: ;win + s
Control, Check,, AfxWnd90u15, ahk_class VIDEOEDITOR ;aufnahme stop
tooltip
return
Try {
SendGmail(message,emailto){
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """Power Director Alarm"" <deineGmailAdresse@gmail.com>"
pmsg.To := emailto
pmsg.Subject := "Power Director Alarm"
pmsg.TextBody := message
fields := Object()
fields.smtpserver := "smtp.gmail.com"
fields.smtpserverport := 465
fields.smtpusessl := True
fields.sendusing := 2
fields.smtpauthenticate := 1
fields.sendusername := "deineGmailAdresse@gmail.com"
fields.sendpassword := "DeinMailPasswort"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
pmsg.Send()
pmg.Close
}
return
}
catch e {
soundbeep, 2000
msgbox, 0, Fehler, Keine Internetverbindung, 5
alarmEmail = on
Return
}
weil wohl nicht jeder den power director auf seinem rechner hat, habe ich die unwesentlichen teile gelöscht. dabei kommt dann folgender code heraus,
ich hoffe es ist so übersichtlich. folgender code funktioniert
nur wenn ich die verbindung zum internet trenne, kommt eine fehlermeldung
Code: Select all
#Persistent ;sorgt dafür, dass sich das Programm nicht beendet
alarmEmail = on
SetTimer, restSize, 10000
return
restSize:
tooltip, restSize on
sleep, 1000
SetTimer, restSizeAlarm, 10000
return
restSizeAlarm:
SetTimer, restSize, off
tooltip, restSize off
soundbeep, 2000, 2000
sleep, 1000
ComObjCreate("SAPI.SpVoice").Speak("achtung festplatte bald voll")
gosub alarmEmail
return
alarmEmail:
if alarmEmail = on
{
SendGmail("test","DeineMailAdresse@gmail.com")
alarmEmail = off
}
return
Try {
SendGmail(message,emailto){
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """Power Director Alarm"" <DeineMailAdresse@gmail.com>"
pmsg.To := emailto
pmsg.Subject := "Power Director Alarm"
pmsg.TextBody := message
fields := Object()
fields.smtpserver := "smtp.gmail.com"
fields.smtpserverport := 465
fields.smtpusessl := True
fields.sendusing := 2
fields.smtpauthenticate := 1
fields.sendusername := "DeineMailAdresse@gmail.com"
fields.sendpassword := "DeinPasswort"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
pmsg.Send()
pmg.Close
}
}
catch e {
soundbeep, 2000, 2000
msgbox, 0, Fehler, Keine Internetverbindung, 5
alarmEmail = on
Return
}