Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Активация формы


Автор: magus 28.8.2007, 12:49
У меня такая задачка - во время всей работы компьютера в невидимости висит форма.  Нужно сделать так, чтобы при необходимости можно было ее быстро активировать. Необходимо что-то вроде горячих клавиш, или значка в области задач. Возможно ли это организовать?
Заранее благодарен.

Автор: RussianHero 28.8.2007, 15:07
Интересный вопрос... Тут наверное уже нужно прерывания использовать...
Не знаю точно, как их описать в ВБА. Если сможешь в ВБА вставить код ассемблера - м.б. я смогу помочь.... Хотя щас посмотрим что скажут настоящие профи.

Автор: Akina 28.8.2007, 15:26
Системный хук на клавиатуру.

Цитата(RussianHero @  28.8.2007,  16:07 Найти цитируемый пост)
Тут наверное уже нужно прерывания использовать...

Под Виндами - прерывания? Двойка по основам.

Автор: RussianHero 29.8.2007, 07:12
Цитата(Akina @  28.8.2007,  15:26 Найти цитируемый пост)
Системный хук на клавиатуру.

а как это описывается? 8)

Цитата(Akina @  28.8.2007,  15:26 Найти цитируемый пост)
Под Виндами - прерывания? 

а какая разница.. виндоус все арвно делает эти же самые прерывания.. как бы к нему не обращаться.. 8)

Автор: kapbepucm 29.8.2007, 08:18
Цитата(RussianHero @  29.8.2007,  07:12 Найти цитируемый пост)
а как это описывается?
SetWindowsHookEx

Автор: RussianHero 30.8.2007, 08:48
Эм, а по-подробнгее можно? Какую для этого библиотеку подключать и что эта вещь вообще делает и ккие параметры ей нужны?

Автор: Akina 30.8.2007, 09:13
MSDN: Platform SDK: Interprocess Communications 
SetWindowsHookEx
The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread. 

Код

HHOOK SetWindowsHookEx(
  int idHook,        // hook type
  HOOKPROC lpfn,     // hook procedure
  HINSTANCE hMod,    // handle to application instance
  DWORD dwThreadId   // thread identifier
);

Остальное прочти сам.

Код

Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Автор: RussianHero 31.8.2007, 07:16
кк. спасибо. Более-менее что-то понял 8)

Автор: JusTalionis 31.8.2007, 09:12
У меня была такая задача, активизировать невидимую форму. Но поскольку режим видимости был редким (предназначался для настройки параметров) Я решил так - форма активизировалась повторным запуском файла проги (а повторный процесс - завершался).

Добавлено через 11 минут и 22 секунды
RussianHero, кстати, если твоя прога предназначена висеть в фоне постоянно весь сеанс работы с компом, обрати внимание, чтоб твоя прога не создавала самопроизвольно для себя временного файла (при некоторых условиях такое происходит).
Потому что наличие постоянно открытого файла в случае любого глюка виндов будет чревато накоплением ошибок в файловой системе, и вообще, создаст ненужные проблемы.

Автор: Akina 31.8.2007, 12:07
Цитата(JusTalionis @  31.8.2007,  10:12 Найти цитируемый пост)
обрати внимание, чтоб твоя прога не создавала самопроизвольно для себя временного файла (при некоторых условиях такое происходит).

Сомнительно... само ничего не появляется.

Цитата(JusTalionis @  31.8.2007,  10:12 Найти цитируемый пост)
наличие постоянно открытого файла в случае любого глюка виндов будет чревато накоплением ошибок в файловой системе

Не думаю, что у товарища все еще FAT...  smile 

Автор: JusTalionis 1.9.2007, 09:54
Цитата(Akina @  31.8.2007,  12:07 Найти цитируемый пост)
 
Цитата(JusTalionis @  31.8.2007,  09:12 Найти цитируемый пост)
обрати внимание, чтоб твоя прога не создавала самопроизвольно для себя временного файла (при некоторых условиях такое происходит).
 Сомнительно... само ничего не появляется.

Моя тема об этом явлении обсуждалась на Винграде. По-видимому, без Вашей помощи?



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)