Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | | | | | |
ответ 30.05.01 19:19 Число просмотров: 983
Автор: kabanchik Статус: Незарегистрированный пользователь
|
> > WinMe, он летал. сперва подумал разные системы и искал > > разницу в ф-иях, потом скачали новый СП и все > решилось. > Да, прикол. :-) > > > возможностей больше чем даже у NT. Хотя на Win 9X > можешь > > написать VxD, что на System Based on NT Technoligy не > > сделаешь. > > ??? > Не понял. Почему ??
потому что Virtual Driver - базируется на 9х. NT и 9x - это все таки разные технологии. у Virtual Driver есть принципиальные отличия, которые не пройдут под NT.
|
<programming>
|
[Win32] RegisterHotKey 28.05.01 10:55
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
Что-то у меня не получилось с ней ...
Вобщем я хочу добиться чтобы программа реагировала на комбинацию клавиш (всплывала) даже если главное окно скрыто (SW_HIDE)
Я так понимаю, эта функция так сработает ? При нажатии комб. кл. прилетит сообщение WM_HOTKEY. Так ? А ко мне ничего не прилетает...
Или с ее помощью так не выйдет и только клавиатуру хучить ?
Не, я все-таки думаю, что я где-то не так сделал.
У кого фесть пример использование этой штуковины ?
|
|
[Win32] RegisterHotKey 28.05.01 17:29
Автор: Vital Статус: Незарегистрированный пользователь
|
BEGIN_MESSAGE_MAP(CKBGProgDlg, CDialog)
//{{AFX_MSG_MAP(CKBGProgDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_HOTKEY, HideIn) // сообщение WM_HOTKEY
END_MESSAGE_MAP()
BOOL CKBGProgDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
//Регистрация клавиши
RegisterHotKey(this->m_hWnd, 1, MOD_SHIFT,VK_F11);
return TRUE; // return TRUE unless you set the focus to a control
}
//фу-я горячей клавиши
void CKBGProgDlg::HideIn()
{
ShowWindow(SW_SHOW);
}
в заголовочном файле диалога:
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CKBGProgDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void HideIn(); // фу-я HideIn();
afx_msg void OnDestroy();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
Удачи Vital.
|
| |
Эх.. Я ведь так и делал.. Странно. Че у меня не пашет. Кстати, у тебя в коде кое-чего не 28.05.01 17:48
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
Кое-чего не так. Хотя на это можно и не обращать внимания. То меня че-то подбило сказать. :-) Все равно хуже не будет.
(если это твоя прога)
У тебя в обработчике WM_HOTKEY не проверяется ID клавиши.
Вдруг потом добавишь еще одну ХОТ, придется переделывать. Лучше изначально делать дефайны и предусматривать все.. Это есть хороший стиль.
Но это я так, к слову. :-)
Слушай, скажи, я так понял что ты на MFC проги клепаешь. Вот интересно (для статистики), MFC ускоряет для тебя написание кода ?
|
| | |
[C++] Эх.. Я ведь так и делал.. Странно. Че у меня не пашет. Кстати, у тебя в коде кое-чего не 29.05.01 03:36
Автор: Vital Статус: Незарегистрированный пользователь
|
> Кое-чего не так. Хотя на это можно и не обращать внимания. > То меня че-то подбило сказать. :-) Все равно хуже не будет. > (если это твоя прога) > У тебя в обработчике WM_HOTKEY не проверяется ID клавиши. > Вдруг потом добавишь еще одну ХОТ, придется переделывать. > Лучше изначально делать дефайны и предусматривать все.. Это > есть хороший стиль. > Но это я так, к слову. :-) > Слушай, скажи, я так понял что ты на MFC проги клепаешь. > Вот интересно (для статистики), MFC ускоряет для тебя > написание кода ?
Что касается прог, то я сейчас их не особо клепаю.
Пока изучаю систему. А Visual C++ и MFC в частности,
начал изучать и использовать не так давно, так что для
статистики сказать ничего не могу.
А вообще меня больше привлекает программирование
больше приближенное к системному.
А ты как пишешь?
Vital.
|
| | | |
to Vital : 29.05.01 12:13
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> Что касается прог, то я сейчас их не особо клепаю. > Пока изучаю систему. А Visual C++ и MFC в частности, А я сейчас решил MFC заняться пока.
> А вообще меня больше привлекает программирование > больше приближенное к системному. Ага. :-) Самое оно. И меня так же. Можешь глянуть последний продукт - www.nmap.ru, раздел tools. TCP_LOGGER - размер файла - ~ 13 Kb. Чистое API. Исходники прилагаются. MVC 5.0.
|
| | | | |
Net programming 29.05.01 22:56
Автор: Vital Статус: Незарегистрированный пользователь
|
> > Что касается прог, то я сейчас их не особо клепаю. > > Пока изучаю систему. А Visual C++ и MFC в > частности, > А я сейчас решил MFC заняться пока. > > > А вообще меня больше привлекает программирование > > больше приближенное к системному. > Ага. :-) Самое оно. И меня так же. Можешь глянуть последний > продукт - www.nmap.ru, раздел tools. TCP_LOGGER - размер > файла - ~ 13 Kb. Чистое API. Исходники прилагаются. MVC > 5.0.
Привет.
Я вижу ты занимаешься сетевым программированием.
Это круто. Не мог бы ты подсказать источники и(или) лит-ру
по этой теме. Что-нибудь такое "глубокое" типа "Windows" Д.Рихтера.
Спасибо. Vital.
|
| | | | | |
Тогда лучше бы мыло оставил 30.05.01 11:57
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> Я вижу ты занимаешься сетевым программированием. > Это круто. Не мог бы ты подсказать источники и(или) лит-ру
Неа. Ничего такого я не припоминаю.
Я как-то так с этим всем разобрался... Хотя www.sources.ru тоже мне помог. Так переведенные RFC по протоколам некоторым лежат.
А вообще, разбирался я при помощи своей же проги (см. выше).
Так что, бери у меня вчерашнюю версию и вперед! :-) Она полностью протоколирует весь обмен сообщениями клиента с сервером.
|
| | | | | | |
Тогда лучше бы мыло оставил 30.05.01 12:09
Автор: Vital Статус: Незарегистрированный пользователь
|
> > Я вижу ты занимаешься сетевым программированием. > > Это круто. Не мог бы ты подсказать источники и(или) > лит-ру > > Неа. Ничего такого я не припоминаю. > Я как-то так с этим всем разобрался... Хотя www.sources.ru > тоже мне помог. Так переведенные RFC по протоколам > некоторым лежат. > А вообще, разбирался я при помощи своей же проги (см. > выше). > Так что, бери у меня вчерашнюю версию и вперед! :-) Она > полностью протоколирует весь обмен сообщениями клиента с > сервером.
Да мне бы разобраться с сокетами, функциями для них и портами
сначала.
E-mail: VitalH@yandex.ru
Vital.
|
| | |
А может RegisterHotKey не пашет если окно является диалоговым ? 28.05.01 18:27
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
|
| | | |
А может RegisterHotKey не пашет если окно является диалоговым ? 28.05.01 20:19
Автор: kabanchik Статус: Незарегистрированный пользователь
|
KMiNT,
Vital прав
не поленился проверил, все работает. и диалог тут не причем (именно на диалоге и проверил)
Hot Key регистрируется, и месаг ловится без проблем.
наверняка что то у тебя не так.
Возможно твой Key конфликтует с кем то.
Проверь еще раз, пропиши че нить не ординарное и попробуй отловить.
|
| | | | |
Всем Great сенкс! Глюк найнден. Правда я не понял его смысл.. :-)) (++) 29.05.01 12:10
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
Да, все пашет. Как тоьлко виртуал кей VK_F11 попробывал поставить вместо своей 't'.
Кстати, код возврата естественно был нормальный. Если бы конфликтовала, я бы видел. :-) А так просто не было мессаг WM_HOTKEY и все...
Не пойму, почему 't' нельзя написать ? Вроде тип данных DWORD нужно подствлять....
Ладно моя прога теперь выглядит так (и работает) :
......
#define Show_HotKey 1
...........
RegisterHotKey(hwndMain,Show_HotKey,MOD_ALT,VK_F12);
...........
//обработчик...
....
case WM_HOTKEY:
// а дальше уже проверки остальные.....
P.S. А если "RegisterHotKey(hwndMain,Show_HotKey,MOD_ALT,'t');" , или др. символ, нифига не приходят мессаги WM_HOTKEY... Хотя функ-я возвращает OK.
|
| | | | | |
[C++] Cмысл 29.05.01 18:55
Автор: Vital Статус: Незарегистрированный пользователь
|
> Да, все пашет. Как тоьлко виртуал кей VK_F11 попробывал > поставить вместо своей 't'. > Кстати, код возврата естественно был нормальный. Если бы > конфликтовала, я бы видел. :-) А так просто не было мессаг > WM_HOTKEY и все... > > Не пойму, почему 't' нельзя написать ? Вроде тип данных > DWORD нужно подствлять.... > > Ладно моя прога теперь выглядит так (и работает) : > > ...... > #define Show_HotKey 1 > ........... > RegisterHotKey(hwndMain,Show_HotKey,MOD_ALT,VK_F12); > ........... > > //обработчик... > .... > case WM_HOTKEY: > // а дальше уже проверки остальные..... > > > > P.S. А если > "RegisterHotKey(hwndMain,Show_HotKey,MOD_ALT,'t');" , или > др. символ, нифига не приходят мессаги WM_HOTKEY... Хотя > функ-я возвращает OK.
Пиши так:
RegisterHotKey(hwndMain,Show_HotKey,MOD_ALT,'T');
в этой ф-и надо использовать символы верхнего регистра,
т.к. сравнение идет именно по ним.
Vital.
|
| | | | | | |
Тю ты твою ... Ясно. А в доках что-то я не заметил об этом упоминания. 30.05.01 10:35
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
|
| | | | |
[C++] А может RegisterHotKey не пашет если окно является диалоговым ? 29.05.01 03:34
Автор: Vital Статус: Незарегистрированный пользователь
|
> KMiNT, > > Vital прав > > не поленился проверил, все работает. и диалог тут не причем > (именно на диалоге и проверил) > Hot Key регистрируется, и месаг ловится без проблем. > наверняка что то у тебя не так. > Возможно твой Key конфликтует с кем то. > Проверь еще раз, пропиши че нить не ординарное и попробуй > отловить.
На самом деле код, который я привел для горячей клавиши
у меня работает немного странно, а именно: при
нажатии горячей клавиши больше трех раз моя программа вызывает
ошибку в MFC42.DLL и аварийно завершается.
Я еще этой проблемой особо не занимался, и может эта моя ошибка,
а может нет?
Vital.
|
| | | | | |
[C++] А может RegisterHotKey не пашет если окно является диалоговым ? 29.05.01 19:31
Автор: kabanchik Статус: Незарегистрированный пользователь
|
Все так.
У меня он не летает ...стоит Win 2K
|
| | | | | | |
[C++] Ты считаешь это глюк моей системы или MFC42.DLL или Visual C++? 29.05.01 22:59
Автор: Vital Статус: Незарегистрированный пользователь
|
|
| | | | | | | |
[C++] Ты считаешь это глюк моей системы или MFC42.DLL или Visual C++? 30.05.01 01:46
Автор: kabanchik Статус: Незарегистрированный пользователь
|
да тут х поймешь сразу.
вообще я сторонник обновления того, что имеешь
поэтому, если у тебя WIndows NT, то скачай новый Service Pack. У тебя какая система? наверняка Windows 95/98, для них по моему патчи есть.
и еще в обязательном порядке Visual Studio Srvice Pack 6
не знаю у кого как, но я разничу чувствовал. совсем недавно один и тотже проект у меня компилился по разному, точнее компилился и линковался, но в одном случае он тут же вылетал, а в другом работал как надо - как вариант с RegisterHotKey. написал прогу, поставил компилиться на WinMe, он летал. сперва подумал разные системы и искал разницу в ф-иях, потом скачали новый СП и все решилось.
Вообще всем советую кто прочтет это сообщение - люди, поставьте новый VSSP, хотя он по размерам большой - около 133 Mb.
и еще, я смотрел твои мессаги - если хочешь занятся системным программированием и сетями под винд., в смесле широких возможностей, поставь Windows 2000. пусть это не звучит как наставление, просто добрый совет, потому что возможностей больше чем даже у NT. Хотя на Win 9X можешь написать VxD, что на System Based on NT Technoligy не сделаешь.
|
| | | | | | | | |
2Vital - Тогда для начала сделай все четко, потом глянь (я про "ошибки" писал выше - мож в этом все дело) 30.05.01 18:50
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> WinMe, он летал. сперва подумал разные системы и искал > разницу в ф-иях, потом скачали новый СП и все решилось. Да, прикол. :-)
> возможностей больше чем даже у NT. Хотя на Win 9X можешь > написать VxD, что на System Based on NT Technoligy не > сделаешь.
???
Не понял. Почему ??
|
| | | | | | | | | |
ответ 30.05.01 19:19
Автор: kabanchik Статус: Незарегистрированный пользователь
|
> > WinMe, он летал. сперва подумал разные системы и искал > > разницу в ф-иях, потом скачали новый СП и все > решилось. > Да, прикол. :-) > > > возможностей больше чем даже у NT. Хотя на Win 9X > можешь > > написать VxD, что на System Based on NT Technoligy не > > сделаешь. > > ??? > Не понял. Почему ??
потому что Virtual Driver - базируется на 9х. NT и 9x - это все таки разные технологии. у Virtual Driver есть принципиальные отличия, которые не пройдут под NT.
|
| | | | | | | | | | |
VxD - virtual device driver например - VKD - Virt.Keyboard Dr., VDD - Virt. Display. (это к слову :)) Пишутся и для НТ, и для Win9x. 31.05.01 13:09
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
|
> > > написать VxD, что на System Based on NT > Technoligy не > > > сделаешь. > > > > ??? > > Не понял. Почему ?? > > потому что Virtual Driver - базируется на 9х. NT и 9x - это > все таки разные технологии. у Virtual Driver есть > принципиальные отличия, которые не пройдут под NT.
?? Я не понял. Ты хочешь сказать что VxD под НТ не пишутся ??? :))
Чего-то я тебя понять никак не могу.
|
|
|