Windows 10 Update-Meldungen deaktivieren

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Windows 10 Update-Meldungen deaktivieren

Re: Windows 10 Update-Meldungen deaktivieren

Post by Best-Code-in-Use » 19 Jan 2016, 14:52

@nnnik:

Funktioniert einwandfrei, es wird noch nicht einmal mehr ein Popup Fenster geöffnet.
Auch die Systemlast scheint sehr gering zu sein. Ich verstehe zwar nicht genau wie es funktioniert, aber es funktioniert...

Vielen Dank für Deine tolle Arbeit!

...Alles klar

Post by Best-Code-in-Use » 18 Jan 2016, 05:33

Ich danke Dir, wollte aber vorsichtshalber nochmal nachfragen...

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 18 Jan 2016, 05:32

Ja: 5 Minuten = (5 * 60 = 300) Sekunden = (300 * 1000 = 300000) Millisekunden

Re: Windows 10 Update-Meldungen deaktivieren

Post by Best-Code-in-Use » 18 Jan 2016, 05:13

@nnnik:

Danke für Deine Mühe, aber das sprengt für mich den Rahmen. Dieses Script ist für mich nicht mehr nachvollziehbar, dennoch werde ich es gerne mal testen...


@just me

wie bereits geschrieben, ich hätte das Ganze jetzt auf 10 Sekunden gesetzt und gut ist es... So wegen Aufwand und Nutzen... ;-)
Trotzdem vielen Dank für Deine umfassende Hilfe, wenn ich mal wieder mehr Zeit habe, würde ich mich dem Thema SetTimer nochmals zuwenden wollen.

Im Script scheint sich eh noch ein Rechenfehler eingeschlichen zu haben, denn 300 Sekunden = 5 Minuten = 300000 Millisekunden, oder?

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 17 Jan 2016, 16:21

@nnnik:
Das ist sicher sehr elegant, sprengt aber deutlich den Rahmen von Programmierlaien. Außerdem reicht in diesem Fall ein schlichter Timer. Das Skript soll sich ja nur um bestimmte Fenster kümmern, nichts weiter.

@Best-Code-in-Use:
Wenn der Timer 3 Minuten lang alle 20 Sekunden laufen soll, sind das nach Adam Riese 180 / 20 = 9 Aufrufe. Wenn Du die im Timer mitzählst, kannst Du im 9. Aufruf die Aufrufperiode innerhalb des Timers per SetTimer ändern.

Re: Windows 10 Update-Meldungen deaktivieren

Post by nnnik » 17 Jan 2016, 14:32

Nein ich meinte damit, dass du einen HOOK erstellst:

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent ; Wichtig!!!
 
ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
Gui +LastFound
DllCall("RegisterShellHookWindow", UInt, A_ScriptHwnd)
MsgNum := DllCall("RegisterWindowMessage", Str, "SHELLHOOK")
OnMessage(MsgNum, "ShellMessage")
Return

ShellMessage(wParam,lParam)
{
	global ProcessNames
	If (wParam = 1)
		Loop, Parse, ProcessNames, |
		{
   			Process, Exist, %A_LoopField%
   			if (ErrorLevel <> 0)
				Process, Close, %ErrorLevel%
		}
}
ShellMessage wird ab und zu von Windows aufgerufen, wenn etwas bestimmtes passiert.
Dafür werden der Funktion bestimmte Parameter übergeben der besagt was genau passiert. Wenn in wParam eine 1 steht wurde 1 Fenster erstellt.
Hier ein Dankeschön an SKAN von dem der Original Code stammt und eins an tidbit der ihn mir gegeben hat..

SetTimer

Post by Best-Code-in-Use » 17 Jan 2016, 13:55

Hallo just me,

Danke für Deine Hinweise.

Ja, SetTimer hatte ich mir natürlich durchgelesen, allerdings erschließt sich mir die Änderung der Ausführungszeit nicht.

Das der 2. Abschnitt mit dem Timer nicht mehr erreicht wird, war mir auch klar, ich wollte ja nur kurz darstellen, wie es theoretisch aussehen sollte.
Aber wie auch immer, okay, ich denke mal das die Systemlast bei einer Ausführung alle 20 Sekunden die PC´s nicht sprengen wird.

Von daher...

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 17 Jan 2016, 01:32

Moin,

Deine beiden Timer sollen offenbar dasselbe tun. Dann braucht es aber nur Einen. Die Aufrufperiode kann man jederzeit ändern (siehe SetTimer).

In Deinem letzten Versuch wird der Abschnitt mit dem zweiten Timer nie erreicht (siehe automatischer Ausführungsbereich).

Re: Windows 10 Update-Meldungen deaktivieren

Post by Best-Code-in-Use » 16 Jan 2016, 11:38

@nnnik

WinAPI entfällt, da Microsoft perfiderweise immer mal neue Fenster einblendet...

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent ; Wichtig!!!
 
ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
SetTimer, CloseUpdWindows1, 20000 ; alle 20 Sekunden den Timer aufrufen
; Damit der Timer gleich beim Start des Skripts ausgeführt wird, lassen wir das Skript durchlaufen
; Anderenfalls sollte hier ein Return stehen.
 
CloseUpdWindows1:
Loop, Parse, ProcessNames, |
{
   Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
}
Return

ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
SetTimer, CloseUpdWindows2, 300000 ; alle 300 Sekunden den Timer aufrufen
; Damit der Timer gleich beim Start des Skripts ausgeführt wird, lassen wir das Skript durchlaufen
; Anderenfalls sollte hier ein Return stehen.
 
CloseUpdWindows2:
Loop, Parse, ProcessNames, |
{
   Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
}
Return
Der erste Timer soll alle 20 Sekunden aufgerufen werden, Okay.
Aber wie kann ich nun dafür sorgen das CloseUpdWindows1 nur 5 Minuten läuft und anschließend CloseUpdWindows2 aufgerufen wird???
Dieser soll dann in einer Endlosschleife laufen und alle 5 Minuten aufgerufen werden.

Re: Windows 10 Update-Meldungen deaktivieren

Post by nnnik » 16 Jan 2016, 06:03

Wieso erstellst du nicht ein 2. Label über dem ersten?
z.B. CloseUpWindow2
Darauf könntest du dann einen 2. Timer legen.
Andernfalls könntest du auch mit der WinAPI arbeiten die ein bisschen code ausführt immer wenn sich ein Fenster öffnet.

5 Minuten sind zu lange...

Post by Best-Code-in-Use » 16 Jan 2016, 05:09

Hallo Gemeinde,

leider wird die Einblendung für das Windows 10 Update immer nerviger...
Gibt es eine Möglichkeit 2 Timer laufen zu lassen? Allerdings müsste sich der erste Timer nach 5 Minuten selbst beenden und mit einer Frequenz von 20 Sekunden laufen.
Und dann eben den 2. Timer starten, der dann mit einer Frequenz von 5 Minuten läuft...

Allerdings habe ich nicht wirklich etwas gefunden, wie ich das kombinieren kann. (Gut man könnte es über die Aufgabenplanung erledigen und mit 2 Scripten arbeiten, aber das finde ich wieder zu kompliziert als einfache Lösung für alle Gestressten...)

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent ; Wichtig!!!
 
ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
SetTimer, CloseUpdWindows, 20000 ; alle 20 Sekunden den Timer aufrufen
; Damit der Timer gleich beim Start des Skripts ausgeführt wird, lassen wir das Skript durchlaufen
; Anderenfalls sollte hier ein Return stehen.
 
CloseUpdWindows:
Loop, Parse, ProcessNames, |
{
   Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
}
Return
Für eine Idee wäre ich wie immer dankbar :-)

Label verstanden

Post by Best-Code-in-Use » 02 Dec 2015, 07:13

Ahh, Danke für die Erhellung...
Okay, im Prinzip kann man hier also einen eigenen Namen vergeben, der das Ganze dann genau definiert und die nachfolgenden Aktionen beinhaltet.

Das Script funktioniert übrigens einwandfrei, ich habe es soeben getestet, vielen Dank...

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 02 Dec 2015, 06:36

Falls Du auf Timer umsteigen willst, brauchst Du die Direktive #Persistent, damit das Skript geladen bleibt. Dem Timer-Label kannst Du einen freigewählten Namen geben:

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent ; Wichtig!!!
 
ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
SetTimer, CloseUpdWindows, 300000 ; alle 300 Sekunden den Timer aufrufen
; Damit der Timer gleich beim Start des Skripts ausgeführt wird, lassen wir das Skript durchlaufen
; Anderenfalls sollte hier ein Return stehen.

CloseUpdWindows:
Loop, Parse, ProcessNames, |
{
   Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
}
Return

SetTimer statt Loop

Post by Best-Code-in-Use » 02 Dec 2015, 06:17

@jNizM @just me

Vielen Dank für Eure Hilfe, das sehe ich mir an.
Allerdings wird das Autohotkey Symbol ja ausgeblendet und daher nicht angezeigt. Aber ich beschäftige mich nochmals mit der SetTimer Funktion!

Okay, habe es mir gerade angesehen... (https://ragnar-f.github.io/docs/commands/SetTimer.htm)
Na ja, da es so funktioniert, würde ich es so lassen wollen. Da sich mir das Label (https://ragnar-f.github.io/docs/misc/Labels.htm) in diesem Fall nicht erschließt...

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 02 Dec 2015, 03:39

Ich auch! ;)

Re: Windows 10 Update-Meldungen deaktivieren

Post by jNizM » 01 Dec 2015, 08:24

Bei solchen Aufgaben würde ich persönlich den SetTimer gebenüber einem Sleep im Loop bevorzugen.
Oftmals sorgt das Sleep dafür (was ich bei mir festgestellt habe), dass das Script zum Beispiel gegenüber einem Rechtsklick auf das Icon unempfänglich macht (bzw. hängt / schwer zugänglich).

Na dann, es sieht gut aus

Post by Best-Code-in-Use » 01 Dec 2015, 07:52

Hallo just me,

vielen Dank für Deine ausführliche Hilfe. Ja, meine Idee funktionierte auch nicht.

Eine geschweifte Klammer hat wohl bei Deinem Script gefehlt, hier nun das korrigierte und vollständige Script.
Ich habe die Funktionalität inkl. der Wartezeit getestet, funktioniert Alles einwandfrei.

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent


ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
 
; ------------ Ueberpruefe ob Windows 10 Update Prozesse gestartet sind und falls ja beende sie -----------------
 

Loop   ; endlose aeussere Schleife
{
   Loop, Parse, ProcessNames, |   ; innere Schleife
   {
      Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
   }
   Sleep, 30000   ; 300 Sekunden - 5 Minuten warten bis zum naechsten Durchlauf
}

Re: Windows 10 Update-Meldungen deaktivieren

Post by just me » 01 Dec 2015, 07:23

Nö! Schau Dir mal jNizMs Vorschlag mit SetTimer an. Alternative kannst Du auch noch eine äußere Schleife darumlegen:

Code: Select all

Loop   ; endlose äußere Schleife
   Loop, Parse, ...   ; innere Schleife
   {
      ...
   }
   Sleep, 30000   ; vor nächster Ausführung warten
}

mit 5 Minuten Wartezeit dazwischen

Post by Best-Code-in-Use » 01 Dec 2015, 07:14

Ich gehe mal davon aus, das es so korrekt ist.
Denn ich möchte das das Script 5 Minuten Pause einlegt, bevor es wieder durchläuft.

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#NoEnv ; Nicht nachsehen, ob leere Varibalen evtl. Umgebungsvariablen sind, beschleunigt die Laufzeit
#SingleInstance Force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent


ProcessNames := "gwx.exe|GWXUX.exe|GWXUXWorker.exe|GWXConfigManager.exe"
 
; ------------ Ueberpruefe ob Windows 10 Update Prozesse gestartet sind und falls ja beende sie -----------------
 
Loop, Parse, ProcessNames, |
{
   Process, Exist, %A_LoopField%
   if (ErrorLevel <> 0)
   {
      Process, Close, %ErrorLevel%
   }
   ; -------------------- warte 300 Sekunden Also 5 Minuten -----------------------------
   Sleep, 300000  ; 300 Sekunden - also 5 Minuten
}

...Warteschleife

Post by Best-Code-in-Use » 01 Dec 2015, 06:16

...eine Frage drängt sich noch auf:
Wäre es hier nicht zweckmäßig eine zeitlich begrenzte Warteschleife einzubauen, da das Script ja ansonsten ununterbrochen die Prozesse durchsuchen würde?

Top