AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fenster(Handle) aus Taskleiste entfernen

Fenster(Handle) aus Taskleiste entfernen

Ein Thema von Bigmichi · begonnen am 14. Sep 2004 · letzter Beitrag vom 14. Sep 2004
Antwort Antwort
Seite 2 von 2     12
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#11

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 15:30
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 ?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#12

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 15:34
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.
  Mit Zitat antworten Zitat
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#13

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 15:40
An die Handles komme ich so


Code:
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;
Is das dedn soweit richtig ? habe ich im Netz gefunden =)
nun wollte ich halt die Fenster aus der Taskbar holen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 16:16
Sollte es keine Delphi VCL Anwendung sein, klappt das natürlich, da nur die VCL das unsichtbare Anwendungsfenster hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#15

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 16:18
aber nun selbst wenn ich es so mache


ShowWindow(form1.handle, SW_Hide);

verschwindet auch immer die ganze Anwendung mach ich da was falsch ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 16:21
Das wurde dir oben doch erklärt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#17

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 16:55
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 ? (
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#18

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 17:49
Die einzige Möglichkeit wäre, unter Verwendung von Hier im Forum suchenITaskbarList 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;
  Mit Zitat antworten Zitat
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#19

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 18:55
coool das geht nur wie zum himmelswillen bekomm ich dedn wida dahin ? geht das auch irgendwie ? danke schonmals =)
  Mit Zitat antworten Zitat
Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#20

Re: Fenster(Handle) aus Taskleiste entfernen

  Alt 14. Sep 2004, 18:58
Hat sich erledigtg danke schonmal echt super =)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 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