AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm aus Taskleiste ausblenden

Ein Thema von storm1988 · begonnen am 13. Okt 2005 · letzter Beitrag vom 22. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von storm1988
storm1988

Registriert seit: 4. Aug 2005
Ort: Salzburg
91 Beiträge
 
Delphi 6 Professional
 
#1

Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 18:56
Hi!

Ich wollt Fragen ob es möglich ist, ein Programm wie z.B. den Editor von Windows aus der Taskleiste verschwinden zu lassen.
Damit mein ich, dass das Programm noch immer aktive ist, aber halt nicht in der Taskleiste angezeit wird!!

Ich bedank mich schonmal im Vorraus
Mfg st0rm

There are no stupid questions. Just stupid people.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 19:18
Nu, das geht relativ einfach:
Du saust einfach durch alle Kind-Fenster von GetDesktopWindow() und suchst nach dem Fenster, dessen Text gleich dem Text ist, der auf dem Button in der Taskleiste steht. Außerdem musst du prüfen ob es das MainAppWindow ist (gibts eine Funtion von den Jedis ... ich glaub JclSysInfo.pas). Sind dann beide Bedingungen erfüllt versteckst du es per ShowWindow(Handle,SW_HIDE)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von storm1988
storm1988

Registriert seit: 4. Aug 2005
Ort: Salzburg
91 Beiträge
 
Delphi 6 Professional
 
#3

Re: Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 19:56
Erstaml danke für die Hilfe , aber könntest du mir vielleicht noch ein Beispiel zu der Funktion GetDesktopWindow() posten, alles andere wär mir sonst klar...
Mfg st0rm

There are no stupid questions. Just stupid people.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 20:27
Ich versuchs mal aus dem Kopf ohne Delphi zu bemühen

Delphi-Quellcode:
procedure SuchHassoSuch();
var
  Handle: HWND;
begin
  Handle:=GetWindow(GetDesktopWindow(),GW_CHILD);
  while (Handle<>0) do
  begin
  if (IsMainAppWindow(Handle) and (AnsiContainsStr(GetWindowCaption(Handle),'Editor'))) then
  begin
    ShowWindow(Handle,SW_HIDE);
    break;
  end;
  Handle:=GetWindow(Handle,GW_HWNDNEXT);
  end;
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 20:30
einfach mit showwindow das aus der taskleiste zu entfernen funktioniert nur bei Delphi-VCL anwendungen und anderen Anwendungen die ein nicht sichtbares Fenster dafür nutzen. Wenn das Hauptfenster auch das Fenster in der Taskleiste ist geht das nicht. Dann müsstest du mit SetWindowLong den Style ändern damit es kein AppWindow mehr ist (kann sein das man dafür erst in den Prozess muss)

[Edit]
WICHTIG: hab grad im MSDN bei SetWindowLong folgendes gelesen:
Zitat:
This function has been superseded by the SetWindowLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Microsoft Windows, use the SetWindowLongPtr function.
also anstelle von SetWindowLong lieber SetWindowLongPtr benutzen.
[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von storm1988
storm1988

Registriert seit: 4. Aug 2005
Ort: Salzburg
91 Beiträge
 
Delphi 6 Professional
 
#6

Re: Programm aus Taskleiste ausblenden

  Alt 13. Okt 2005, 21:03
Noch ne kurze Frage: Was muss ich hinzufügen, dass ich mit IsMainAppWindow , AnsiContainsStr und GetWindowCaption programmieren kann?
Mfg st0rm

There are no stupid questions. Just stupid people.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Programm aus Taskleiste ausblenden

  Alt 14. Okt 2005, 06:19
Für die Funktionen "IsMainAppWindow" und "GetWindowCaption" brauchst du die "JclSysInfo" von den Jedis. Für die Funktion "AnsiContainsStr" must du die Unit "StrUtils" usen.

Was das angeht was SirThornberry sagte, war mir von der Sache her neu. Aber in der Funktion "IsMainAppWindow" ist schon folgender Code enthalten:
Delphi-Quellcode:
ExStyle := GetWindowLong(Wnd, GWL_EXSTYLE);
Result := ((ParentWnd = 0) or (ParentWnd = GetDesktopWindow)) and
          ((ExStyle and WS_EX_TOOLWINDOW = 0) or (ExStyle and WS_EX_APPWINDOW <> 0));
Damit ist doch auch das geklärt, oder meinst du etwas anderes, SirThornberry?
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Programm aus Taskleiste ausblenden

  Alt 14. Okt 2005, 06:23
Er muss mit MSDN-Library durchsuchenSetWindowLong einfach nur den Fensterstil MSDN-Library durchsuchenWS_ICONIC entfernen, dann ist der Button in der Taskbar weg.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von storm1988
storm1988

Registriert seit: 4. Aug 2005
Ort: Salzburg
91 Beiträge
 
Delphi 6 Professional
 
#9

Re: Programm aus Taskleiste ausblenden

  Alt 15. Okt 2005, 13:24
Könnt ihr mir vielleicht nochmal weiter helfen!!!

Bis jetzt hab ich das:

Code:
procedure SuchHassoSuch();
var
  Handle: HWND;
begin
  Handle:=GetWindow(GetDesktopWindow(),GW_CHILD);
  while (Handle<>0) do
  begin
  if (IsMainAppWindow(Handle) and (AnsiContainsStr(GetWindowCaption(Handle),'Editor'))) then
  begin
    SetWindowLong(Handle, WS_ICONIC,[b]???(und hier fehlt mir der letzte Parameter)[/b]);
    break;
  end;
  Handle:=GetWindow(Handle,GW_HWNDNEXT);
  end;
end;
Mfg st0rm

There are no stupid questions. Just stupid people.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Programm aus Taskleiste ausblenden

  Alt 15. Okt 2005, 13:58
Zitat von storm1988:
Könnt ihr mir vielleicht nochmal weiter helfen!!!
SetWindowLong(Handle, WS_ICONIC,???(und hier fehlt mir der letzte Parameter));
end;
Da fehlt Dir nicht nur der Parameter.
Erst musst Du mit GetWindowLong den aktuellen Fensterstil holen. Dann das WS_ICONIC Bit entfernen und dann erst mit SetWindowLong den neuen Wert setzen:
Delphi-Quellcode:
WindowStyle := GetWindowLong(handle, GWL_STYLE);
WindowStyle := WindowStyle-WS_ICONIC;
SetWindowLong(handle, GWL_STYLE, WindowStyle) ;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:18 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