Seite 1 von 1

Umstieg auf x64-Version

Verfasst: 12.06.2010 15:49
von Angelo
Hallo,
mit dem Release von PB 4.50 und mit meinem Kauf eines Windows-7-Rechners bin ich auf die 64-Bit-Version umgestiegen. Aber gleich mein erstes Testprogramm, welches die Api-Funktion RegisterHotKey() benutzt, funktioniert nicht mehr, d. h. das Drücken der Hotkeys bewirkt nichts. Hier ist der Code. Wenn jemand eine Idee hat, woran das liegen könnte, wäre das toll!

Code: Alles auswählen

Global quit.b = #False
Global MyHotkeyA
Global MyHotkeyQ


Procedure MyHotkeyCallback(hwnd, msg, wParam, lParam)
  result = #PB_ProcessPureBasicEvents
  Select msg
      Case #WM_HOTKEY
         If wParam=MyHotkeyA
            MessageRequester("Info", "Buchstabe A wurde gedrückt!")
         EndIf
         ;
         If wParam =MyHotkeyQ
            MessageRequester("Info", "Buchstabe Q wurde gedrückt und Programm wird beendet!")
            quit = #True
         EndIf
  EndSelect
  ProcedureReturn result
EndProcedure

#window_0 = 0

OpenWindow(#window_0,200,200,600,400, "Test Hotkey", #PB_Window_SystemMenu)

MyHotkeyA = GlobalAddAtom_("HotA") 
MyHotkeyQ = GlobalAddAtom_("HotB")

RegisterHotKey_(WindowID(#window_0), MyHotkeyA, #Null, #VK_A) 
RegisterHotKey_(WindowID(#window_0), MyHotkeyQ, #Null, #VK_Q)

SetWindowCallback(@MyHotkeyCallback())

Repeat
    Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow Or quit = #True
 
UnregisterHotKey_(WindowID(#window_0), MyHotkeyA)
UnregisterHotKey_(WindowID(#window_0), MyHotkeyQ)

End

Re: Umstieg auf x64-Version

Verfasst: 12.06.2010 16:13
von - chris -
Mit 64Bit funktioniert es bei mir, nur mit Unicode.
Mit 32Bit funktioniert es, mit und ohne Unicode.

Re: Umstieg auf x64-Version

Verfasst: 12.06.2010 16:17
von edel
Ein ATOM ist nur 2 Byte gross und nicht 4 oder gar 8 Byte.

Code: Alles auswählen

Global MyHotkeyA.w
Global MyHotkeyQ.w

Re: Umstieg auf x64-Version

Verfasst: 12.06.2010 16:29
von Angelo
@edel: Vielen Dank! Darauf wäre ich nie gekommen ....

Re: Umstieg auf x64-Version

Verfasst: 13.06.2010 14:28
von Mok
Mich wundert's trotzdem, dass es geht, es heißt ja Win32API, nicht Win64API... irgendjemand muss mir das jetzt erklären.

Re: Umstieg auf x64-Version

Verfasst: 13.06.2010 14:32
von Thorium
Mok hat geschrieben:Mich wundert's trotzdem, dass es geht, es heißt ja Win32API, nicht Win64API... irgendjemand muss mir das jetzt erklären.
Eigentlich heisst es nur WinAPI. :mrgreen:

Re: Umstieg auf x64-Version

Verfasst: 13.06.2010 14:33
von Mok
Thorium hat geschrieben:
Mok hat geschrieben:Mich wundert's trotzdem, dass es geht, es heißt ja Win32API, nicht Win64API... irgendjemand muss mir das jetzt erklären.
Eigentlich heisst es nur WinAPI. :mrgreen:
Und die Hilfedatei hei0t Win32.hlp :?

Re: Umstieg auf x64-Version

Verfasst: 13.06.2010 14:38
von ts-soft
Mok hat geschrieben:Und die Hilfedatei hei0t Win32.hlp :?
Die sollte eher Win9x_32.hlp heissen :bounce:
Das alte Ding wird seid Jahren nicht mehr unterstützt, genauso wie das
hlp - Format ansich.
Windows SDK Documentation heißt es, bzw. PSDK oder MSDN :wink:

Re: Umstieg auf x64-Version

Verfasst: 13.06.2010 14:43
von Thorium
Mok hat geschrieben:
Thorium hat geschrieben:
Mok hat geschrieben:Mich wundert's trotzdem, dass es geht, es heißt ja Win32API, nicht Win64API... irgendjemand muss mir das jetzt erklären.
Eigentlich heisst es nur WinAPI. :mrgreen:
Und die Hilfedatei hei0t Win32.hlp :?
Die ist ja auch veraltet und wird schon seid ewigkeiten nicht mehr von Microsoft unterstützt.