下面函数的功能是通过exeFullPath指定的路径,启动进程,获得其窗体标题,然后再结束掉。返回值是窗体标题。现在的问题是,此函数在调试状态下执行能获得ExeTitle的值,而在非调试状态下无法获得。
是不是p.Start()立即执行后p.MainWindowTitle.ToString()还没有值?
请教...
private string getExeTitleByExeFullPath(string exeFullPath)
{
Process p = new Process();
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = exeFullPath;
psInfo.WindowStyle = ProcessWindowStyle.Minimized;
p.StartInfo = psInfo;
string ExeTitle = string.Empty;
if (p.Start())
{
ExeTitle = p.MainWindowTitle.ToString();
}
//p.Close();
//p.Kill();
return ExeTitle;
}
解决方案 »
- 文本框问题
- session丢失的问题
- web用户控件span
- .Net2.0的Winform程序中,把Treeview的Imagelist加入图像后,却不能显示呢?
- winform show一个frm 点解在window的任务栏上就多一个运行程序框呢?
- 通过/*和*/添加的注释不能够嵌套使用,如果我想通过#if和#endif来实现,应该怎么用?
- .sys 和 .vxd的程序,我怎麼在c#中調用裡面的函數?
- 请教一个稍复杂些的算法和方法,日期相关!多谢啦!
- treeview问题 ~!!!!大家来HELP ME 谢谢
- 转帖:如何使用资源文件(解决MissingManifestResourceException这个问题)
- C# Datatable相同行过滤
- ==求助:点击treeview后如何控制属性页的显示?(有图)=== 谢谢
if (p.Start())
{
p.WaitForInputIdle(); //<--
ExeTitle = p.MainWindowTitle.ToString();
}
WaitForInputIdle会等到目标进程完成初始化(有消息循环的,已经创建好窗口,可以接受用户输入了)。