Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: fenster verstecken..
26. Mär 2007, 00: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 - Editor' then//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
|
|
Zitat
|