Hallo,
Ich habe hier (nee, ganz weit weg beim Kunden) ein Problem mit einer Anwendung, das an einer Stelle eine andere Anwendung startet. Das funktioniert unter XP problemlos, aber bei Windows 7 scheint es nicht zu funktionieren. Der Aufruf geht mit dieser Funktion:
Delphi-Quellcode:
Function ShellExecute_AndWait(Operation, FileName, Parameter, Directory: String;
Show: Word; bWait: Boolean): Longint;
Var
bOK: Boolean;
Info: TShellExecuteInfo;
Begin
FillChar(Info, SizeOf(Info), Chr(0));
Info.cbSize := SizeOf(Info);
Info.fMask := SEE_MASK_NOCLOSEPROCESS;
Info.lpVerb := PChar(Operation);
Info.lpFile := PChar(FileName);
Info.lpParameters := PChar(Parameter);
Info.lpDirectory := PChar(Directory);
Info.nShow := Show;
bOK := Boolean(ShellExecuteEx(@Info));
If bOK Then Begin
If bWait Then Begin
While WaitForSingleObject(Info.hProcess, 100) = WAIT_TIMEOUT Do
Application.ProcessMessages;
bOK := GetExitCodeProcess(Info.hProcess, DWORD(Result));
End
Else
Result := 0;
End;
If Not bOK Then Result := -1;
End;
Problem an der Sache: Ich komme an den Rechner nicht direkt ran, kann also nur per 'Stille Post' Anweisungen geben.
Meine Frage (hier bin ich Laie):
1. Wäre es denkbar, das der aktuelle Benutzer keine Rechte hat, die Fremdanwendung zu starten? Gibt es hier Unterschiede zwischen XP und Win 7?
2. Wenn der angemeldete Nutzer die Anwendung per Doppelklick starten kann, geht das dann auch mit der o.g. Funktion? D.h. reicht es, die Rechte so einzurichten, das Doppelklick funktioniert?
3. Falls 1=JA und 2=JA dann: Wie stellt man das ein?
4. Würde man (1) in einem Windows-Ereignis-Log sehen?
[x] Ja, ich oute mich hiermit als Volldrömel.