Shellexecute错误2 - 找不到指定的文件

时间:2017-08-11 09:04:06

标签: lazarus

我正在尝试:

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

我在哪里:\是网络驱动器。这会给我错误: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 - 找不到文件。 让我相信除了代码之外还有一些东西让我玩弄了......

1 个答案:

答案 0 :(得分:-1)

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

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

问题是挪威人的角色:æ 但这并不能解释为什么我得到错误5 - 尝试UNC路径时拒绝访问...