Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi andere app verstecken (https://www.delphipraxis.net/27899-andere-app-verstecken.html)

glkgereon 17. Aug 2004 09:49


andere app verstecken
 
hi
mal wieder gesucht und nix gefunden...

ich mach php und nutze xampp, mich nervt aber, das der server imnmer in der leiste unten dick drin ist...

ich hab mir ein progg geschrieben, über das ich xampp starten und beenden kann

ich muss nur nach das eigentliche xampp fenster (ne art dos-konsole) vollständig verbergen
also im taskmanager darf es noch stehen, aber es muss vom bildschirm verschwunden sein, geht das?

fkerber 17. Aug 2004 09:50

Re: andere app verstecken
 
Hi!

Sicher doch.
Habe ich mit meinem WinAmp gemacht.
Du suchst dir mit FindWindow das richtige Fenster.
Codes zum rausschmeißen aus der Taskleiste müsste es eigentlich in der CodeLib geben.

Ciao Frederic

glkgereon 17. Aug 2004 09:54

Re: andere app verstecken
 
meine delphi-hilfe kennt findwindow nit :(

fkerber 17. Aug 2004 09:58

Re: andere app verstecken
 
Hi!

Hier mal meine Anwendung für WinAmp:

Delphi-Quellcode:
procedure TForm1.WinAmp1Click(Sender: TObject);
var
  hHandle: THandle;
  str: string;
  i: integer;
  LPARRAM : DWord;
begin
  EnumWindows (@EnumWindowsProc,Integer(@LPARRAM));
  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 amphandle:=hhandle;
        break;
      end;
  end;

  if WinAmp1.Checked then
    begin
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_MINIMIZE);
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_HIDE);
      Winamp1.Checked:=false
    end
  else
    begin
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_SHOW);
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_MAXIMIZE);
      Winamp1.Checked:=true;
    end;
end;
EnumWindowsProc:
Delphi-Quellcode:
function EnumWindowsProc(const hWnd : Longword; Param: lParam): LongBool; stdcall;
var
  Buffer: array[0..1024] of Char;
begin
  Result := True;
  GetWindowText(hWnd, Buffer, sizeof(Buffer));
  if lstrlen(Buffer) = 0 then
   begin
    exit;
   end
  else
   begin
    Form1.listbox1.items.Add (buffer);
   end;
end;
GetText:
Delphi-Quellcode:
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);
// Änderung ->
    if Assigned(Text) then
    try
      SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text));
//      Result := Text;
// Änderung ->
    SetString(Result, Text, lstrlen(Text));
    finally
      FreeMem(Text);
    end;
  end;
end;
Ich hoffe, das war alles.


Ciao Frederic

Alexander 17. Aug 2004 10:01

Re: andere app verstecken
 
Zitat:

Zitat von glkbkk
meine delphi-hilfe kennt findwindow nit :(

Ist auch keine Delphi-eigene Funktion, sondern eine WinAPI-Funktion. Wenn du im PSDK bzw. MSDN-Library durchsuchenFindWindow suchst wirst du fündig ;-)

glkgereon 17. Aug 2004 10:09

Re: andere app verstecken
 
Was ist WinAmp1?

ich hoffe ich verstehs halbwegs und kanns umändern

Alexander 17. Aug 2004 10:12

Re: andere app verstecken
 
Du kennst nicht WinAMP ? :shock:
Das ist ein super MP3 Player ;-)
http://www.winamp.de/

glkgereon 17. Aug 2004 10:15

Re: andere app verstecken
 
klar kenn ich winamp...

aber was ist dein ding da Winamp1 mit dem du da rumfuchtelst?
ein button?

MrKnogge 17. Aug 2004 12:51

Re: andere app verstecken
 
nein es ist kein Button, ich vermute nal dass es sich um einen TCheckbox handelt

( :mrgreen: )

Die Muhkuh 17. Aug 2004 12:53

Re: andere app verstecken
 
Zitat:

Zitat von MrKnogge
japs ist ein Button

:shock:???

Ein Button mit Checked? :mrgreen:

Ich denke das WinAmp1 eine CheckBox ist.

fkerber 17. Aug 2004 17:24

Re: andere app verstecken
 
Hi!

Es war ein Eintrag in einem PopUp-Menü
Sorry für die Verwirrung, ist halt rauskopiert.

Ciao Frederic

glkgereon 17. Aug 2004 18:13

Re: andere app verstecken
 
sorry, ich habs probiert, aber ich blick nicht durch den code durch.... :(

kannst du vielleicht ma in etwa sagen was welche aufgabe hat, und wo die entscheidenden passagen sind?

fkerber 17. Aug 2004 21:20

Re: andere app verstecken
 
Hi!

Aaaalso: :-D

Delphi-Quellcode:
EnumWindows (@EnumWindowsProc,Integer(@LPARRAM));
Das listet alle Fenster auf, die momentan vorhanden sind.
Dafür wird die EnumWindowsProc verwendet.
Alle gefundenen Fenster werden in der Listbox1 aufgelistet.

Dann gehst du alle durch, suchst per FindWindow das Handle und dann mit GetText den Fenstertitel.
In diesem Fall war Playlist im Titel enthalten, deshalb suche ich danach auch mit Pos.
Wenn ich so das richtige Handle habe, speicher ich es in AmpHandle und verwende es später.

Mit

Delphi-Quellcode:
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_MINIMIZE);
      ShowWindow(GetWindow(amphandle,GW_OWNER),SW_HIDE);
Minimiere ich das Fenster und verstecke es.

Die ganze Sache mit dem Winamp.Checked dient nur dazu, festzustellen, ob der Popupmenü-Eintrag gewählt ist oder nicht und dementsprechend, ob WinAmp versteckt oder wieder angezeigt werden soll.

Ich hoffe, es ist alles klar.


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz