Rechner/PC herunterfahren Shutdown am Wochentag Freitag verhindern

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Rechner/PC herunterfahren Shutdown am Wochentag Freitag verhindern

05 Oct 2017, 06:46

Hallo zusammen,

ich habe mal ein Script gebastelt, was grundsätzlich zwar funktioniert, jedoch meiner Meinung nicht die eleganteste Lösung sein kann. :think:

Das Script verhindert, dass der User am Freitag seinen PC herunterfahren kann.

Hintergrund:
Am Freitag laufen immer die Updates seitens IT, PC muss an sein, sonst kein Update und irgendwann Email aus der IT. Das Script habe ich in einem Forum gefunden und ein wenig angepasst.
Bin für jede Hilfe dankbar, um das Script ein wenig zu pimpen.

LG
Heloo1982

Code: Select all

FormatTime, CurrentWDay, Timestamp, wDay

if (CurrentWDay="6") {


DllCall("kernel32.dll\SetProcessShutdownParameters", UInt, 0x4FF, UInt, 0)
OnMessage(0x11, "WM_QUERYENDSESSION")


WM_QUERYENDSESSION(wParam, lParam)
{
	Gui, Add, Progress, x2 y10 w450 h30 , 0 ;-|
	Gui, Show, h55 w461, Sperre für Updates --> Bitte warten Sie
	loop
	{
		sleep 100
		Gui, Add, Progress, x2 y10 w450 h30 , %a_index%						
		WinGetActiveTitle, Var ;Erkennt aktiven Fenster Title,
		if Var = ;Wenn Leer soll Leertaste gedrückt werden (also Abbrechen)
		{	
			send {space}
			Gui, Destroy
			break
		}
	}

FormatTime, CurrentWDay, Timestamp, wDay
   	
	if (CurrentWDay="1") {
		Wochentag=Sonntag
	}

	if (CurrentWDay="2") {
		Wochentag=Montag
	}

	if (CurrentWDay="3") {
		Wochentag=Dienstag
	}

	if (CurrentWDay="4") {
		Wochentag=Mittwoch
	}

	if (CurrentWDay="5") {
		Wochentag=Donnerstag
	}

	if (CurrentWDay="6") {
		Wochentag=Freitag
	}

	if (CurrentWDay="7") {
		Wochentag=Samstag
	}
	
	msgbox, PC Shutdown ist gesperrt, Wochentag %Wochentag% wurde für Updates vermerkt!`nZum Überspringen das Script beenden.
}

}
Return
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Rechner/PC herunterfahren Shutdown am Wochentag Freitag verhindern

05 Oct 2017, 07:59

Moin,

den Namen des aktuellen Wochentags kannst Du Dir auch direkt mit FormatTime holen:

Code: Select all

#NoEnv
FormatTime, Wochentag, , dddd
MsgBox, %Wochentag%

Code: Select all

	loop
	{
		sleep 100
		Gui, Add, Progress, x2 y10 w450 h30 , %a_index%						
		WinGetActiveTitle, Var ;Erkennt aktiven Fenster Title,
		if Var = ;Wenn Leer soll Leertaste gedrückt werden (also Abbrechen)
		{	
			send {space}
  1. Du solltest nicht bei jedem Schleifendurchlauf ein neues Steuerlement erstellen. Für das Ändern von Steuerelementen gibt es die Anweisung GuiControl. Das funktioniert einfacher, wenn Du dem Steuerelement beim Erstellen einen Namen gibst -> v-Variable.
  2. Das mit WinGetActiveTitle könnte schief gehen. Send sendet Tastatureingaben an das aktive Fenster. WinGetActiveTitle liefert eine leere Zeichenfolge, wenn entweder das aktive Fenster keinen Titel hat oder gerade kein Fenster aktiv ist. Ich würde zunächst mit If (WinID := WinExist("A")) prüfen, ob es ein aktives Fenster gibt, das die Leertaste verarbeiten kann.
Ob Dein Skipt das Herunterfahren zuverlässig verhindert, kann ich nicht sagen. Aber, gibt es für solche Updates nicht 'WakeOnLan'?
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Rechner/PC herunterfahren Shutdown am Wochentag Freitag verhindern

05 Oct 2017, 08:09

WakeOnLan ist genau das Stichwort, das funktioniert bei uns nicht zuverlässig ;-)
Ich würde das Skript nicht als zuverlässig bezeichnen, immerhin kommt aber ein aktiver Hinweis beim Shutdown, dass am Freitag die Kiste an bleiben soll. Wird das Progressfenster geschlossen, dann fährt er trotzdem herunter. Ich versuche mal deine Anregungen zu verarbeiten, vielen Dank erstmals.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 56 guests