AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi CreateProcess - Zugriff verweigert beim anstarten von plink.exe
Thema durchsuchen
Ansicht
Themen-Optionen

CreateProcess - Zugriff verweigert beim anstarten von plink.exe

Ein Thema von pjanfred · begonnen am 10. Dez 2010 · letzter Beitrag vom 10. Dez 2010
 
pjanfred

Registriert seit: 8. Dez 2010
14 Beiträge
 
#1

CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 09:08
Delphi-Version: 2007
Liebe Community,

ich probiere seit 2 Tagen plink per CreateProcess zu starten. Dazu nutze ich folgende Funktion:

Code:
function TFormMain.ExecuteFile(FileName : String; Params : String) : Integer; var
  err           : DWord;
  StartupInfo   : TStartupInfo;
  ProcessInfo   : TProcessInformation;
begin
  FillChar(ProcessInfo,SizeOf(TProcessInformation),0);
  FillChar(StartupInfo, Sizeof(StartupInfo), #0);
  StartupInfo.cb         := Sizeof(StartupInfo);
  StartupInfo.dwFlags    := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := SW_SHOWNOACTIVATE;

  if CreateProcess(
    PChar(filename),                          { pointer to executable}
    PChar(params),                 { pointer to command line string }
    nil,                           { pointer to process security attributes }
    nil,                           { pointer to thread security attributes }
    false,                         { handle inheritance flag }
    CREATE_NEW_CONSOLE or          { creation flags }
    NORMAL_PRIORITY_CLASS,
    nil,                           { pointer to new environment block }
    PChar(ExtractFilePath(ParamStr(0))), { pointer to current directory name }
    StartupInfo,                         { pointer to STARTUPINFO }
    ProcessInfo) then                    { pointer to PROCESS_INF }
  begin
    // Warten, bis der Process beendet wurde
    repeat
      err:=WaitforSingleObject(ProcessInfo.hProcess,100); // 100 MSec Warten
      // Application aktualisieren
      Application.ProcessMessages;
    until (err<>WAIT_TIMEOUT);
  end;
  if GetLastError <> 0 then
    result := GetLastError;
  if GetLastError = 0 then
    GetExitCodeProcess(ProcessInfo.hProcess, Cardinal(result));

  // Process schließen
  CloseHandle( ProcessInfo.hProcess );
  CloseHandle( ProcessInfo.hThread );
end;


Diese rufe ich wie folgt auf, als Return bekomme ich den Fehlercode der Fehlermeldung "Zugriff verweigert":
Code:
ExecuteFile('.\include\plink.exe',' -pw pass user@testrechner /verzeichnis/auf/server/datei " --param="123456789" --zeitraum="201011" --euro=1 "');
Rufe ich jedoch das Programm pscp.exe mit dieser Funktion und folgendem Befehl auf, gibt es keinen Fehler:
Code:
ExecuteFile('.\include\pscp.exe','-pw pass user@testrechner:/verzeichnis/auf/server/abzuholendedatei .\daten\')
Hat jemand eine Idee, warum diese Funktion immer diesen Fehler zurück gibt, bzw. weiß jemand woran es liegen könnte?

Gruß

Jan

Edit: Zu erwähnen wäre noch, das das Programm trotz der Meldung richtig ausgeführt wird...

Geändert von pjanfred (10. Dez 2010 um 12:44 Uhr) Grund: Update
  Mit Zitat antworten Zitat
 


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 22:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz