Problem mit Ausblenden aus Taskbar
N'abend!
Ich hätte da mal wieder ein Problem. Untenstehender Code funktioniert einwandfrei, das ist schonmal nicht das Problem. Die ListBox wird mit EnumWindows gefüttert ...
Delphi-Quellcode:
Das Problem tritt auf, wenn ich das selbe mit dem Windows Media Player versuche. Es geht ja drum, das Fenster aus der Taskbar rauszuschmeißen. Ich krieg auch brav in der Listbox angezeigt
var
hHandle: THandle; str: string; i: integer; begin for i:=0 to Listbox1.Items.count-1 do begin hHandle := FindWindow(nil, PChar(Listbox1.Items[i])); str:=gettext(hhandle); if pos('Playlist', str)<> 0 then begin hhandle2:=hhandle; showmessage('Ding, ding, ding'); ShowWindow(GetWindow(hhandle2,GW_OWNER),SW_HIDE); [...] Zitat:
Bin für Hilfe dankbar! Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
*push*
Sorry, aber sonst geht er ja unter :lol: Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Dürfte ich noch einmal fragen, ob nicht vielleicht doch jemand ne Idee hat? Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Moin fkerber,
hast Du mal versucht, mit Hilfe der EnumWindows/EnumChildWindows herauszufinden, ob es noch mehr Fenster mit diesem Titel gibt? |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Zitat:
Wäre für weitere Hilfe dankbar! Ciao fkerber [edit=Christian Seehase]Quote-Tag korrigiert. Mfg, Christian Seehase[/edit] |
Re: Problem mit Ausblenden aus Taskbar
Moin fkerber,
das mit EnumWindows hatte ich wohl gesehen, aber damit erwischt Du nur die Top Level Windows. Deshalb hatte ich die Verwendung von EnumChildWindows vorgeschlagen... ;-) |
Re: Problem mit Ausblenden aus Taskbar
DANKE!
Das hat mir sehr geholfen! Werde es damit wohl hinbekommen. Danke! Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Leider hat es doch nicht geholfen: Zitat:
Doch auch das Verstecken mit diesen Handels hat keinerlei Auswirkungen. Woran kann es denn noch liegen? Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Du willst nur den Mplayer aus der Taskbar entfernen???? Dein Prinziep da oben funktioniert nicht bei allen Anwendungen. Du kannstn icht einfach das Owner-Window verstecken, sowas geht bei Delphi-Anwendungen, weil sie ein "Extra-Fenster" haben, welches in der Taskbar auftaucht (TApplication). Versuch mal den Windowstyle vom Mplayer-Fenster zu ändern (Get + SetWindowLong). Könnte eher funktionieren denke ich.
Viel Glück beim spielen :-D |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Danke für den Tipp, werde es ausprobieren! Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Habe mir die Funktion mal angeschaut, aber irgendwie konnt ich da nichts finden, was mir etwas nutzt. Ich konnte keinen Paramater finden, den ich da übergeben könnte, der bewirkt, dass das Fenster aus der Taskleiste verschwindet. Oder habe ich da etwas überlesen? Hätte da jemand ein Beispiel? Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Naja du solltest dich etwas mit window-styles beschäftigen, findest du in der api unter createwindow und createwindowex. mit setwindowlong kannst du den style umsetzen z.b.
oldStyle:= getWindowLong( hWMP, GWL_EXSTYLE); setWindowLong( hWmp, GWL_EXSTYLE, oldStyle and not WS_EX_APPWINDOW); |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Ja, das hatte ich prinzipiell schon verstanden, nur leider ist der MediaPlayer davon auch nicht zu überzeugen sich aus der Taskleiste zu verkrümmeln. Naja, aber danke für die Idee. Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Naja andere idee, das teil wo der explorer die programme anzeigt ist vom typ tabcontrol, lösch einfach den tab, funktioniert auch ;)
|
Re: Problem mit Ausblenden aus Taskbar
Hi!
Hmm, wäre auch ne Idee, wenn du sagst, das funktioniert auch, hört es sich so an, als hättest du das schonmal gemacht, hättest du das Beispiel vielleicht greifbar oder zumindest die betreffenden Code-Stellen? Danke schonmal. Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
jup, hab ich zuhause noch wo rumfliegen. ich guck nachher mal aber erstmal einkaufen und bett ;)
|
Re: Problem mit Ausblenden aus Taskbar
Hi!
Dann schonmal danke, dann mal fröhliches Einkaufen und Schlafen. Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Achkomm ich hab grad meine nette phase
Delphi-Quellcode:
löscht das letzte fenster, wie du die einzelnen tabs durchgehst und namen (fremder prozess) ausliest findest du in den beispielen irgendwo auf der seite. rest schaffst hoffentlich gutn8
procedure TForm1.FormCreate(Sender: TObject);
var h, h2, hSysTab: integer; begin h:= findWindow('Shell_TrayWnd', NIL); //explorer h2:= findWIndowEx(h, 0, 'ReBarWindow32', NIL); //bar h2:= findWindowEx(h2, 0, 'MSTaskSwWClass', NIL); hSysTab:= findWindowEx(h2, 0, 'SysTabControl32', NIL); sendMessage(hSysTab, TCM_DELETEITEM, sendMessage(hSysTab, TCM_GETITEMCOUNT, 0, 0)-1, 0); // löscht letztes item end; [edit=sakura][delphi]-Tags gesetzt Mfg, sakura[/edit] |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Ist der gepostete Code so an sich lauffähig, also wird damit, ihn einfach in die FormCreate einzufügen der letzte Tab aus der Taskleiste gelöscht? Bei mir passiert da nämlich nichts. (Ich musste TCM_DELETEITEM und TCM_GETITEMCOUNT noch als Interger-Variablen definieren). Kann mir jemand den Code vielleicht näher erläutern? OS ist überigens Win XP Home Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
öhm...nix deklarieren. unit commctrls einbinden..... :pale:
|
Re: Problem mit Ausblenden aus Taskbar
Hi!
Wenn ich die Unit CommCtrl (ohne s !!, mit s findet er nicht), dann sind zwar die Variablen nicht mehr zu deklarieren, aber funktionieren tut auch nix. Die Taskbar bleibt, wie sie ist. :oops: Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Hast recht Win2000 und WinXP Explorer-Bars unterscheiden sich
var h, h2, h3, hSysTab: integer; begin h:= findWindow('Shell_TrayWnd', NIL); //explorer //repeat h2:= findWIndowEx(h, 0, 'ReBarWindow32', NIL); //bar h3:= findWindowEx(h2, 0, 'MSTaskSwWClass', NIL); hSysTab:= findWindowEx(h3, 0, 'SysTabControl32', NIL); if hSysTab<>0 then // windows 2000 begin sendMessage(hSysTab, TCM_DELETEITEM, sendMessage(hSysTab, TCM_GETITEMCOUNT, 0, 0)-1, 0); // löscht letztes item end else // winxp begin hSysTab:= findWindowEx(h3, 0, 'ToolbarWindow32', NIL); sendMessage(hSysTab, TB_DELETEBUTTON, 1, 0); end; end; Unter WinXP ist das Teil, wo die Buttons angezeigt werden eine Toolbar, so würd ich ansetzen, kenn mich mit Toolbars nicht aus, guck für weiteres mal in die WinAPI Hilfe oder wo man sonst so reinschaut. MFG Vjay |
Re: Problem mit Ausblenden aus Taskbar
Hi!
Hmm, werde ich mir mal anschauen, danke. Noch ein Tipp für dich: Es gibt Tags zum Formatieren von Delphi-Code hier im Forum! Ciao fkerber |
Re: Problem mit Ausblenden aus Taskbar
Okay, viel glück
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz