 |
Открытие свернутой программы - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
04.07.2012, 20:25
|
#1
|
|
|
|
Пехотинец
|
 Регистрация: 27.11.2010
 Сообщений: 84
 Популярность: -1831
 Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
|
Открытие свернутой программы
У меня запущена программа, которая сейчас находится в свернутом состоянии, как можно ее развернуть при помощи c#?
И повторю еще раз: Развернуть свернутое окно, а не запустить процесс\программу.
|
|
|
04.07.2012, 20:55
|
#2
|
|
|
|
Капитан
|
 Регистрация: 11.08.2010
 Сообщений: 254
 Популярность: 9232
 Сказал(а) спасибо: 300
Поблагодарили 334 раз(а) в 223 сообщениях
|
Re: Открытие свернутой программы
Я не силен в дотнете.
Но на С++ примерно так
Код:
#include <windows.h>
int main (void)
{
HWND hwnd;
hwnd = FindWindowA(NULL, "Zhyk.ru Forums - Opera");
ShowWindow(hwnd, SW_SHOW);
}
На c# вроде бы так
Код:
[DllImport("user32.dll")]
static extern IntPtr FindWindowA(bool ClassName , string WindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int Command);
private const int SW_SHOW = 5;
public static void Show()
{
IntPtr hWnd = FindWindowA(false, "Zhyk.ru Forums - Opera");
ShowWindow(hWnd, SW_SHOW);
}
|
|
|
04.07.2012, 21:09
|
#3
|
|
|
|
Пехотинец
|
 Регистрация: 27.11.2010
 Сообщений: 84
 Популярность: -1831
 Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
|
Re: Открытие свернутой программы
увы не сработало...
прописал весь код и добавил
на нажатие кнопки.
Последний раз редактировалось XRASER; 04.07.2012 в 21:11.
|
|
|
05.07.2012, 03:10
|
#4
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: Открытие свернутой программы
По имени процесса
Код:
private bool RestoreWindow(string processName)
{
bool result = false;
Process[] proc = Process.GetProcessesByName(processName);
if (proc.Length > 0)
result = ShowWindow(proc[0].MainWindowHandle, 9);
return result;
}
По дескриптору окна
Код:
private bool RestoreWindow(IntPtr hWnd)
{
bool result = ShowWindow(hWnd, 9);
return result;
}
По заголовку окна, можно вводить не полное название окна, без учета регистра
Код:
private bool RestoreWindowByName(string wnd)
{
bool result = false;
Process proc = Process.GetProcesses().First(p => p.MainWindowTitle.ToLower().Contains(wnd));
if (proc != null)
result = ShowWindow(proc.MainWindowHandle, 9);
return result;
}
________________
Talk is cheap. Show me the code
— Linus Torvalds
Последний раз редактировалось Yukikaze; 05.07.2012 в 03:14.
|
|
|
Пользователь сказал cпасибо:
|
|
05.07.2012, 10:28
|
#5
|
|
|
|
Пехотинец
|
 Регистрация: 27.11.2010
 Сообщений: 84
 Популярность: -1831
 Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
|
Re: Открытие свернутой программы
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
По имени процесса
Код:
private bool RestoreWindow(string processName)
{
bool result = false;
Process[] proc = Process.GetProcessesByName(processName);
if (proc.Length > 0)
result = ShowWindow(proc[0].MainWindowHandle, 9);
return result;
}
По дескриптору окна
Код:
private bool RestoreWindow(IntPtr hWnd)
{
bool result = ShowWindow(hWnd, 9);
return result;
}
По заголовку окна, можно вводить не полное название окна, без учета регистра
Код:
private bool RestoreWindowByName(string wnd)
{
bool result = false;
Process proc = Process.GetProcesses().First(p => p.MainWindowTitle.ToLower().Contains(wnd));
if (proc != null)
result = ShowWindow(proc.MainWindowHandle, 9);
return result;
}
|
|
 |
|
 |
|
можно на примерах? с окном жука например или с процессом firefox.exe?
|
|
|
05.07.2012, 17:18
|
#6
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: Открытие свернутой программы
RestoreWindowByName("Zhyk.ru");
RestoreWindow("firefox");
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:29.
|
 |