Форум: "WinAPI";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
ВнизУправление процессами с определенным PID Найти похожие ветки
← →
Morgan128 (2009-10-23 10:13) [0]Добрый день.
Есть несколько одинаковых процессов (например mstsc.exe) различных только по PID. Можно ли переключаться между этими процессами по нажатию горячих клавиш (например ctrl+1 - на первый процесс, ctrl+2 - на второй и т.д.) так, чтобы доступ к другим блокировался? То есть пока первый процесс активен другие находятся в свернутом виде и их можно вызвать только по горячей клавише.
← →
Сергей М. © (2009-10-23 10:18) [1]Твои процессы-то ? Или чужие ?
← →
Morgan128 (2009-10-23 10:27) [2]мои, на локальном компе.
← →
Сергей М. © (2009-10-23 10:32) [3]Тогда можно.
← →
brother © (2009-10-23 10:33) [4]а теперь будет логичный вопрос: как или дайте код)
← →
Morgan128 (2009-10-23 10:36) [5]Ага, а заодно можно ли запустить приложение назначив ему свой PID и как это сделать?
← →
Morgan128 (2009-10-23 10:37) [6]to Сергей М.
Как это сделать, хотя бы какими командами - подскажите, что бы знать что искать.
← →
brother © (2009-10-23 10:38) [7]> назначив ему свой PID
низя.
← →
Morgan128 (2009-10-23 10:42) [8]Ок, тогда с управлением подскажите. Как получить PID процесса я нашел.
← →
Morgan128 (2009-10-23 10:47) [9]Еще вопрос: Среди выполняемых процессов можно отфильтровать определенные процессы по названию для получения их PID? Дабы не считывать все процессы подряд.
← →
brother © (2009-10-23 10:49) [10]ты хоть один pid процесса получил в своей программе?
← →
Morgan128 (2009-10-23 11:01) [11]function GetProcessID(Exename: string): DWORD;
← →
Morgan128 (2009-10-23 11:03) [12]to brother
А что? Сомневаетесь, что я на это способен? :)
Я просто никогда не работал с WinAPI. А ща потребовалось.
← →
brother © (2009-10-23 11:05) [13]> Среди выполняемых процессов можно отфильтровать определенные
> процессы по названию
получаешь список всех процессов
вызываешь GetProcessID только для нужных
← →
Morgan128 (2009-10-23 11:07) [14]Понятно. Тогда остался только первый вопрос: как этим всем управлять :)
← →
brother © (2009-10-23 11:08) [15]> как этим всем управлять
нууу, это программу надо писАть...
← →
Morgan128 (2009-10-23 12:27) [16]Блин, умники. Нормально ответить нельзя? Что, стандартных функций нет?
← →
Сергей М. © (2009-10-23 13:20) [17]
> как этим всем управлять
Что значит "управлять" ?
> пока первый процесс активен другие находятся в свернутом
> виде
Процесс не может быть "активен" или "свернут".
Активным и.или свернутым может быть окно, порожденное потоком процесса.
← →
Morgan128 (2009-10-23 13:25) [18]Если вы все равно поняли, что я имею в виду, зачем задавать вопросы?
1. Управлять:
> Есть несколько одинаковых процессов (например mstsc.exe)
> различных только по PID. Можно ли переключаться между этими
> процессами по нажатию горячих клавиш (например ctrl+1 -
> на первый процесс, ctrl+2 - на второй и т.д.) так, чтобы
> доступ к другим блокировался? То есть пока первый процесс
> активен другие находятся в свернутом виде и их можно вызвать
> только по горячей клавише.
> Сергей М. © (23.10.09 10:32) [3]
>
> Тогда можно.
2.
> Процесс не может быть "активен" или "свернут".
> Активным и.или свернутым может быть окно, порожденное потоком
> процесса.
Ну оговорился, ну окно. Все равно ведь понятно.
← →
clickmaker © (2009-10-23 13:38) [19]> [18] Morgan128 (23.10.09 13:25)
процесс запускается - ищем окна с таким же классом, сворачиваем.
при попыике разворота окна, проверяем, нет ли активного (GetForegroundWindow) окна с таким же классом. Если есть, не даем развернуть.
> по нажатию горячих клавиш
RegisterHotKey()
← →
Сергей М. © (2009-10-23 13:44) [20]Регистрация горяцей клавиши - RegisterHotKey()
Управление визуальным состоянием и активностью окна - ShowWindow()
← →
Leonid Troyanovsky © (2009-10-23 14:25) [21]
> Morgan128 (23.10.09 13:25) [18]
> > на первый процесс, ctrl+2 -
WM_SETHOTKEY
--
Regards, LVT.
← →
Юрий Зотов © (2009-10-26 03:56) [22]> Morgan128 (23.10.09 13:25) [18]
Создание процесса: CreateProcess из отдельного потока. Запоминаем полученные хэндлы нового процесса и его главного потока в массивах, затем вызываем WaitForSingleObject. По окончании ожидания закрываем оба хэндла и удаляем их из массивов.
Горячие клавиши - RegisterHotKey.
Получение списка окон потока: EnumThreadWindows. Управление их состоянием - ShowWindow.
Деактивация потока: SuspendThread. Активация - ResumeThread.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c