У меня есть приложение для окон. В котором в списке я показываю заголовок всех открытых окон. Я сделал это. Теперь я хочу дважды щелкнуть по названию в списке .. и это активирует это окно и отобразит аванс. Мой код выглядит так ::Как перенести выбранное окно приложения из списка на передний план
//this function is loading all the opened windows in the listbox
public void LoadOpenedWindows()
{
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
listBox1.Items.Add(process.MainWindowTitle);
}
}
listBox1.DoubleClick += new EventHandler(ListBox1_DoubleClick);
}
Я попытался открыть выбранный пункт следующим образом .. Но это не работает ..
private void ListBox1_DoubleClick(object sender, EventArgs e)
{
if (listBox1.SelectedItem != null)
{
//MessageBox.Show(listBox1.SelectedItem.ToString());
const uint SW_SHOW = 5;
const int SW_RESTORE = 5;
string selected = listBox1.SelectedItem.ToString();
IntPtr handleOfSelected = getHandle(selected);
ShowWindowAsync(handleOfSelected, SW_RESTORE);
SetForegroundWindow(handleOfSelected);
//BringWindowToTop(handleOfSelected);
//ShowWindow(handleOfSelected, SW_SHOW);
}
}
public IntPtr getHandle(string selectedItem)
{
IntPtr hWnd = IntPtr.Zero;
foreach (Process pList in Process.GetProcesses())
{
if (pList.MainWindowTitle.Contains(selectedItem))
{
hWnd = pList.MainWindowHandle;
}
}
return hWnd;
}
Если кто-нибудь есть какие-либо идеи или кусок кода .. Пожалуйста, попробуйте помочь.
Большое спасибо Sayka .. Это работает отлично. – Jaideep
У меня есть некоторые вопросы. Не могли бы вы объяснить функцию bringProcessToFront. Специально функция ShowWindow. – Jaideep
Добро пожаловать в jaideep. Я добавил объяснение. – Sayka