Ich entwickle hier mir Server2008R2 und hatte noch nie Probleme mit Shellaufrufen.
Ist remote.exe im Suchpfad?
Gute Frage, kann ich erst überprüfen wenn ich wieder bei meiner Testumgebung bin.
Dieser Code scheint auch Probleme zu machen:
Delphi-Quellcode:
ReadDir(PW1);
PW2 := '
watchdog.exe';
PW3 := '
';
try
CmdLine := Format('
"%s%s" %s',[IncludeTrailingPathDelimiter(PW1),PW2,PW3]);
FillChar(SI, SizeOf(SI), #0);
FillChar(PI, SizeOf(PI), #0);
SI.cb := SizeOf(SI);
SI.lpDesktop := PChar('
Winsta0\Default');
SI.dwFlags := STARTF_USESHOWWINDOW;
SI.wShowWindow := SW_SHOWDEFAULT;
ProcCreated := CreateProcessAsUser(
hUserToken,
nil,
PChar(CmdLine),
// pointer to command line string
nil,
// pointer to process security attributes
nil,
// pointer to thread security attributes
True,
// handle inheritance
0,
// creation flags
nil,
// pointer to new environment block
nil,
// pointer to current directory name
SI,
// STARTUPINFO
PI);
// PROCESS_INFORMATION
if ProcCreated
then
begin
CloseHandle(PI.hProcess);
CloseHandle(PI.hThread);
end
else
ShowMessage('
Error ' + SysErrorMessage(GetLastError));
finally
CloseHandle(hUserToken);
end;
Meinst du mit Suchpfad PATH ? Ich starte das Programm doch mit Pfadangabe, oder könnte es an den Rechten des Programmverzeichnis liegen ? Der Dienst als solcher funktioniert einwandfrei, nur die Programme starten nicht in der 64Bit Umgebung.
Ich installiere den Service mit einem Setup (InnoSetup), folgende Zeile habe ich eingefügt damit ich im Programmverzeichnis auf ini-Dateien zugreifen kann:
Delphi-Quellcode:
[Dirs]
Name: "{app}"; Permissions: authusers-full;
Muss ich bei Windows 64Bit irgendwelche Verzeichnisrechte setzten ?
kuba