我们有一个简单的应用程序,其中有一个按钮,可以使用流程开始打开事件查看器。
public static void OpenWindowsEventViewer(
string computerDnsName,
string userName,
SecureString password,
string domain)
{
Process.Start("eventvwr.exe", computerDnsName, userName, password, domain);
}
使用HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run从注册表启动我们的工具时,它正常启动但无法启动“eventvwr.exe”进程,并显示错误:“目录名称无效”。
使用自动启动文件夹(开始 - >程序 - >自动启动)启动我们的工具,它完美无缺。
这两种方式有什么区别,我可以做些什么让它从注册表开始工作?
编辑:删除SecureString使其工作......
答案 0 :(得分:2)
以下主题可能有所帮助......
Why does impersonating a process return “The directory name is invalid”?
编辑:
工作目录是重要的财产。
答案 1 :(得分:1)
使用eventvwr.exe
的完整路径:
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "eventvwr.exe")