我有一个启动应用程序,它使用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.所以可能是我无法获得进程或其他东西。
答案 0 :(得分:0)
您的问题是,在尝试移动程序之前,您没有等待程序启动。
我将Thread.Sleep(100)
更改为Thread.Sleep(1000)
并且工作正常!