2017-03-28 28 views
0

C#からShellExecuteEx()を使用してnotepad.exeを実行しようとしています。しかし、メモ帳は起動していません。私はWindows 10 64ビットOSでコードを実行しています。これは何か違いがありますか?解決策とは何でしょうか。以下はWindows 10のShellExecuteEx()64ビットOS

私はShellExecuteEx()を使用する必要はありません

SHELLEXECUTEINFO SEI = SHELLEXECUTEINFO.CreateInstance(); 
SEI.cbSize = Marshal.SizeOf(SEI); 
SEI.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI 
      | SEE_MASK_NOASYNC | SEE_MASK_INVOKEIDLIST; 
SEI.hWnd = 0; 
SEI.lpVerb = "open"; 
SEI.lpFile = sbResult.ToString(); //StringBuilder notepad.exe path 
SEI.lpParameters = sDocName; // txt file path 
SEI.lpDirectory = ""; 
SEI.nShow = SW_SHOWNORMAL; 
SEI.hInstApp = 0; 
SEI.lpIDList = 0; 
lReturnedCode = ShellExecuteEx(ref SEI); 
WaitForSingleObject(SEI.hProcess, INFINITE); 
+0

コードが不足していると何が間違っていると言うのは難しいです。 [Mcve]してください。 –

+1

TXTファイルを開くだけの場合は、 'ShellExecute/Ex()'にTXTファイル名を指定して、ユーザのデフォルトのテキストエディタの場所と実行方法を理解させる必要があります: 'SEI.lpFile = sDocName; SEI.lpParameters = "";そして、 'WaitForSingleObject()'を盲目的に呼び出さないで 'ShellExecute/Ex()'が成功を返す場合にのみ呼び出します。 –

+0

ShellExecuteExは何を返しますか? – Anders

答えて

4

を書かれているコードです。 Process.Start()

Process proc = Process.Start("notepad.exe", sDocName); 
関連する問題