jordan1 Posted May 5, 2006 Report Share Posted May 5, 2006 I am trying to use a macro to control VisualBoy Advance (a game emulator which uses keyboard input) but cannot get it to work. I heard that DirectX can disable keyboard hooks in macros, so I tried using VBA SDL version and resetting the hooks. I have used a virtual controller to emulate the keys and this works so there seems to be no general inability for VBA to work with virtual devices but it will not recognise macro keystrokes. Does anyone know what the issue might be? (The difference between physical keystrokes and emulated ones as detected by VBA?) Or can anyone tell me a little about how inputting works on VBA/game interfaces (or point me in the direction of finding the solution)? Thanks. Quote Link to comment Share on other sites More sharing options...
lemming Posted May 8, 2006 Report Share Posted May 8, 2006 It is likely that the emulator has installed its own keyboard hook after Macex, which means it will intercept keystrokes before Macex. You can try Macex's Restore Keyboard and Mouse Hooks command after the emulator has loaded. This is accessible by right-clicking on the Macex icon in the tray. Quote Link to comment Share on other sites More sharing options...
chris Posted May 8, 2006 Report Share Posted May 8, 2006 One other thing to consider is that SDL generally uses the DirectInput interface (the input mechanism for DirectX) on Windows machines. So, getting it to work in VBA SDL is not really the same as getting it to work in Macro Express as DirectInput bypasses the hooks completely. Quote Link to comment Share on other sites More sharing options...
jordan1 Posted May 8, 2006 Author Report Share Posted May 8, 2006 Thanks for the tips, it's made things a lot clearer. IO tried rstoring the hooks but I didn't realise that SDL uses DirectInput. Thanks again Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.