我正在创建一个基本的MSI安装程序。为了选择安装路径,我调用了FolderBrowserDialog。一切正常,除了后台的FolderBrowserDialog应用程序。我想将它设置为前景窗口。此代码始终返回true,并且如果没有打开其他窗口,则可以正常工作。
如何检查dialogHandle是否是我的对话句柄?
下面是我的方法:
/// <param name="fPath">INSTALLPATH</param>
/// <param name="handle">installshield handle</param>
/// <returns></returns>
public string NetworkFolderDialog(string sFilePath, IntPtr handle)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
IntPtr handle2 = GetDesktopWindow();
IntPtr dialogHandle = GetWindow(handle2, 5);
bool set = SetForegroundWindow(dialogHandle);
DialogResult result = dialog.ShowDialog();
MessageBox.Show(set.ToString());
if (result == DialogResult.OK)
return dialog.SelectedPath;
else
return sFilePath;
}谢谢你的帮助。
发布于 2009-09-30 10:18:04
我认为你应该从你的代码中删除以下几行:
IntPtr handle2 = GetDesktopWindow();
IntPtr dialogHandle = GetWindow(handle2, 5);
bool set = SetForegroundWindow(dialogHandle);发布于 2011-06-16 14:15:09
这里有一个关于这方面的讨论:Custom Installer in .Net showing Form behind installer
https://stackoverflow.com/questions/1497151
复制相似问题