Свежемороженный процесс

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Свежемороженный процесс

Сообщение ToT » 08.06.2003 (Вс) 8:36

Никто не знает, как можнозаморозить определенный процесс, нить? Это что-то типа Sleep, только не для текущей нити, а для той, которую указываешь. Пример:
Жму на кнопку comd1 в каком-либо приложении (не мое, но по отнрошению к моему, откуда будем морозить, оно дочернее), ононачинает выполнять какую-нибудь работу, потом жму на кнопку comd2 в своем приложении и первое "зависает" на некоторое время.
Ну точно как Sleep.

Я пробывал поработать с приоритетами, но заморозить не удалось. При самом низком приоритете, скорость работы тестового приложения замедлялась до 100 раз! Но далеко (очень далеко, почти никогда) не всегда и вообще мне это не подходит.
Keyboard not found. Press any key.

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 08.06.2003 (Вс) 8:38

Забыл сказать, у меня Windows 98
Keyboard not found. Press any key.

Dagobert
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 141
Зарегистрирован: 21.12.2002 (Сб) 6:48
Откуда: Russia

Сообщение Dagobert » 09.06.2003 (Пн) 4:47

Пока могу подкинуть только функции без объяснения.

Код: Выделить всё
Declare Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As Long) As Long
Declare Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As Long) As Long


Кстати, насколько знаю, процесс сам не исполняется, только нити. Процес просто оболочка для нитей.

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 10.06.2003 (Вт) 18:41

2Dagobert
Под заморозкой процесса я имел ввиду заморозку сразу всех его нитей, потому что нужный мне процес скорее всего многопоточный.

Я проверил ф-ию SuspendThread, насколько я понял,она останавливает нити только моего процесса, а мне нужно морозить чужой. Если я что-то не так понял, нельзя ли привести кусок кода.
Keyboard not found. Press any key.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 11.06.2003 (Ср) 9:17

ToT писал(а):2Dagobert
Под заморозкой процесса я имел ввиду заморозку сразу всех его нитей, потому что нужный мне процес скорее всего многопоточный.

Я проверил ф-ию SuspendThread, насколько я понял,она останавливает нити только моего процесса, а мне нужно морозить чужой. Если я что-то не так понял, нельзя ли привести кусок кода.


НУ, если передавать handle=0 то естесно твой и встанет... надо же требуемой нити...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 15.06.2003 (Вс) 16:04

2Sebas
Во-первых я не идиот, и естественно пробывал много способов, а во-вторых, если передаввть 0, то твой процесс не встанет :)

Меня навело на мысль, что морозятся только свои нити то, что моя нить вставала при передаче hThread = GetCurrentThread, эта ф-ия возвращает только псевдоуказатель (как я понял, относительно моего процесса) на нить, а не настоящий. Если передвать hThread=GetCurrentThreadId, которая возвращает, насколько я понимаю глобальный хэндл нити, то ничего с моей нитью не происходит. Ну так что, кажись, заморозить процесс не удасться?
Keyboard not found. Press any key.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 22.06.2003 (Вс) 10:42

http://www.microsoft.com/technet/treevi ... crCM62.asp

мож чё найдешь, правда на98 надо WMI ставить...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 71

    TopList