Tech- & FAQ-Forum

Zurück   CC-Community Board > CC-CB Hauptforen > Tech & FAQ Forum

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 28.04.2010, 06:55   #1
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Wenn man ein Programm, welches ein Icon im Systray (WinXP) zeigt, beispielsweise per taskkill beendet, bleibt das Icon im Systray bestehen.

Fährt man mit der Maus drüber, verschwindet es.

Kann man das irgendwie per Batch automatisieren ?

Ich möchte also: Wenn mehere Tasks per taskkill beendet werden, sollen die Icons auch aus dem Systray verschwinden.

Sonst sind sie nach einem Neustart von einem der gekillten Tasks doppelt vorhanden.

Gibts da vielleicht ein Script, ein kleines Progrämmelchen oder so dafür ?
Simukan ist offline   Mit Zitat antworten
Alt 28.04.2010, 08:15   #2
forwarder
Toast
 
Benutzerbild von forwarder
 
Registriert seit: 03.06.2001
Ort: Internet
Beiträge: 2.218
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Code:
#include <windows.h>

#define FW(x,y) FindWindowEx(x, NULL, y, L"")

void RefreshTaskbarNotificationArea()
{
	HWND hNotificationArea;
	RECT r;

	hNotificationArea = FindWindowEx(FW(FW(FW(NULL, L"Shell_TrayWnd"), L"TrayNotifyWnd"), L"SysPager"),	NULL, L"ToolbarWindow32", L"Notification Area");
	if(!hNotificationArea) {
		MessageBox(NULL, L"Error: Unable to get HWND of Notification Area.", L"RefreshTray", MB_ICONERROR|MB_OK);
		return;
	}

	GetClientRect(hNotificationArea,&r);

	for (LONG x = 0; x < r.right; x += 5)
		for (LONG y = 0; y < r.bottom; y += 5)
			SendMessage(
			hNotificationArea,
			WM_MOUSEMOVE,
			0,
			(y << 16) + x);
}

int __stdcall WinMain(HINSTANCE a, HINSTANCE b, LPSTR c, int d) {
	RefreshTaskbarNotificationArea();
	return 0;
}
recht simpel, ausfuehrbare version (4kb exe) + quellcode hier:

http://rapidshare.com/files/381064663/refreshtray.rar
forwarder ist offline   Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu forwarder für den nützlichen Beitrag:
Alt 28.04.2010, 08:39   #3
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Cool !

Vielen herzlichen Dank !
Funktioniert einwandfrei.
Ich habe jede Menge rumgegoogelt, aber nicht wirklich was gefunden.
Nur diversen VB-Quellcode. Mit dem konnte ich aber nix anfangen.
Simukan ist offline   Mit Zitat antworten
Alt 01.06.2011, 20:11   #4
SHC
 
Registriert seit: 01.06.2011
Beiträge: 3
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Hallo,

auch ich suche seit zwei Tagen nach einer Lösung dieses Problems. Könntest Du den Link zu Deinem Programm noch einmal aktualisieren?

Herzlichen Dank,
SHC
SHC ist offline   Mit Zitat antworten
Alt 02.06.2011, 17:08   #5
Heiland
Oldie
 
Benutzerbild von Heiland
 
Registriert seit: 03.06.2002
Beiträge: 1.972
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Hab leider kein XP zur Verfügung und kann es nicht testen, aber einfach mal kompiliert: http://uploaded.to/file/l0qnszhz

Hab nur Unicode gefixt sonst nix geändert, also alles Lob oder Schmähungen an den rechtmässigen Urheber bitte
Heiland ist offline   Mit Zitat antworten
Alt 02.06.2011, 19:07   #6
SHC
 
Registriert seit: 01.06.2011
Beiträge: 3
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Hallo,

vielen herzlichen Dank für die Mühe!!

Leider funktioniert es bei mir nicht, es erscheint eine Fehlermeldung.

"Unable to geht HWND of Notification Area".


Allerdings nutze ich Windows 7 - habe erst vorhin gesehen, dass es wohl für WinXP gedacht war.


*seufz* Es ist ganz schön schwer, für dieses Problem eine Lösung zu finden. Ich suche jetzt schon mehrere Tage ohne nennenswerten Erfolg.


Trotzdem nochmals herzlichen Dank!!!

SHC
SHC ist offline   Mit Zitat antworten
Alt 02.06.2011, 21:53   #7
MHuber
Oldie
 
Benutzerbild von MHuber
 
Registriert seit: 22.03.2004
Beiträge: 94
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Danach hatte ich auch mal ziemlich lange gesucht - fündig wurde ich bei den Scriptschreibern der AutoHotKey-Community: http://www.autohotkey.com/forum/topic8086-15.html
Unter XP getestet und für gut befunden, ob's unter Win7 läuft weiß ich nicht
MHuber ist offline   Mit Zitat antworten
Alt 03.06.2011, 07:43   #8
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Ich habe es hier nochmal hochgeschoben:
http://www.multiupload.com/MKEMZCFLB7

Ich habe es seit damals im täglichen Einsatz.
Funktioniert hervorragend.

Herzlichen Dank nochmal, forwarder!
Simukan ist offline   Mit Zitat antworten
Alt 03.06.2011, 18:09   #9
SHC
 
Registriert seit: 01.06.2011
Beiträge: 3
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Hallo,

ganz herzlichen Dank an "Simukan" & "MHuber" & "Heiland".

Die kompilierte Datei funktioniert bei mir (Windows 7 64bit) leider nicht, dafür funktioniert jedoch eines der AutoHotKey-Scripte auf der verlinkten Seite!!


Nochmals herzlichen Dank für Eure Bemühungen, Ihr habt mir sehr, sehr geholfen!



SHC
SHC ist offline   Mit Zitat antworten
Alt 02.07.2011, 08:29   #10
forwarder
Toast
 
Benutzerbild von forwarder
 
Registriert seit: 03.06.2001
Ort: Internet
Beiträge: 2.218
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Weils vor einiger Zeit nochmal verlangt wurde hier eine Version die nicht auf 4KB geschrumpft wurde und dementsprechend auch unter Win2k noch laufen sollte:

http://www.multiupload.com/5GD4NGBKHH

Source ist dabei, ist derselbe - nur halt die .exe etwas groesser.
forwarder ist offline   Mit Zitat antworten
Alt 23.08.2011, 15:16   #11
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

@forwarder
Ich bin gerade dabei, mein System auf Win7@64bit einzurichten.
Allerdings kommt beim Start der refreshtray.exe folgende Fehlermeldung:

Zitat:
Error: Unable to get HWND of Notification Area
[OK]
Könntest Du das freundlicherweise anpassen?
Simukan ist offline   Mit Zitat antworten
Alt 23.08.2011, 17:13   #12
VISRef
Mumie
 
Benutzerbild von VISRef
 
Registriert seit: 05.02.2003
Beiträge: 346
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Zitat:
Zitat von Simukan Beitrag anzeigen
@forwarder
........... Allerdings kommt beim Start der refreshtray.exe folgende Fehlermeldung:

Error: Unable to get HWND of Notification Area...
Mein System: WinXP incl. SP3 und aller Updates.

Gruß / VISRef
VISRef ist offline   Mit Zitat antworten
Alt 23.08.2011, 18:52   #13
Shakti7
Oldie
 
Registriert seit: 26.04.2001
Beiträge: 3.733
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Könnte vielleicht hiermit klappen: http://www.autoitscript.com/forum/to..._hl__tray+icon
Shakti7 ist offline   Mit Zitat antworten
Folgender Benutzer sagt Danke zu Shakti7 für den nützlichen Beitrag:
Alt 24.08.2011, 07:19   #14
Dorwyn
Oldie
 
Benutzerbild von Dorwyn
 
Registriert seit: 01.08.2002
Ort: somewhere far beyond
Beiträge: 1.452
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Ich bin bei http://www.codeproject.com gerade fündig geworden.
Da hat ein Autor genau dieses Problem behandelt. Ich habe mir die Sourcecodes eben runter geladen und mal ganz flüchtig überflogen. Es ist in C# gecoded und nutzt daher das .NET Framework. Programm funktioniert unter Win7 einwandfrei.

Link zur Quelle
Dorwyn ist offline   Mit Zitat antworten
Folgender Benutzer sagt Danke zu Dorwyn für den nützlichen Beitrag:
Alt 24.08.2011, 07:30   #15
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

@Shakti7
Funktioniert bei mir leider nicht.

@Dorwyn
Funktioniert - aber diese TrayIconBuster.exe bleibt permanent im Speicher.
Eine unschöne Lösung.

Es wäre toll, wenn forwarder sein Script anpassen könnte.
Simukan ist offline   Mit Zitat antworten
Alt 24.08.2011, 09:28   #16
Dorwyn
Oldie
 
Benutzerbild von Dorwyn
 
Registriert seit: 01.08.2002
Ort: somewhere far beyond
Beiträge: 1.452
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Ahh ich verstehe. Ich kann dir die Anwendung auf eine normale Consolenanwendung umbauen die dann genau ein einziges Mal durchläuft wenn du möchtest.

Ich habe allerdings festgestellt, dass das Icon unter Win7 nur dann entfernt wird wenn es im Systray auch angezeigt wird und nicht ausgeblendet ist.



Wenn das im rot markierten Bereich liegt, wird das Icon nicht gelöscht mit dem Tool.

Sollte dir das reichen, einfach kurz Bescheid geben, dann bau ich dir das auf eine Consolenanwendung um.
Angehängte Grafiken
Dateityp: jpg asdf.jpg (5,5 KB, 103x aufgerufen)
Dorwyn ist offline   Mit Zitat antworten
Alt 24.08.2011, 12:22   #17
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

@Dorwyn

Sehr gerne. Her damit...
Simukan ist offline   Mit Zitat antworten
Alt 24.08.2011, 12:45   #18
EchtAtze
Oldie
 
Benutzerbild von EchtAtze
 
Registriert seit: 09.06.2001
Beiträge: 3.843
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Ich kriegs nicht in meinen Kopf, das MS da noch keine eigene API für gemacht hat.
Statt dessen muss man hier mit ner Maus-Simulation rumkrebsen.

@Microsoft:
Do it. Now.
EchtAtze ist offline   Mit Zitat antworten
Alt 24.08.2011, 13:03   #19
DetLife
Patriarch
 
Registriert seit: 02.05.2001
Beiträge: 6.162
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Zitat:
Zitat von Simukan Beitrag anzeigen
Funktioniert - aber diese TrayIconBuster.exe bleibt permanent im Speicher.
Übrigens gibt es keinen "System Tray" bei Windows, nur eine Notification Area. Das Programm ist also falsch benannt.
DetLife ist offline   Mit Zitat antworten
Alt 24.08.2011, 14:45   #20
Dorwyn
Oldie
 
Benutzerbild von Dorwyn
 
Registriert seit: 01.08.2002
Ort: somewhere far beyond
Beiträge: 1.452
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

@Simukan

Prog ist fertig, nur habe ich hier in der Firma keine Chance auf einen Filehoster zu kommen...

Ich lade dir das hoch wenn ich zuhause bin.

//Edith meint:

Hier zu finden:
http://uploaded.to/file/ior8nnhs

Geändert von Dorwyn (24.08.2011 um 16:04 Uhr) Grund: Link hinzugefügt
Dorwyn ist offline   Mit Zitat antworten
Folgender Benutzer sagt Danke zu Dorwyn für den nützlichen Beitrag:
Alt 24.08.2011, 17:08   #21
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

@Dorwyn
Herzlichen Dank für die Mühe.
Leider funktioniert es hier nicht.

Simukan ist offline   Mit Zitat antworten
Alt 25.08.2011, 06:26   #22
Dorwyn
Oldie
 
Benutzerbild von Dorwyn
 
Registriert seit: 01.08.2002
Ort: somewhere far beyond
Beiträge: 1.452
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Hmm... läuft bei mir einwandfrei

Versuchs mal einfach per Doppelklick zu starten. Fehlen evtl. (Admin-)Rechte bei der Batch Datei?
Dorwyn ist offline   Mit Zitat antworten
Folgender Benutzer sagt Danke zu Dorwyn für den nützlichen Beitrag:
Alt 25.08.2011, 06:37   #23
Dorwyn
Oldie
 
Benutzerbild von Dorwyn
 
Registriert seit: 01.08.2002
Ort: somewhere far beyond
Beiträge: 1.452
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Eben nochmal getestet unter Win 7 / 32bit

Läuft wie gesagt sauber.
Angehängte Grafiken
Dateityp: jpg asdfasdf.jpg (34,1 KB, 6x aufgerufen)
Dorwyn ist offline   Mit Zitat antworten
Folgender Benutzer sagt Danke zu Dorwyn für den nützlichen Beitrag:
Alt 25.08.2011, 07:36   #24
Simukan
Oldie
 
Benutzerbild von Simukan
 
Registriert seit: 24.10.2003
Beiträge: 703
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

So ich habe es nochmal probiert:
Unter Win7@32bit läuft es einwandfrei.
Unter Win7@64bit läuft es nicht. (siehe obigen Screenshot)

Ich benötige was, was unter Win7@64bit läuft.

Das Original (TrayIconBuster.exe) funktioniert.
Aber da stört mich, dass das Teil imSpeicher bleibt.
Simukan ist offline   Mit Zitat antworten
Alt 25.08.2011, 08:34   #25
sPIfF c99
fearless spaceman
 
Benutzerbild von sPIfF c99
 
Registriert seit: 22.04.2001
Ort: outer space
Beiträge: 782
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Zitat:
Zitat von Simukan Beitrag anzeigen
So ich habe es nochmal probiert:

Das Original (TrayIconBuster.exe) funktioniert.
Aber da stört mich, dass das Teil imSpeicher bleibt.
Evt lässt sich das Problem via Batch lösen:

edit: nun konnte ich TrayIconBuster.exe herunterladen.
Mit dem angepassten Batch wird das Tool beendet.

Code:
@echo off
start /b TrayIconBuster.exe
ping 127.0.0.1 -n 3 >NUL 2>&1
tasklist|find /i "TrayIconBuster.exe" >NUL 
if %errorlevel% == 0 taskkill /im TrayIconBuster.exe >NUL

Geändert von sPIfF c99 (27.08.2011 um 09:50 Uhr)
sPIfF c99 ist offline   Mit Zitat antworten
Alt 21.09.2011, 08:08   #26
spider-man
Oldie
 
Benutzerbild von spider-man
 
Registriert seit: 07.06.2002
Beiträge: 821
Standard AW: Wie Systray per Batch/Script/Programm aktualisieren bzw. "säubern" ?

Für dieses Problem würde mich auch eine Lösung (Windows 7 - 64bit) interessieren.
Alle hier genannten Vorschläge funktionieren bei mir leider nicht.

@forwarder
Könntest Du Dich freundlicherweise dieser Sache noch einmal widmen?
spider-man ist offline   Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.


vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.