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
Antwort Antwort
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
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#2

AW: CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 11:21
Bin ich blind oder hast Du beim Aufruf Deiner Funktion den 2ten Parameter vergessen?
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
pjanfred

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

AW: CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 12:43
Hups, hab ich beim zensieren wohl das Komma vergessen...

Ich korrigiere es mal

Edit: Ist geändert, Danke

Geändert von pjanfred (10. Dez 2010 um 12:45 Uhr) Grund: Edit: Ist geändert, Danke
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 12:50
Kann es sein, dass Result nicht in jedem Fall definiert ist (entsprechende Compiler-Warnung)?
Delphi-Quellcode:
if GetLastError <> 0 then
    result := GetLastError;
  if GetLastError = 0 then
    GetExitCodeProcess(ProcessInfo.hProcess, Cardinal(result));
->
Delphi-Quellcode:
result := GetLastError;
  if result = 0 then
    GetExitCodeProcess(ProcessInfo.hProcess, Cardinal(result));
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

AW: CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 14:37
Und was meint dein Virenscanner dazu? - Ich könnte mir vorstellen, dass der den Zugriff auf die Datei sperrt.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#6

AW: CreateProcess - Zugriff verweigert beim anstarten von plink.exe

  Alt 10. Dez 2010, 19:57
Was passiert denn bei CreateFile auf die plink.exe? Die meisten Virenscanner implementieren einen FS-Filtertreiber, der beim Öffnen von Dateien bereits zuschlägt, aber es wäre nicht auszuschließen, daß einige auch SSDT-Hooks einsetzen.

Ansonsten müßtest du mal ProcMon anwerfen ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:29 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