AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem diskpart unter Server w2k3 64bit starten
Thema durchsuchen
Ansicht
Themen-Optionen

Problem diskpart unter Server w2k3 64bit starten

Ein Thema von cramer · begonnen am 8. Sep 2008 · letzter Beitrag vom 9. Sep 2008
Antwort Antwort
Benutzerbild von cramer
cramer

Registriert seit: 23. Jun 2004
Ort: Velbert (NRW)
96 Beiträge
 
Delphi 2006 Enterprise
 
#1

Problem diskpart unter Server w2k3 64bit starten

  Alt 8. Sep 2008, 18:11
Hallo,
ich möchte aus meinem Programm (BDS2006 unter WXP compiliert) Diskpart.exe starten.
Unter WXP und W2K geht es ohne Probleme, aber unter W2K3 Server 64bit lässt es sich nicht starten.
Zum Test ein Start von notepad.exe geht auch unter W2K3 64bit problemlos.
Der Punkt CreateProcess schlägt fehl, irgendeine Idee woran es liegen könnte ?
Delphi-Quellcode:
const
      exe_Ok = 0; // Programm Start und Ende OK
      exe_Fehler = 1; // Fehler beim Programmstart
      exe_TimeOut = 2; // Zeitüberschreitung bei der Ausführung
      exe_TermOk = 3; // Nach Zeitüberschreitung konnte es beendet werden
      exe_TermErr = 4; // Nach Zeitüberschreitung konnte es nicht beendet werden

function exe_wait(prog, para : string;
                  timeout : integer;
                  terminate : boolean) : integer;
var prg, param, verz, ext : string;
    startupinfo : tStartupInfo;
    ProcessInfo : TProcessInformation;
    ExitCode : integer;
begin
   ExitCode := 0;
   prg := trim(prog);
   ext := trim(Ansilowercase(extractFileExt(prg)));
   param := getEnvStr(Para) + chr(0);
   verz := ExtractFilePath(prg);
   prg := prg + ' ' + param;
   fillchar(startupInfo, sizeof(tStartupInfo), 0);
   startupInfo.cb := sizeof(tStartupInfo);
   if createProcess(nil,
                    pchar(prg),
                    nil,
                    nil,
                    false,
                    NORMAL_PRIORITY_CLASS,
                    nil,
                    pchar(verz),
                    startupInfo,
                    processInfo)
   then begin
     if waitForSingleObject(processInfo.hProcess,timeout*1000) = Wait_TimeOut
        then begin
          if terminate then begin
             if terminateProcess(processInfo.hProcess,exitCode)
                then result := exe_TermOK
                else result := exe_TermErr;
          end
          else result := exe_TimeOut;
        end
        else result := exe_ok;
     closeHandle(processInfo.hProcess);
   end
   else result := exe_Fehler; // <-- Dieser Fehler kommt zurück
  Application.ProcessMessages;
end;
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Problem diskpart unter Server w2k3 64bit starten

  Alt 8. Sep 2008, 18:19
Hallo

Was liefert denn SysErrorMessage(GetLastError) ?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von cramer
cramer

Registriert seit: 23. Jun 2004
Ort: Velbert (NRW)
96 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Problem diskpart unter Server w2k3 64bit starten

  Alt 9. Sep 2008, 10:00
Also es wird immer seltsamer, im Windows Ordner liegt die Datei ohne Hidden Attribut etc.
Delphi-Quellcode:
Directory of C:\windows\system32
04.04.2006 14:00 263.680 diskpart.exe
               1 File(s) 263.680 bytes

C:\>attrib c:\windows\system32\diskpart.exe
A C:\windows\system32\diskpart.exe
Ein Start C:\windows\system32\diskpart.exe endet aber mit Fehler: createProcess The system cannot find the file specified

Wenn ich aber C:\windows\system32\diskpart.exe in den Ordner c:\install kopiere funktioniert der Start
c:\install\diskpart.exe ohne Fehler
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: Problem diskpart unter Server w2k3 64bit starten

  Alt 9. Sep 2008, 11:43
Zitat von cramer:
...
Wenn ich aber C:\windows\system32\diskpart.exe in den Ordner c:\install kopiere funktioniert der Start
c:\install\diskpart.exe ohne Fehler
Hallo,

besonders beliebt bei vista-usern: keine Zugriffsrechte auf system32?? Vielleicht nur für Admins.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von cramer
cramer

Registriert seit: 23. Jun 2004
Ort: Velbert (NRW)
96 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Problem diskpart unter Server w2k3 64bit starten

  Alt 9. Sep 2008, 12:12
Notepad.exe liegt auch in c:\windows\system32 und lässt sich starten.
Beim Vergleich der Security Einstellungen gibt es beim Notepad aber zusätzlich zu den "Administrators" noch "Users" und "Power Users" mit Read & Execute Berechtigung.
Im Taskmanager steht aber ohnehin als User meines Programms "Administrator" und wenn ich Notepad aus dem Programm heraus starte auch.
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.
  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 05:47 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