2013-10-06 36 views
1

我想知道是否有任何方法来设置ClickOnce部署的应用程序的位置和大小,通过Process.Start启动。与正常文件(.exe)的应用是没有问题的,我可以做这样的事情:设置ClickOnce应用程序的位置和大小

var externalAppProcess = Process.Start("calc"); 
var externalAppPtr = externalAppProcess.MainWindowHandle; 

,然后使用调用的MoveWindow设置这样的东西的位置,大小等。然而,当我开始一个appref- ms文件,它运行时没有任何问题,但我无法访问它的MainWindowHandle,它说“Process已退出,所以请求的信息不可用”。有任何想法吗?

回答

0

当您启动* .appref-ms时,rundll32或dfshim进程将运行。它执行ClickOnce检查并最终启动ClickOnce部署的应用程序的可执行文件。

所以,你可以尝试寻找主窗口句柄是这样的:

var processes = Process.GetProcessesByName("ClickOnceDeployedApp"); 
foreach (Process p in processes) 
{ 
    IntPtr windowHandle = p.MainWindowHandle; 

    // do something 
} 
相关问题