Einzelnen Beitrag anzeigen

wschrabi

Registriert seit: 16. Jan 2005
437 Beiträge
 
#2

AW: wie ruft man den WSL auf windows 10 in Delphi auf?

  Alt 14. Apr 2024, 18:09
Kann mir sagen wieso ich bei dieser prc kein Zugriffsverletzung bekomme und beim anderen Schon?
Delphi-Quellcode:
procedure tform1.RunAWKCommandInWSL(cmd:string);
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  result: boolean;
begin
  FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  try
  
     Result := CreateProcess(nil, PChar('wsl ' + cmd), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);
     if Result then
        begin
          WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
          CloseHandle(ProcessInfo.hProcess);
          CloseHandle(ProcessInfo.hThread);
        end
     else
        begin
       // Fehler beim Starten des Prozesses
       //ShowMessage('Fehler beim Starten des WSL-Prozesses');
       WriteLOgMemo(msg_window, run_mode, clRed, format(' Fehler beim Starten des WSL-Prozesses cmd: %s',[cmd]));
    
        end;
  except
     on E : Exception do
       WriteLOgMemo(msg_window, run_mode, clRed, format(' Exception-error: %s Call: %s',[e.message,format('CreateProcess(nil, Pchar(%s) , nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) ',[cmd])]));
   

  end;
end;

procedure tform1.wslcmd();
begin
    RunAWKCommandInWSL(' find . - type f -name socpus*.ris -exec cat {} + > ../bigmergedscopusfiles.ris');
    
end;
  Mit Zitat antworten Zitat