我正在创建一个Basic MSI installshield安装程序。并且为了选择安全路径,我正在调用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;
}
感谢您的帮助。
答案 0 :(得分:0)
我认为您应该从代码中删除以下行:
IntPtr handle2 = GetDesktopWindow();
IntPtr dialogHandle = GetWindow(handle2, 5);
bool set = SetForegroundWindow(dialogHandle);
答案 1 :(得分:0)