Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

Управление процессами с определенным 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 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
2-1324444743
petvv
2011-12-21 09:19
2012.04.15
Непонятки с запросом


15-1323694886
Artem
2011-12-12 17:01
2012.04.15
Какое основное отличие Serial от Ethernet a?


15-1323808202
Юрий
2011-12-14 00:30
2012.04.15
С днем рождения ! 14 декабря 2011 среда


1-1291799940
Alexander_K
2010-12-08 12:19
2012.04.15
Уничтожение RDM


1-1290857534
VLK32
2010-11-27 14:32
2012.04.15
Манипулирование метаклассами