![]() |
fenster verstecken..
hi.. ich habe ein problem...
ihr kennt doch sicher den MPlayer.. ^^ wenn nicht schaut her -> ![]() ich öffne eine film datei mit Mplayer...
Delphi-Quellcode:
nun öffnen sich 2 fenster...
ShellExecute(Handle, 'open', 'dateien\mplayer\mplayer.exe', 'C:\film.avi', nil, SW_SHOW);
eins möchte ich aber verstecken wie kann ich das machen??? |
Re: fenster verstecken..
Hallo und herzlich willkommen in der DP :)
Wenn der MPlayer dein Standardplayer ist, würde ich vorschlagen das so zu tun, damit müsste sich nur ein Fenster öffnen und daher brauchst du kein Fenster verstecken, es sei denn, du willst 2 Fenster:
Delphi-Quellcode:
Gruß
ShellExecute(Handle, 'OPEN', PChar('C:\film.avi'), nil, nil, SW_NORMAL);
Mazel |
Re: fenster verstecken..
bei mplayer öffnen sich immer 2 fenster :)...
und auserdem will ich den mplayer ein teil meines programmes machen :) |
Re: fenster verstecken..
die beste Variante ist CreateProcess zu verwenden und anhand des zurück gelieferten Prozesses alle Fenster des Prozesses auflisten und das gewünschte verstecken.
|
Re: fenster verstecken..
Zitat:
Gruß |
Re: fenster verstecken..
Täusche ich mich oder ist MPlayer und MediaPlayer ein Unterschied (imho ja) :gruebel:
|
Re: fenster verstecken..
in meinem 1. post ist ein link zu wiki ^^ schau mal da...
warum ich den TMediaPlayer nicht nutze?? ganz einfach... zu wenig codecs :) MPlayer topt alles und ist winzig :) und createprocess habe ich noch nie benutzt.. bin erst neu in der scene ^^.. seit anfang der woche.. mal schauen ob ichs hinkriege.. wenn nicht melde ich mich :) |
Re: fenster verstecken..
hmmmm ich versteh garnix von createprocess..
wie soll ich denn vorgehen??? kann mir einer helfen? sagen wir fenstername ist in einer variable und die variable heißt dateipfad ich bin am verzweifeln ^^ |
Re: fenster verstecken..
kann keiner helfen????
|
Re: fenster verstecken..
Hallo,
die Funktion RunProcess() habe ich aus der CodeLib und dann noch ein bisschen abgeändert.
Delphi-Quellcode:
Den Code musst du noch anpassen, da ich deinen Player nicht habe. Vom Prinzip her könnte man es so machen.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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