куча вопросов... по API

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

куча вопросов... по API

Сообщение drronnie » 06.06.2003 (Пт) 0:30

1.
Значится есть программа (не формы ничего... типа сервис) там надо использовать SetTimer а один из его параметроц - дескриптор (hWnd) если бы была форма - пишим Me.hWnd - и нет проблем.... но форм нет - что делать?

2.
Есть мультимедийная клава (SVEN Ergonomic 2500) как в программе отлавливать нажатия мультимедийных клавиш? Наверно хук надо юзать... вот бы конкретнее...

3. Кто нибудь когда-нидь работад с RAS? Вот из API-Guide пример у меня ни пашет:((
Компиляция - перевод словесного поноса в машинный код.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.06.2003 (Пт) 10:47

1. Добавить невидимую форму.
2. Функция GetKeyboardState юзает массив из 255 элементов, может там есть и нужные тебе клавиши, не знаю.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 06.06.2003 (Пт) 11:14

Значит по поводу первого вопроса:

Форма для таймера необязательна

Пиши так:

TimerID = SetTimer(0, ЛюбоеЧисло, TimerInterval, AddressOf TimerSub)

TimerID - должна быть глобальная переменная

Потом в модуле пишешь функцию:
Код: Выделить всё
Sub TimerSub(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)

if uElapse = TimerID then
'Здеся обрабатываешь свой таймер

'Для того чтобы убить используй KillTimer hWnd, uElapse
'Я сам не мог понять логику параметра uElapse, но работает.
End if

End sub


Подобный код работет у меня в CorelDRAW VBA, а там формы и не знают что такое hWnd

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 07.06.2003 (Сб) 1:11

GSerg писал(а):1. Добавить невидимую форму.
2. Функция GetKeyboardState юзает массив из 255 элементов, может там есть и нужные тебе клавиши, не знаю.

Во-первых - нет формы... зачем геморр?... а на счёт второго вопроса - пробовал - ничего не выходит :(
Компиляция - перевод словесного поноса в машинный код.

TRUST
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 192
Зарегистрирован: 22.08.2002 (Чт) 20:24
Откуда: Orel

Сообщение TRUST » 09.06.2003 (Пн) 0:09

В DirectInput много констант типа Play/Pause, Stop, Next Track, etc.
Посмотри, может там есть нужные тебе кнопки. Могу прислать константы (там они не ASCII) и функции для работы с DInput.
Кто юзал мой аккаунт и весь его выюзал?!!

zzoom
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 13.06.2003 (Пт) 10:29
Откуда: Рига

Сообщение zzoom » 13.06.2003 (Пт) 11:11

В дополнение к ответу X-BOND (просто окна с хэндлом ЛюбоеЧисло может и не найтись)
В Declarations вставляешь:
Код: Выделить всё
Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long

Потом вызываешь:
Код: Выделить всё
TimerID = SetTimer(0, GetDesktopWindow, TimerInterval, AddressOf TimerSub)

TRUST
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 192
Зарегистрирован: 22.08.2002 (Чт) 20:24
Откуда: Orel

Сообщение TRUST » 13.06.2003 (Пт) 20:57

Кстати, а что такое RAS?
Кто юзал мой аккаунт и весь его выюзал?!!

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 14.06.2003 (Сб) 8:37

TRUST писал(а):Кстати, а что такое RAS?

Remote Access
Удаленный доступ
Moderator VBStreets
---------------------------

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 14.06.2003 (Сб) 10:11

В дополнение к ответу X-BOND (просто окна с хэндлом ЛюбоеЧисло может и не найтись)
В Declarations вставляешь:
Код:
Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long

Потом вызываешь:
Код:
TimerID = SetTimer(0, GetDesktopWindow, TimerInterval, AddressOf TimerSub)


Я всегда ставил 99 и всегда работало. По идее вообще можно 0 поставить.

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 16.06.2003 (Пн) 0:37

Спасибо за "про таймер"... всем спасибо....
А вот на счёт RAS? Почему пример из API-Guide не рулит?
Пробовал сам что-то поправить... не фига... кто нидь может подсказать работающий примерчик?!
Компиляция - перевод словесного поноса в машинный код.


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

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

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

    TopList