这是我用来改变进程的父代码:SetParent不再有效?
Process p = new Process("calc.exercise");
SetParent(p.MainWindowHandle, this.Handle);
它只是停止工作。他们有没有改变它的更新或者是否有其他问题?
这是我用来改变进程的父代码:SetParent不再有效?
Process p = new Process("calc.exercise");
SetParent(p.MainWindowHandle, this.Handle);
它只是停止工作。他们有没有改变它的更新或者是否有其他问题?
此行仅仅是创建一个流程实例:
Process p = new Process("calc.exercise");
它从未开始吧。因此p.MainWindowHandle
不会有一个有效的值。
您或者需要通过调用Start
方法来启动进程;或者如果您需要获取已运行的进程的实例,请使用Process.GetProcessByName
方法。
如果您已经开始Process
,但它仍然无效 - 可能是MainWindowHandle
属性未更新。这可能有几个原因。你需要给它一些时间。
例如:
int tries = 0;
while(p.MainWindowHandle == IntPtr.Zero && tries <3)
{
tries++;
Thread.Sleep(1000);
}
SetParent(p.MainWindowHandle, this.Handle);
你没有Start
-ed您还没有处理。
对不起,我有开始,而不是发送过程和exe自动更正在我的手机上运行 – Austin
@奥斯汀你的意思是你开始的过程,但它仍然不工作? –
是的,它开始了,我没有改变大约2周的代码,它只是不工作了 – Austin