Seite 2 von 2

Verfasst: 09.08.2007 17:35
von PBZecke
Brauchste auch nur zwei übergeben. In Deiner procedure HotkeyCallback Wparam und lparam sind die Werte die du dann bei msg #WM_HOTKEY übergeben bekommst

Also #WM_HOTKEY abfangen und dann Dein wparam auslesen

Verfasst: 09.08.2007 18:03
von dysti
so funktioniert es (PB ab 4.0):

Code: Alles auswählen

#Hauptfenster=0

Global HotkeyStrgC ,HotkeyStrgX,HotkeyStrgV

Procedure HotkeyCallback(hwnd, msg, wParam, lParam)
  result = #PB_ProcessPureBasicEvents
  Select msg
      Case #WM_HOTKEY
      If wParam=HotkeyF5:   
      MessageRequester("Info", "HotkeyF5")
      ElseIf wParam=HotkeyStrgX:
      MessageRequester("Info", "HotkeyStrgX")
      ElseIf wParam=HotkeyStrgC:
      MessageRequester("Info", "HotkeyStrg")
      ElseIf wParam=HotkeyStrgV:   
      MessageRequester("Info", "HotkeyStrgV")
      EndIf
    EndSelect
    ProcedureReturn result
EndProcedure


If OpenWindow(#Hauptfenster, 100, 200, 900, 500, "Seitentitel", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_Maximize)
 
  CreateGadgetList(WindowID(#Hauptfenster))
 
    ;HotkeyF5 = GlobalAddAtom_("F5")
    HotkeyStrgX = GlobalAddAtom_("Strg-X")
    HotkeyStrgC = GlobalAddAtom_("Strg-C")
    HotkeyStrgV = GlobalAddAtom_("Strg-V")

    ;RegisterHotKey_(WindowID(#Hauptfenster), HotkeyF5, #VK_F5)
    
    If RegisterHotKey_(WindowID(#Hauptfenster), HotkeyStrgX, #MOD_CONTROL , #VK_X)
    MessageRequester("Info", "HotKeys sind initialisiert")
    Else
    MessageRequester("Info", "Hotkey nicht initialisiert")
    EndIf
    RegisterHotKey_(WindowID(#Hauptfenster), HotkeyStrgC, #MOD_CONTROL , #VK_C)
    RegisterHotKey_(WindowID(#Hauptfenster), HotkeyStrgV, #MOD_CONTROL , #VK_V)

    SetWindowCallback(@HotkeyCallback())

    Repeat
    Event = WaitWindowEvent()
   
    Select Event
      Case #PB_Event_Gadget
     
        Select EventGadget()
   
        EndSelect   
     
    EndSelect
     
  Until Event = #PB_Event_CloseWindow
   
EndIf

Verfasst: 09.08.2007 18:05
von DerProgrammierer78
Und wie erkennt der dann, welcher Hotkey nun aktiviert wurde ? Weil irgendwie muss ich die ja mit Select und Case auswerten können oder ?

Ich bin irgendwie irritiert :freak:

Verfasst: 09.08.2007 18:17
von DerProgrammierer78
Hallo dysti,

Bei deinem Beispiel sagt er zwar, dass die Hotkeys installiert sind, aber sie funktionieren leider nicht ...

Liegt das evtl. daran, dass ich PB 4.1 Beta 2 nutze ?

Verfasst: 09.08.2007 18:19
von dysti
Es muste diese Zeile noch eingefügt werden. Habe es oben geändert.

Code: Alles auswählen

Global HotkeyStrgC ,HotkeyStrgX,HotkeyStrgV

Verfasst: 09.08.2007 19:03
von DerProgrammierer78
Super ... danke !!! das klappt nun .... !!!