Страница: 1 | 2 |
Вопрос: Winamp & лампочки на клаве
Добавлено: 25.01.07 18:22
Автор вопроса: Stars
Спасибоньки всем по любому!
Ответы
Всего ответов: 20
Номер ответа: 1
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #1
Добавлено: 25.01.07 18:36
Попробуй SendKeys "нужная клавиша например:Caps Lock"
Номер ответа: 2
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #2
Добавлено: 25.01.07 18:38
И запихни в таймер с нужным интервалом.
А чтобы под музон, где то модуль был чтобы с винампом работать может там что поможет...
Я ссылку поищу на модуль
Номер ответа: 3
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #3
Добавлено: 25.01.07 18:41
Не раньше на Delphi был пример гдето более гуманный там я помню функция вызывалась кокаято а потом указывался номер лампочки 1...3
А если SendKeys использовать то в других приложениях путоница будет
Номер ответа: 4
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #4
Добавлено: 25.01.07 18:44
Нуна чтото что будет вызывать мигание без нарушения функциональности клавиш типа Caps Lock
Номер ответа: 5
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #5
Добавлено: 25.01.07 18:58
А на delphi какая функция?
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 25.01.07 19:51
SendInput
Номер ответа: 7
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #7
Добавлено: 25.01.07 21:43
вот откопал пример
Как програмно переключить состояние клавиш Num Lock, Caps Lock, Scroll Lock?
VAR
KS: TKeyboardState;
begin
GetKeyboardState(KS);
KS[020] := KS[020] XOR 1; //Caps Lock
KS[144] := KS[144] XOR 1; //Num Lock
KS[145] := KS[145] XOR 1; //Scroll Lock
SetKeyboardState(KS);
end
Но я видел гдето другой более подходящий а где не помню
Если кто может как исходя из этого примера можно вот это сделать только на Vb
Номер ответа: 8
Автор ответа:
Djon
Вопросов: 61
Ответов: 471
Web-сайт:
Профиль | | #8
Добавлено: 25.01.07 21:47
помоему этот пример не далеко ушёл от SendKeys
Номер ответа: 9
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #9
Добавлено: 25.01.07 22:19
При помощи SendKeys чтото не выходит
Писал
SendKeys chr$(20), True
Номер ответа: 10
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #10
Добавлено: 25.01.07 22:19
Как должно быть?
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 26.01.07 01:28
#include <string>
#define _WIN32_WINNT 0x0500
#include <windows.h>
using namespace std;
void PressKey(WORD vk){
INPUT input;
memset(&input, 0, sizeof(input));
input.type = INPUT_KEYBOARD;
input.ki.wVk = vk;
input.ki.dwFlags = 0;
SendInput(1, &input, sizeof(input));
input.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &input, sizeof(input));
}
void numlock(bool on){
SHORT nl = GetKeyState(VK_NUMLOCK);
if((nl & 1) != on) PressKey(VK_NUMLOCK);
}
void capslock(bool on){
SHORT nl = GetKeyState(VK_CAPITAL);
if((nl & 1) != on) PressKey(VK_CAPITAL);
}
void scrolllock(bool on){
SHORT nl = GetKeyState(VK_SCROLL);
if((nl & 1) != on) PressKey(VK_SCROLL);
}
int main(){
string s;
bool k[3] = {true, false, false};
int i = 0;
while(true){
k[i] = !k[i];
k[i+1)%3] = !k[i+1)%3];
i++;
numlock(k[0];
capslock(k[1];
scrolllock(k[2];
Sleep(100);
}
return 0;
}
Номер ответа: 12
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #12
Добавлено: 26.01.07 11:42
а на VB?
Номер ответа: 13
Автор ответа:
Stars
Вопросов: 41
Ответов: 239
Профиль | | #13
Добавлено: 26.01.07 11:43
Pliz!
Номер ответа: 14
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #14
Добавлено: 26.01.07 12:12
Тебя должно интересовать
Private Const VK_CAPITAL = &H14
Private Const VK_SCROLL = &H91
Private Const VK_NUMLOCK = &H90
В таймер сам засунешь...
Option Explicit
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_CAPITAL = &H14
Private Const VK_SCROLL = &H91
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
' API declarations:
Private Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
 lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" _
 ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _
 pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _
 lppbKeyState As Byte) As Long
Code:
Public Sub ToggleCapsLock(TurnOn As Boolean)
'To turn capslock on, set turnon to true
'To turn capslock off, set turnon to false
Dim bytKeys(255) As Byte
Dim bCapsLockOn As Boolean
'Get status of the 256 virtual keys
GetKeyboardState bytKeys(0)
bCapsLockOn = bytKeys(VK_CAPITAL)
Dim typOS As OSVERSIONINFO
If bCapsLockOn <> TurnOn Then 'if current state <>
'requested stae
If typOS.dwPlatformId = _
VER_PLATFORM_WIN32_WINDOWS Then '=== Win95/98
bytKeys(VK_CAPITAL) = 1
SetKeyboardState bytKeys(0)
Else '=== WinNT/2000
'Simulate Key Press
keybd_event VK_CAPITAL, &H45, _
KEYEVENTF_EXTENDEDKEY Or 0, 0
'Simulate Key Release
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY _
Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub
Номер ответа: 15
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #15
Добавлено: 26.01.07 12:13
Да, и перед использованием выкини слово "Code:"