C# 等待属性窗口对话框,然后继续脚本
我有一段代码来显示文件的属性窗口C# 等待属性窗口对话框,然后继续脚本,c#,C#,我有一段代码来显示文件的属性窗口 ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = @"C:\Users\nyongrand\Desktop\Internet Download Manager.lnk"; psi.Verb = "properties"; Process process = Process.Start(psi); process.WaitForExit(); //This give me exception
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Users\nyongrand\Desktop\Internet Download Manager.lnk";
psi.Verb = "properties";
Process process = Process.Start(psi);
process.WaitForExit(); //This give me exception, Object reference not set to an instance of an object.
我希望等待窗口属性关闭,因为如果我的代码关闭了属性窗口,那么属性窗口也将关闭,我需要一个解决方案,我的代码可以等待属性窗口关闭,或者我的代码可以退出而不关闭属性窗口。尝试替换
Process process = Process.Start(psi);
与
代码面临的问题是返回布尔值。它不是流程对象的工厂。尝试替换
Process process = Process.Start(psi);
与
代码面临的问题是返回布尔值。它不是进程对象的工厂。您得到的异常意味着当您尝试调用其
WaitForExit
成员方法时,进程
为null
。所以你应该问的问题是为什么
开始处理进程的重载。启动您正在调用的
函数以查看它实际返回的内容。果然,它返回一个进程
对象,但仅在某些条件下:
返回值类型:
System.Diagnostics.Process
与流程资源关联的新
流程
组件,或者如果没有启动流程资源(例如,如果重用现有流程),则为null
在“备注”部分:
注意:如果要启动的可执行文件的地址是URL,则进程不会启动,并返回null
因此,如果重复使用现有进程,
process.Start
方法将返回null
。您不能在null
上调用方法。您得到的异常意味着process
在您尝试调用其WaitForExit
成员方法时为null
。所以你应该问的问题是为什么
开始处理进程的重载。启动您正在调用的
函数以查看它实际返回的内容。果然,它返回一个进程
对象,但仅在某些条件下:
返回值类型:
System.Diagnostics.Process
与流程资源关联的新
流程
组件,或者如果没有启动流程资源(例如,如果重用现有流程),则为null
在“备注”部分:
注意:如果要启动的可执行文件的地址是URL,则进程不会启动,并返回null
因此,如果重复使用现有进程,
process.Start
方法将返回null
。您不能调用null
上的方法好的,我在查看文档时错过了这个方法。写得很好。好吧,我在看文档的时候错过了那个。写得很好。