C# Windows 10 64位操作系统中的ShellExecuteEx()

C# Windows 10 64位操作系统中的ShellExecuteEx(),c#,winapi,C#,Winapi,我正试图通过ShellExecuteEx()从c#执行notepad.exe。但记事本并没有发布。我正在Windows 10 64位操作系统中运行代码。这有什么区别吗?什么可能是解决方案 下面是我写的代码 SHELLEXECUTEINFO SEI = SHELLEXECUTEINFO.CreateInstance(); SEI.cbSize = Marshal.SizeOf(SEI); SEI.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_

我正试图通过ShellExecuteEx()从c#执行notepad.exe。但记事本并没有发布。我正在Windows 10 64位操作系统中运行代码。这有什么区别吗?什么可能是解决方案

下面是我写的代码

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);

无需使用
ShellExecuteEx()
。您可以使用:


无需使用
ShellExecuteEx()
。您可以使用:


由于缺乏代码,很难说什么是错的。请。如果您只想打开一个TXT文件,您应该只向
ShellExecute/Ex()
提供TXT文件名,让它知道用户默认文本编辑器的位置以及如何运行:
SEI.lpFile=sDocName;SEI.lpParameters=“”WaitForSingleObject()
,只有当
ShellExecute/Ex()
返回成功时才调用它。ShellExecuteEx返回什么?由于缺少代码,很难说什么是错的。请。如果您只想打开一个TXT文件,您应该只向
ShellExecute/Ex()
提供TXT文件名,让它知道用户默认文本编辑器的位置以及如何运行:
SEI.lpFile=sDocName;SEI.lpParameters=“”WaitForSingleObject()
,只有当
ShellExecute/Ex()
返回成功时才调用它。ShellExecuteEx返回什么?
Process proc = Process.Start("notepad.exe", sDocName);