Re: Fenster(Handle) aus Taskleiste entfernen
Die Handles hab ich ja alle die ich brauche muss nur noch wissen wie ich es hinbekomme das net das ganze Programm versteckt wird -.- wie meinst du das scp ?
|
Re: Fenster(Handle) aus Taskleiste entfernen
Ich meine, das bei Delphi-Programmen (wie im anderen Beitrag schon beschrieben) der Taskbar-Eintrag und das Hauptform getrennt sind.
Das sind zwei verschiedene Fenster, in der Regel TApplication und TForm1. Deswegen kann man hier auf einfache Weise den Taskbareintrag verstecken. Was aber aber fremden Programmen in nonVCL oder C++ usw. nicht geht. |
Re: Fenster(Handle) aus Taskleiste entfernen
An die Handles komme ich so
Code:
Is das dedn soweit richtig ? habe ich im Netz gefunden =)
function GetText(Wnd: HWND): string;
var textlength: Integer; Text: PChar; begin textlength := SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0); if textlength = 0 then Result := '' else begin GetMem(Text, textlength + 1); SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text)); Result := Text; FreeMem(Text); end; end; function EnumWindowsProc(Wnd: HWND; lParam: lParam): BOOL; stdcall; begin Result := True; if (IsWindowVisible(Wnd) ) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (GetWindowLong(Wnd, GWL_HWNDPARENT) = GetDesktopWindow)) and (GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0) then begin //ShowWindow(wnd, SW_Show); // Taskbar vertecken form1.Listbox2.Items.add(IntToStr(Wnd)); if IsIconic(wnd) then begin {versteckt} Form1.Listbox1.Items.Add('Handle: ' + IntToStr(Wnd) + ',Text: ' + GetText(Wnd) + ' Versteckt!') end else begin Form1.Listbox1.Items.Add('Handle: ' + IntToStr(Wnd) + ',Text: ' + GetText(Wnd) + ' Sichtbar!'); end; end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Param: Longint; begin listbox1.Clear; EnumWindows(@EnumWindowsProc, Param); end; nun wollte ich halt die Fenster aus der Taskbar holen |
Re: Fenster(Handle) aus Taskleiste entfernen
Sollte es keine Delphi VCL Anwendung sein, klappt das natürlich, da nur die VCL das unsichtbare Anwendungsfenster hat.
|
Re: Fenster(Handle) aus Taskleiste entfernen
aber nun selbst wenn ich es so mache
ShowWindow(form1.handle, SW_Hide); verschwindet auch immer die ganze Anwendung :( mach ich da was falsch ? |
Re: Fenster(Handle) aus Taskleiste entfernen
Das wurde dir oben doch erklärt. :roll:
|
Re: Fenster(Handle) aus Taskleiste entfernen
hab es nun so probiert
Owner:=GetWindow(Wnd,GW_OWNER); ShowWindow(Owner, SW_Hide); // Taskbar vertecken nur das geht nur mit Form1.handle statt wnd -.- kann mri den keiner grade mti dem Code den ich gepostet hab nen kleines Bsp machen ? :(( |
Re: Fenster(Handle) aus Taskleiste entfernen
Die einzige Möglichkeit wäre, unter Verwendung von ITaskbarList eine Funktion zu basteln und diese anstelle des bei dir eingesetzten ShowWindow() zu verwenden.
Delphi-Quellcode:
uses
ComObj; const CLSID_TaskbarList: TGUID = '{56FDF344-FD6D-11d0-958A-006097C9A090}'; type ITaskbarList = interface ['{56FDF342-FD6D-11d0-958A-006097C9A090}'] function HrInit: HResult; stdcall; function AddTab(hwnd: Cardinal): HResult; stdcall; function DeleteTab(hwnd: Cardinal): HResult; stdcall; function ActivateTab(hwnd: Cardinal): HResult; stdcall; function SetActiveAlt(hwnd: Cardinal): HResult; stdcall; end; function DeleteTabEntry(Wnd: hWnd) : boolean; const IID_ITaskBarList: TGUID ='{56FDF342-FD6D-11D0-958A-006097C9A090}'; var FTaskbarList: ITaskBarList; begin result := (Wnd <> 0); if result then try FTaskbarList := CreateComObject(CLSID_TaskbarList) as ITaskbarList; FTaskbarList.HrInit; result := (FTaskbarList.DeleteTab(Wnd) = S_OK); except On EOleSysError do result := false else raise; end; end; |
Re: Fenster(Handle) aus Taskleiste entfernen
coool das geht nur wie zum himmelswillen bekomm ich dedn wida dahin ? geht das auch irgendwie ? danke schonmals =)
|
Re: Fenster(Handle) aus Taskleiste entfernen
Hat sich erledigtg :D danke schonmal echt super =)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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