vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Tastenkombinationen an Fremdes Programm senden? 
Autor: VBMichi
Datum: 21.10.06 13:41

Hotkeys bzw. Shortcuts registrieren:

Form1
Command1

Private Declare Function SendMessage Lib "user32" _
        Alias "SendMessageA" (ByVal hwnd As Long, _
        ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
 
Const VK_F1 = &H70
Const VK_F2 = &H71
Const VK_F3 = &H72
Const VK_F4 = &H73
'etc...
 
Const WM_SETHOTKEY = &H32
 
Private Sub Command1_Click()
  Call SendMessage(Me.hwnd, WM_SETHOTKEY, VK_F4, 0&)
  Me.WindowState = 1
  MsgBox "Schließ diese Mesagebox und " _
        & "betätige danach die F4-Taste!"
End Sub[/code
 
Komplexe Tastenkombis als Hotkey registrieren:
 
Form1
Command1
Modul1
 
Form:
 
<pre><code>Option Explicit
 
Private Sub Form_Load()
    Call SetHotKey(Me.hWnd, &H1 + &H2, &H77) '<-- Tasten die du zusammen drückst
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    Call RemoveHotKey
End Sub
 
Private Sub Command1_Click()
    App.TaskVisible = False
    Me.Hide
End Sub
Modul:

Option Explicit
 
Private Declare Function RegisterHotKey Lib "user32" (ByVal _
        hWnd As Long, ByVal id As Long, ByVal fsModifiers As _
        Long, ByVal vk As Long) As Long
 
Private Declare Function UnregisterHotKey Lib "user32" (ByVal _
        hWnd As Long, ByVal id As Long) As Long
 
Private Declare Function CallWindowProc Lib "user32" Alias _
        "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal _
        hWnd As Long, ByVal Msg As Long, ByVal wParam As _
        Long, ByVal lParam As Long) As Long
 
Private Declare Function SetWindowLong Lib "user32" Alias _
        "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex _
        As Long, ByVal dwNewLong As Long) As Long
 
Private Declare Function GlobalDeleteAtom Lib "kernel32" _
        (ByVal nAtom As Integer) As Integer
 
Private Declare Function GlobalAddAtom Lib "kernel32" Alias _
        "GlobalAddAtomA" (ByVal lpString As String) As Integer
 
Const GWL_WNDPROC As Long = (-4&)
Const WM_HOTKEY As Long = &H312&
 
Public Enum ModKeys
    MOD_ALT = &H1
    MOD_CONTROL = &H2
    MOD_SHIFT = &H4
    MOD_WIN = &H8
End Enum
 
Private OldProc As Long, hOwner As Long
Private iAtom As Integer
 
Public Sub SetHotKey(hWnd As Long, ModKey As ModKeys, _
                          vKey As Long)
 
    hOwner = hWnd
 
    iAtom = GlobalAddAtom("MyHotKey")
    Call RegisterHotKey(hOwner, iAtom, ModKey, vKey)
 
    OldProc = SetWindowLong(hOwner, GWL_WNDPROC, _
              AddressOf WndProc)
 
End Sub
 
Public Sub RemoveHotKey()
    If hOwner = 0 Then Exit Sub
    Call UnregisterHotKey(hOwner, iAtom)
    Call SetWindowLong(hOwner, GWL_WNDPROC, OldProc)
    Call GlobalDeleteAtom(iAtom)
End Sub
 
Public Function WndProc(ByVal hWnd As Long, _
        ByVal wMsg As Long, ByVal wParam As Long, _
        ByVal lParam As Long) As Long
 
    If wMsg = WM_HOTKEY And wParam = iAtom Then
        Form1.Show
    Else
        WndProc = CallWindowProc(OldProc, hWnd, wMsg, wParam, lParam)
    End If
End Function
Grüße
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tastenkombinationen an Fremdes Programm senden?2.482Eun21.10.06 10:54
Re: Tastenkombinationen an Fremdes Programm senden?2.098VBMichi21.10.06 13:41
Re: Tastenkombinationen an Fremdes Programm senden?1.993VBMichi21.10.06 13:44
Re: Tastenkombinationen an Fremdes Programm senden?2.533mm78pr21.10.06 15:25
Re: Tastenkombinationen an Fremdes Programm senden?2.014Eun21.10.06 15:37
Re: Tastenkombinationen an Fremdes Programm senden?2.127mm78pr21.10.06 15:50
Re: Tastenkombinationen an Fremdes Programm senden?2.035Eun21.10.06 16:13
Re: Tastenkombinationen an Fremdes Programm senden?2.002mm78pr21.10.06 16:49
Re: Tastenkombinationen an Fremdes Programm senden?2.016Eun22.10.06 16:25
Re: Tastenkombinationen an Fremdes Programm senden?1.998Prinzvalium26.10.06 17:58
Re: Tastenkombinationen an Fremdes Programm senden?2.014Eun27.10.06 19:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel