【发布时间】:2018-03-15 20:57:44
【问题描述】:
我有一个启动应用程序,它使用 Process.Start("MyExe") 打开我的另一个应用程序,该应用程序存储在可执行文件中,并显示 WPF 窗口。
不过,我还希望能够从启动程序中设置 WPF 在屏幕上的位置。我尝试过使用MoveWindow,但它不起作用。
Process flash = new Process();
flash.StartInfo.FileName = appDirectoryPath + "\\" + OnScreenKeyboardExe;
flash.Start();
Thread.Sleep(100);
IntPtr id = flash.MainWindowHandle;
File.WriteAllText("D://errorlog.txt", id.ToString());
OperatingSystemBase.MoveWindow(flash.MainWindowHandle, 1000, 1000, 500, 500, true);
在错误日志文件中我得到了 id 0。所以我可能无法获取进程或其他东西。
【问题讨论】:
-
'exe 窗口' - 这是一个控制台窗口,还是一个实际的 WPF 窗口(正如您的问题标签所建议的那样)?
-
@LordWilmore,这是一个真正的 wpf 窗口。
-
能否请您发布您尝试使用
MoveWindow的代码以及可能引发的任何错误? -
@LordWilmore,当然。
-
如果调用
MoveWindow失败,请检查GetLastWin32Error(),看看那里是否有任何使用的报告