Shellexecute Error 2 - 找不到指定的文件

Shellexecute Error 2 - The specified file was not found

我正在尝试:

cmdline := 'I:\test.exe';
Result := ShellExecute(0,nil, PChar(cmdline),PChar(''),nil,1)

其中 I:\ 是网络驱动器。这会给我错误:2 - 找不到文件

如果我尝试:

cmdline := '\10.10.10.10\data\test.exe';
Result := ShellExecute(0,nil, PChar(cmdline),PChar(''),nil,1)

给出错误:5 - 访问被拒绝

所以我猜 ShellExecute 没有得到映射的网络驱动器,也没有得到登录用户的凭据。

那么如何让ShellExecute在当前用户环境下执行命令呢? 或者更有可能:我错过了什么明显的东西?

希望@RBA 给了我我现在已经尝试过的显而易见的东西:

FillChar( StartupInfo, SizeOf( TStartupInfo ), 0 );
StartupInfo.cb := SizeOf( TStartupInfo );
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := sw_Normal;
FillChar( ProcessInfo, SizeOf( TProcessInformation ), 0 );

if CreateProcess(pchar(cmdline), Nil, Nil, Nil,
                 False, CREATE_NEW_CONSOLE, Nil, Nil, 
                 StartupInfo, ProcessInfo) then
  result := true
else
  result := false; 

但仍然没有启动 exe :( 相同错误:2 - 找不到文件。 让我相信除了代码之外还有其他东西在耍我...

我终于找到了显而易见的东西。上例给出的路径只是一个例子。真实路径是:

I:\Prosjekt\Læringssenteret\VgFriskoleIndivid\Program\utvOve\WisKrypt\Install

问题是挪威语字符:æ 但这并不能解释为什么我收到错误 5 - 尝试 UNC 路径时访问被拒绝...