Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Selbst entpackendes Archiv auspacken

  Alt 17. Dez 2013, 00:15
Wer hat denn den Code verbrochen?
Delphi-Quellcode:
// Das sollte auch so irgendwo definiert sein
{$ifdef UNICODE}
SHELLEXECUTEINFO = SHELLEXECUTEINFOW;
{$else}
SHELLEXECUTEINFO = SHELLEXECUTEINFOA;
{$end}
Darum geht das einfach so
Delphi-Quellcode:
Function ExecAndWait( const Filename, Params: String; WindowState: Word = SW_SHOWNORMAL): boolean;
var
  ShExecInfo: SHELLEXECUTEINFO;
// MSDN: ShellExecuteEx, ShellExecuteInfo
begin
  Result := false;

  if ( Filename = '' ) {or not FileExists( FileName )} then
    exit; // Exception wäre hier besser, aber nun

    ShExecInfo.Wnd := GetForegroundWindow;
    ShExecInfo.cbSize := sizeof( SHELLEXECUTEINFO );
    ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.lpVerb := 'open';
    ShExecInfo.lpFile := PChar( Filename );
    ShExecInfo.lpParameters := PChar( Params );
    ShExecInfo.lpDirectory := PChar( ExtractFileDir( Filename ) );
    ShExecInfo.nShow := WindowState;
    Result := ShellExecuteEx( @ShExecInfo );
    try
      if Result then WaitForSingleObject( ShExecInfo.hProcess, INFINITE );
    finally
      CloseHandle( ShExecInfo.hProcess );
    end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (17. Dez 2013 um 00:19 Uhr)
  Mit Zitat antworten Zitat