Вопрос № 24025: Здравствуйте.
Вопрос по Microsoft Visual Basic 6.0
1)Как сделать к программе горячие клавиши, чтоб даже когда программа работала в скрытом режиме клавиши действовали. Я задавал такой вопрос, и мне на него ответили двое. Один указал на сайт на...
Вопрос № 24.025
Здравствуйте.
Вопрос по Microsoft Visual Basic 6.0
1)Как сделать к программе горячие клавиши, чтоб даже когда программа работала в скрытом режиме клавиши действовали. Я задавал такой вопрос, и мне на него ответили двое. Один указал на сайт на котором я побывал конечно, но ничего не понял и не получилось, а второй предложил использовать таймер но тоже не получилось. Объясните пожалуйста в подробностях как это делать, очень надо, но сделать не могу!
2)Как в Microsoft Visual Basic 6.0 сделать чтоб компьютер выключался и перезагружался? Какие операторы использовать? Приведите пример если не трудно.
3)Какой бы вы посоветовали использовать установочник для своих программ, и укажите где можно скачать, но чтоб весил не очень много.
Отправлен: 25.07.2005, 22:29
Вопрос задал: Дмитрий Хаймин (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: _Виталий
Здравствуйте, Дмитрий Хаймин!
1. Ну попробуй теперь этот пример:
См. Приложение 1
2. Вот по этой фигне много примеров в инете. Перезагрузка/выключение делаются на API функциях.
Это для win98, хотя мож и на некоторых NT-системах работает ;-)
http://www.sources.ru/vb/system/reboot_windows.shtml
А этот пример(Приложение 2) только для NT-систем, зато комп выключается быстрее чем на 98 винде ;-)
Пробуй(или найди в инете) изменять параметр функции ZwShutdownSystem(X) и получишь нормальное выключение/перезагрузка компьютера, под рукой просто нет у меня описания функции.
См. Приложение 2
3. Напиши свой! Заткни в него файл ресурсов, в который напихай всё что нужно установить и получившийся инсталятор сожми каким-нить EXE-пакером. На 99.9% виндовых машин msvbvm60.dll присутствует, а значит инсталятор работать будет.
Приложение:
Ответ отправил: _Виталий (статус: 4-ый класс)
Отправлен: 26.07.2005, 09:20
Отвечает: Licvidator
Здравствуйте, Дмитрий Хаймин!
Неплохо было бы, если бы Вы привели ответы этих экспертов, чтоб мы могли ориентироваться и не писать одно и то же по два раза. Итак,
1. Пример кода:
Private Sub Timer19_Timer()
Dim i As Integer
If (GetAsyncKeyState(vbKeyControl)) And (GetAsyncKeyState(vbKeyT)) Then
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'Отпускаем Ctrl
Call keybd_event(vbKeyT, 0, KEYEVENTF_KEYUP, 0) ' Отпускаем T
'тут Вы опишите те действия, которые необходимо совершить программе при нажатии Ctrl+T
End If
End Sub
Значение таймера выставляете 10-50мс.
В начале кода формы (или в модуле) объявляете АПИ-функцию GetAsyncKeyState:
Public Declare Function GetAsyncKeyState Lib "USER32" (ByVal vKey As Long) As Integer
При этом если в модуле, то Public, иначе - Private.