Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-1249042437
avn72
2009-07-31 16:13
2012.04.15
Проблема с кодировкой DBF при подключении через ADO


15-1323290513
Кто б сомневался
2011-12-08 00:41
2012.04.15
Чем лучше черные клавиатуры?


1-1291776597
TPAW
2010-12-08 05:49
2012.04.15
TEdit с картинкой


15-1323809010
Германн
2011-12-14 00:43
2012.04.15
Загрузочное меню


15-1323721803
Юрий
2011-12-13 00:30
2012.04.15
С днем рождения ! 13 декабря 2011 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский