by みどるべあ » 2006年6月16日(金) 23:08
コード: 全て選択
Declare Function RegisterHotKey lib "user32.dll" (ByVal hWnd As HWND,ByVal id As Long,ByVal dwModufuers As DWord,ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As HWND,ByVal id As Long) As Long
Dim wcl As WNDCLASSEX
wcl.cbSize=Len(wcl)
wcl.hInstance=GetModuleHandle(0)
wcl.lpszClassName="DUMMY"
wcl.lpfnWndProc=AddressOf(DummyWndProc)
RegisterClassEx(wcl)
Dim uID As Long
uID=&HF000
CreateWindowEx(0,"DUMMY","dummy",0,0,0,0,0,0,0,GetModuleHandle(0),0)
Dim msg As MSG
While GetMessage(msg,0,0,0)=1
TranslateMessage(msg)
DispatchMessage(msg)
Wend
End
Function DummyWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
Select Case dwMsg
Case WM_DESTROY
UnregisterHotKey(hWnd,uID)
PostQuitMessage(0)
Case WM_CREATE
RegisterHotKey(hWnd,uID,0,VK_F12)
Case WM_CLOSE
DestroyWindow(hWnd)
Case WM_HOTKEY
If HIWORD(lParam)=VK_F12 Then
MessageBox(hWnd,"F12を押しましたね。","",MB_SYSTEMMODAL)
End If
Case Else
DummyWndProc=DefWindowProc(hWnd,dwMsg,wParam,lParam)
Exit Function
End Select
DummyWndProc=DefWindowProc(hWnd,dwMsg,wParam,lParam)
End Function
そんなに難しくなかったり…
[code]Declare Function RegisterHotKey lib "user32.dll" (ByVal hWnd As HWND,ByVal id As Long,ByVal dwModufuers As DWord,ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As HWND,ByVal id As Long) As Long
Dim wcl As WNDCLASSEX
wcl.cbSize=Len(wcl)
wcl.hInstance=GetModuleHandle(0)
wcl.lpszClassName="DUMMY"
wcl.lpfnWndProc=AddressOf(DummyWndProc)
RegisterClassEx(wcl)
Dim uID As Long
uID=&HF000
CreateWindowEx(0,"DUMMY","dummy",0,0,0,0,0,0,0,GetModuleHandle(0),0)
Dim msg As MSG
While GetMessage(msg,0,0,0)=1
TranslateMessage(msg)
DispatchMessage(msg)
Wend
End
Function DummyWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
Select Case dwMsg
Case WM_DESTROY
UnregisterHotKey(hWnd,uID)
PostQuitMessage(0)
Case WM_CREATE
RegisterHotKey(hWnd,uID,0,VK_F12)
Case WM_CLOSE
DestroyWindow(hWnd)
Case WM_HOTKEY
If HIWORD(lParam)=VK_F12 Then
MessageBox(hWnd,"F12を押しましたね。","",MB_SYSTEMMODAL)
End If
Case Else
DummyWndProc=DefWindowProc(hWnd,dwMsg,wParam,lParam)
Exit Function
End Select
DummyWndProc=DefWindowProc(hWnd,dwMsg,wParam,lParam)
End Function[/code]
そんなに難しくなかったり…