08. oktober 2001 - 13:36Der er
6 kommentarer og 1 løsning
knap funktion ?
hvordan gør man sådan at ens program \"popper up\" når der bliver trykket på F12, jeg ved godt man for programmet til at gøre noget når der bliver trykket på en knap, men ikke når programmet ikke er aktivt. på forhånd tak :)
Det er jeg ret sikker på ikke er muligt... Ellers skal du have et andet lille program til at ligge i baggunden (usynligt) som kan opfange tastetryk og derefter starte dit program.. Eller noget lignende
Programmet skal være startet, men skal ikke have fokus. Når du trykker F12 popper det op.
I din form: Private Sub Form_Load() Me.WindowState = vbMinimized \'Let windows know what hotkey you want for \'your app, setting of lParam has no effect \'erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0) erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_F12, 0) \'Check if succesfull If erg& <> 1 Then MsgBox \"You need another hotkey\", vbOKOnly, \"Error\" End If
\'Tell windows what it should do, when the hotkey \'is pressed -> show the window! \'The setting of wParam and lParam has no effect
erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0) End Sub
I et modul:
Option Explicit
Declare Function SendMessage Lib \"user32\" Alias _ \"SendMessageA\" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Long) As Long
Declare Function DefWindowProc Lib \"user32\" _ Alias \"DefWindowProcA\" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long
Public Const WM_SETHOTKEY = &H32 Public Const WM_SHOWWINDOW = &H18 Public Const HK_SHIFTA = &H141 \'Shift + A Public Const HK_SHIFTB = &H142 \'Shift * B Public Const HK_CONTROLA = &H241 \'Control + A Public Const HK_ALTZ = &H45A Public Const HK_F12 = 123 \' (F12)
\'The value of the key-combination has to \'declared in lowbyte/highbyte-format
\'That means as a hex-number: the last two \'characters specify the lowbyte (e.g.: 41 = a), \'the first the highbyte (e.g.: 01 = 1 = Shift)
hvordan insteller man andre taster er der et sted på nettet hvor: erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_F12, 0) kombinationen for de andre taster er ?
Private Declare Function GetAsyncKeyState Lib \"user32\" (ByVal vKey As Long) As Integer
Private Sub Form_Activate() Dim KeyResult As Integer Dim i As Long Do DoEvents For i = 0 To 255 KeyResult = GetAsyncKeyState(i) If KeyResult = -32767 Then If i = 123 Then Me.WindowState = 0 \'F12 = 123 Me.Caption = i \'Brugs til test Exit For End If Next i Loop End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) End \'For at lukke programmet helt (Form_Activate Do) End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.