AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

fenster verstecken..

Ein Thema von napstar · begonnen am 22. Mär 2007 · letzter Beitrag vom 25. Mär 2007
 
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: fenster verstecken..

  Alt 25. Mär 2007, 23:39
Hallo,

die Funktion RunProcess() habe ich aus der CodeLib und dann noch ein bisschen abgeändert.

Delphi-Quellcode:
function EnumWin(hWnd: THandle; ProcID: PCardinal): Boolean; stdcall;
var
  WinProcId: cardinal;
  Text: AnsiString;
begin
  Result := True;
  if IsWindowVisible(hWnd) then
  begin
    GetWindowThreadProcessID(hWnd, WinProcId);
    if ProcID^ = WinProcId then
    begin
      SetLength(Text, SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0));
      SendMessage(hWnd, WM_GETTEXT, Length(Text)+ 1, integer(Text));
      if Text = 'Unbenannt - Editorthen//Beispiel Text des gesuchten Fensters
        ShowWindow(hWnd, SW_MAXIMIZE);//bei dir dann SW_HIDE
    end;
  end;
end;

function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcID: PCardinal): Longword;
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  FillChar(StartupInfo, SizeOf(StartupInfo), #0);
  StartupInfo.cb := SizeOf(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
  StartupInfo.wShowWindow := ShowCmd;
  if not CreateProcess(nil,
    @Filename[1],
    nil,
    nil,
    False,
    CREATE_NEW_CONSOLE or
    NORMAL_PRIORITY_CLASS,
    nil,
    nil,
    StartupInfo,
    ProcessInfo)
    then
      Result := WAIT_FAILED
  else
  begin
    if wait = FALSE then
    begin
      if ProcID <> nil then ProcID^ := ProcessInfo.dwProcessId;
      exit;
    end;
    if ProcID <> nil then
      ProcID^ := ProcessInfo.dwProcessId;
    WaitForInputIdle(ProcessInfo.hProcess, INFINITE);
    //WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    GetExitCodeProcess(ProcessInfo.hProcess, Result);
  end;
  if ProcessInfo.hProcess <> 0 then
    CloseHandle(ProcessInfo.hProcess);
  if ProcessInfo.hThread <> 0 then
    CloseHandle(ProcessInfo.hThread);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ProcID: Cardinal;
begin
  RunProcess('notepad', SW_SHOW, true,@ProcID);//Pfad zum Programm hier eintragen
  EnumWindows(@EnumWin, integer(@ProcID));
end;
Den Code musst du noch anpassen, da ich deinen Player nicht habe. Vom Prinzip her könnte man es so machen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  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 11:38 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