Hallo,
ich möchte aus einem Dienst heraus mit CreateProcessAsUser ein Programm starten, folgenden Code habe ich jetzt:
if not LogonUser(
PChar('Username'),
PChar('Workgroup'),
PChar('Passwort'),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
token) then
Beep;
ZeroMemory( @si, sizeof(si) );
si.lpDesktop:=PChar(deskname);
si.cb := sizeof(si);
ZeroMemory( @pi, sizeof(pi) );
cf:=CREATE_NEW;
command:='E:\Programm.exe';
try
if not CreateProcessAsUser(
token,
nil,
PChar(command),
nil,
nil,
true,
cf,
nil,
PChar(ExtractFilePath(command)),
si,
pi )then
Beep;
except
Beep;
end;
Aus einem "normalen" Programm heraus funktioniert das ohne Probleme, das programm wird auf einem zweiten Desktop ausgeführt UND angezeigt.
Aus dem Dienst heraus wird zwar der zweite desktop angezeigt, das programm wird auch gestartet, allerdings nicht angezeigt.
Kann mir jemand sagen wie ich das Programm auch aus dam Dienst heraus anzeigen lasse?
Vielen Dank schonmal
Martin Weber
ich möchte aus einem Dienst heraus mit CreateProcessAsUser ein Programm starten, folgenden Code habe ich jetzt:
if not LogonUser(
PChar('Username'),
PChar('Workgroup'),
PChar('Passwort'),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
token) then
Beep;
ZeroMemory( @si, sizeof(si) );
si.lpDesktop:=PChar(deskname);
si.cb := sizeof(si);
ZeroMemory( @pi, sizeof(pi) );
cf:=CREATE_NEW;
command:='E:\Programm.exe';
try
if not CreateProcessAsUser(
token,
nil,
PChar(command),
nil,
nil,
true,
cf,
nil,
PChar(ExtractFilePath(command)),
si,
pi )then
Beep;
except
Beep;
end;
Aus einem "normalen" Programm heraus funktioniert das ohne Probleme, das programm wird auf einem zweiten Desktop ausgeführt UND angezeigt.
Aus dem Dienst heraus wird zwar der zweite desktop angezeigt, das programm wird auch gestartet, allerdings nicht angezeigt.
Kann mir jemand sagen wie ich das Programm auch aus dam Dienst heraus anzeigen lasse?
Vielen Dank schonmal
Martin Weber
Comment