Hi
ich habe verschiedene Fragen und zwar:
1.
Ich möchte in eine SQLite Datenbank Variablen schreiben. Leider kommt immer eine Fehlermeldung
Mein Code:
Spoiler anzeigen
#Include <SQLite.au3>
#Include <SQLite.dll.au3>
Opt("MustDeclareVars", 1) ; Variablen müssen deklariert werden
[/autoit] [autoit][/autoit] [autoit];Variablen anfang
Global $titel = "PC-Key", $version = "1.0", $resource_dir = @ScriptDir & "\resource", $sSQliteDll, $Traytip, $Blockdesktop
;Variablen ende
$sSQliteDll = _SQLite_Startup ()
_SQLite_Open ($resource_dir & "\configuration.moe")
$Traytip = MsgBox(4132,$titel,"Wollen Sie eine Meldung erhalten wenn die Eingabe gesperrt wurde?")
Select
Case $Traytip = 6 ;Yes
$Traytip=1
Case $Traytip = 7 ;No
$Traytip=0
EndSelect
$Blockdesktop = MsgBox(4132,$titel,"Soll der Desktop grauschattiert werden, wenn der Computer gesperrt wurde?")
Select
Case $Blockdesktop = 6 ;Yes
$Blockdesktop=1
Case $Blockdesktop = 7 ;No
$Blockdesktop=0
EndSelect
_SQLite_Exec(-1,"Create table Config (Configtype text, Value text);" & _
"Insert into Config values ('TrayTip','".$Traytip."');" & _
"Insert into Config values ('BlockDesktop','".$Blockdesktop."');")
_SQLite_Close ()
_SQLite_Shutdown ()
Exit
2.
Ich habe einen Shutdown-Manager geschreiben, mit welchem man über einen Uhrzeit oder einen Countdown den PC ausschalten abmelden etc. kann.
Nun geht ja die Uhr bekanntlich nur bis 23 und dann gehts wieder mit 00 los. (Bei Minuten und Sekunden bis 59 und dann wieder 00)
Das ganze habe ich mit einer If-Anweisung realiesiert. Leider kommt aber trotzdem noch die Fehler-Meldung wenn ich den PC via Uhrzeit runterfahren lasse und 00:00:05 eingebe. (Es kommt die Fehler-Meldung vom Countdown und der Timer für die Uhrzeit startet) Umgekehrt ist es genau so. Über schreite ich bei Countdwon die Spezifikationden der Uhrzeit aber der Countdown ist gültig, so komm die Fehlermeldung aber der Coutndown startet. Anbei Screens die das ganze nochmal zeigen:
Spoiler anzeigen
Nun meine Frage wie bekomme ich die falschen Fehlermeldungen weg? Hier mein Code:
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=shutdown.ico
#AutoIt3Wrapper_Res_Description=by Michi26206
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=by Michi26206
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs --------------------------------------------------------------------------------------------------------
Shutdown-Manager.exe (C) by Michi26206 - Programm zum geziehlten Auschalten, Abmelden etc. des PCs
[/autoit] [autoit][/autoit] [autoit]#ce --------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <ButtonConstants.au3>
#Include <Misc.au3>
#Include <Date.au3>
Opt("GUICloseOnESC", 1) ; ESC drücken beendet Programm nicht
Opt("TrayAutoPause", 0) ; das Script nicht pausieren, wenn auf das Tray-Icon geklickt wird
Opt("TrayMenuMode", 1) ; kein Defaul-Tray-Menu
Opt("MustDeclareVars", 1) ; Variablen müssen deklariert werden
Opt("TrayOnEventMode",1)
;Vriablen anfang
Global $titel = "Shutdown-Manager", $version = "1.0.0.0", $quell_code_zeilen = "209", $Maindialog, $uhrzeit_redio, $timer_redio, $stunden, $minuten, $sekunden, $shutdown, $ruhezustand, $standby, $reboot, $logoff, $nMsg, $IE, $aktion, $aktion_ausfuehren, $modus = "-1", $timer, $timer_tick, $countdown_show = "1", $gui_read_stunden, $gui_read_minuten, $gui_read_sekunden, $aktionszeitpunkt
Dim $umwandeln[4], $countdown[4]
;Vriablen ende
;--------------------------------------------------------
;--------------- Anfang GUI Maindialog ------------------
;--------------------------------------------------------
$Maindialog = GUICreate($titel, 220, 330, -1, -1)
GUISetBkColor(0xffffff)
GUICtrlCreateLabel($titel & " v." & $version, 50, 5, 150, 25, $WS_DISABLED)
$aktion = GUICtrlCreateGroup("Aktion", 50, 30, 105, 170)
$shutdown = GUICtrlCreateRadio("Ausschalten", 65, 55, 85, 20)
GUICtrlSetTip(-1, "Computer Ausschalten")
$ruhezustand = GUICtrlCreateRadio("Ruhezustand", 65, 85, 85, 20)
GUICtrlSetTip(-1, "Computer wird in den Ruhezustand gefahren")
$standby = GUICtrlCreateRadio("Standby", 65, 115, 85, 20)
GUICtrlSetTip(-1, "Computer wird in den Standby-Modus gefahren")
$reboot = GUICtrlCreateRadio("Neu starten", 65, 145, 85, 20)
GUICtrlSetTip(-1, "Computer wird Neu gestartet")
$logoff = GUICtrlCreateRadio("Abmelden", 65, 175, 85, 20)
GUICtrlSetTip(-1, "Benutzer wird abgemeldet")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Aktionszeit", 10, 210, 200, 70)
$uhrzeit_redio = GUICtrlCreateRadio("um: ", 25, 225, 40, 20)
GUICtrlSetTip(-1, "Zeitpunkt, zu dem die gewünschte Aktion ausgeführt werden soll")
$timer_redio = GUICtrlCreateRadio("in: ", 25, 255, 40, 20)
GUICtrlSetTip(-1, "Zeitpunkt, zu dem die gewünschte Aktion ausgeführt werden soll")
$stunden = GUICtrlCreateInput("", 75, 242, 30, 20)
GUICtrlSetLimit(-1, 2)
GUICtrlCreateLabel(":", 111, 244, 10, 20)
$minuten = GUICtrlCreateInput("", 120, 242, 30, 20)
GUICtrlSetLimit(-1, 2)
GUICtrlCreateLabel(":", 155, 244, 10, 20)
$sekunden = GUICtrlCreateInput("", 165, 242, 30, 20)
GUICtrlSetLimit(-1, 2)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$aktion_ausfuehren = GUICtrlCreateButton(" OK ", 95, 290)
TrayCreateItem($titel & " v." & $version)
TrayCreateItem("")
TrayCreateItem("About")
TrayItemSetOnEvent(-1,"About")
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"Close")
TraySetState()
GUISetState(@SW_SHOW, $Maindialog)
;--------------------------------------------------------
;----------------- Ende GUI Maindialog ------------------
;--------------------------------------------------------
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
HotKeySet( "!q")
Exit
Case $shutdown
$aktion = "Ausschalten"
Case $ruhezustand
$aktion = "Ruhezustand"
Case $standby
$aktion = "Standby"
Case $reboot
$aktion = "Neu starten"
Case $logoff
$aktion = "Abmelden"
Case $uhrzeit_redio
$modus = "Uhrzeit"
Case $timer_redio
$modus = "Timer"
Case $aktion_ausfuehren
$gui_read_stunden = _Number(GUICtrlRead($stunden))
$gui_read_minuten = _Number(GUICtrlRead($minuten))
$gui_read_sekunden = _Number(GUICtrlRead($sekunden))
GUISetState(@SW_HIDE, $Maindialog)
HotKeySet( "!q", "Close")
If $aktion = 5 Or $modus = -1 Or $gui_read_stunden = -1 Or $gui_read_minuten = -1 Or $gui_read_sekunden = -1 Then
MsgBox(16, "Error","Bei der Auswahl der Optionen ist Ihnen ein Fehler unterlaufen." & @CRLF & "Bitte kontrollieren Sie Ihre Eingabe.")
GUISetState(@SW_SHOW, $Maindialog)
ElseIf $modus = "Uhrzeit" And $gui_read_stunden < -1 Or $gui_read_minuten < -1 Or $gui_read_sekunden < -1 Or $gui_read_stunden > 23 Or $gui_read_minuten > 59 Or $gui_read_sekunden > 59 Then
MsgBox(64, "Error","Es ist ein Gültigkeitsfehler aufgetreten." & @CRLF & "Es gilt:" & @CRLF & "Stunden müssen kleiner 24 sein aber größer als 0." & @CRLF & "Minuten müssen kleiner 60 sein aber größer als 0." & @CRLF & "Sekunden müssen kleiner 60 sein aber größer als 0.")
GUISetState(@SW_SHOW, $Maindialog)
ElseIf $modus = "Timer" And $gui_read_stunden < -1 Or $gui_read_minuten < -1 Or $gui_read_sekunden < 6 Then
MsgBox(64, "Error","Es ist ein Gültigkeitsfehler aufgetreten." & @CRLF & "Es gilt:" & @CRLF & "Stunden müssen größer als 0." & @CRLF & "Minuten müssen größer als 0." & @CRLF & "Sekunden müssen mindestens 6 sein.")
GUISetState(@SW_SHOW, $Maindialog)
EndIf
If $aktion <> 5 And $modus = "Uhrzeit" And $gui_read_stunden <= 23 And $gui_read_minuten <= 59 And $gui_read_sekunden <= 59 And $gui_read_stunden >= 0 And $gui_read_minuten >= 0 And $gui_read_sekunden >= 0 Then
$aktionszeitpunkt = $gui_read_stunden & ":" & $gui_read_minuten & ":" & $gui_read_sekunden
MsgBox(64, "Info", "Aktion " & $aktion & " " & @CRLF & "Wird ausgeführt um: " & $aktionszeitpunkt & @CRLF & @CRLF & "Achtung: Das Programm kann absofort nur noch über ALT + Q oder das Traymenü beendet werden!", 5)
If $countdown_show = 1 Then
If _NowTime(5) < $aktionszeitpunkt Then
$aktionszeitpunkt = _TimeToTicks($gui_read_stunden, $gui_read_minuten, $gui_read_sekunden)
Else
$aktionszeitpunkt = _TimeToTicks($gui_read_stunden, $gui_read_minuten, $gui_read_sekunden) + 86400000
EndIf
_TicksToTime($aktionszeitpunkt - _TimeToTicks(@HOUR,@MIN,@SEC), $countdown[1], $countdown[2], $countdown[3])
SplashTextOn($aktion & " in", $countdown[1] & ":" & $countdown[2] & ":" & $countdown[3], 300, 70, @DesktopWidth-310, 10, 18, Default, 40)
WinActivate($aktion & " in")
EndIf
Do
If $countdown_show = 1 Then
_TicksToTime($aktionszeitpunkt - _TimeToTicks(@HOUR,@MIN,@SEC), $countdown[1], $countdown[2], $countdown[3])
ControlSetText($aktion & " in", "", "Static1", $countdown[1] & ":" & $countdown[2] & ":" & $countdown[3])
EndIf
Sleep(100)
Until $gui_read_stunden & ":" & $gui_read_minuten & ":" & $gui_read_sekunden = _NowTime(5)
SplashOff()
Switch $aktion
Case "Ausschalten"
Shutdown(1)
Exit
Case "Ruhezustand"
Shutdown(64)
Exit
Case "Standby"
Shutdown(32)
Exit
Case "Neu starten"
Shutdown(2)
Exit
Case "Abmelden"
Shutdown(0)
Exit
EndSwitch
ElseIf $aktion <> 5 And $Modus = "Timer" And $gui_read_stunden >= 0 And $gui_read_minuten >= 0 And $gui_read_sekunden >= 6 Then
$timer = TimerInit()
MsgBox(64, "Info", "Aktion " & $aktion & " " & @CRLF & "Wird in " & $gui_read_stunden & " Stunden " & $gui_read_minuten & " Minuten und " & $gui_read_sekunden & " Sekunden." & @CRLF & @CRLF & "Achtung: Das Programm kann absofort nur noch über ALT + Q oder das Traymenü beendet werden!", 5)
If $countdown_show = 1 Then
_TicksToTime(_TimeToTicks($gui_read_stunden, $gui_read_minuten, $gui_read_sekunden) - Int(TimerDiff($timer)), $countdown[1], $countdown[2], $countdown[3])
SplashTextOn($aktion & " in", $countdown[1] & ":" & $countdown[2] & ":" & $countdown[3], 300, 70, @DesktopWidth-310, 10, 18, Default, 40)
WinActivate($aktion & " in")
EndIf
Do
If $countdown_show = 1 Then
_TicksToTime(TimerDiff($timer), $umwandeln[1], $umwandeln[2], $umwandeln[3])
$timer_tick = _TimeToTicks($umwandeln[1], $umwandeln[2], $umwandeln[3])
_TicksToTime(_TimeToTicks($gui_read_stunden, $gui_read_minuten, $gui_read_sekunden) - Int(TimerDiff($timer)), $countdown[1], $countdown[2], $countdown[3])
ControlSetText($aktion & " in", "", "Static1", $countdown[1] & ":" & $countdown[2] & ":" & $countdown[3])
EndIf
Sleep(100)
Until $timer_tick = _TimeToTicks($gui_read_stunden, $gui_read_minuten, $gui_read_sekunden)
SplashOff()
Switch $aktion
Case "Ausschalten"
Shutdown(1)
Exit
Case "Ruhezustand"
Shutdown(64)
Exit
Case "Standby"
Shutdown(32)
Exit
Case "Neu starten"
Shutdown(2)
Exit
Case "Abmelden"
Shutdown(0)
Exit
EndSwitch
EndIf
EndSwitch
WEnd
Func Close()
HotKeySet( "!q")
Exit
EndFunc ;==>Close
Func About()
MsgBox(64, $titel & " v." & $version & " About", $titel & " v. " & $version & @CRLF & "Autor: Michi26206" & @CRLF & $quell_code_zeilen & " Zeilen Quellcod")
EndFunc ;==>About
Func _Number($variable)
If $variable = "0" Or $variable = "00" Then
Return $variable
Else
Number($variable)
If $variable = 0 Then $variable = -1
Return $variable
EndIf
EndFunc ;==>_Number
3.
Nun kommt noch eine Frage
Mann kann ja mit
#AutoIt3Wrapper_Res_File_Add=
[/autoit]Resource Datein zum Programm hinzufügen. Doch wie verwende ich diese? Hab leider nichts gefunden.
Ich hoffe es kann mir wer helfen. Danke schon mal im Vorraus.
Gruß Michi26206
PS: Code Copyright by Michi26206 nicht das mir wieder wer den Quellcode klaut