2017-08-11 19 views
-1

見つかりませんでした私がしようとしている:のShellExecuteエラー2 - 指定されたファイルは

I
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をどうすればよいですか? それ以上の可能性:私は何が分かりませんか?

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ファイル:( 同じエラー:

望ん@RBAは、私が今しようとしている明白なことなった。2 - ファイルが見つかりません は私が他の何かがあると信じてします私にトリックをプレイしているのコード...

+2

をあなたは.exeファイルを起動するためのShellExecute()を使用すべきではありませんとにかく代わりにCreateProcess()を使用する必要があります – RBA

+0

私はGoogle検索し、CreateProcessを試して、まだマップされたドライブ上のexeファイルを起動することができませんでした。 (私はCreateProcessの例で私の質問を更新します) –

+0

@RBAは、質問することがある場合、ShellExecute()を使ってexeを起動すると何が問題になるのですか? – Fero

答えて

-1

よりも、私は最終的に明らかにした上記の例で指定されたパスは一例であり、実際のパスは次のとおりです。。

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

そして問題は、ノルウェーの文字である:æ しかし、それは、私がエラー5だ理由を説明していません - UNCパスをしようとすると、アクセス拒否...

関連する問題