What api decls would you use to...
Blitz3D Forums/Blitz3D Programming/What api decls would you use to...
| ||
turn on/off capslock, num and scroll? |
| ||
GDI32? |
| ||
Hehe after a bit of reading i declsd my own for those that want it. Its just for numlock at the mo but you could easily add the other two: The Decls: .lib "kEYLOCKER.dll." SetNumLock%(numlock_state%): "SetNumLock" Header: #ifndef __MAIN_H__ #define __MAIN_H__ #ifdef _MSC_VER #define EXPORT __declspec(dllexport) #else #define EXPORT #endif extern "C" { EXPORT int SetNumLock( int state ); } #endif // __MAIN_H__ CPP: #include <main.h> #include <Windows.h> EXPORT int SetNumLock( int state ) { bool bState; if (state==0) bState=false; else bState=true; BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (bState && !(keyState[VK_NUMLOCK] & 1)) || (!bState && (keyState[VK_NUMLOCK] & 1)) ) { // Simulate a key press keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); // Simulate a key release keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } if (!keyState[VK_NUMLOCK]) return 1; return (1); } If you are wondering why i am turning it into ints its because of some stupid marshalling bug on windows. |
| ||
or...; user32.decls ; ; api_keybd_event (bVk%, bScan%, dwFlags%, dwExtraInfo%) : "keybd_event" ; api_GetKeyState% (nVirtKey%) : "GetKeyState" Const VK_NUMLOCK = 144 Const KEYEVENTF_KEYUP = 2 Graphics3D 800,500,0,2 cam=CreateCamera() PositionEntity cam,0,0,-5 cube=CreateCube() Repeat TurnEntity cube,.2,.2,.2 If MouseHit(1) Then ToggleNumLock() RenderWorld state=api_GetKeyState(VK_NUMLOCK) Text 10,10,"hit left mousebutton to toggle NUMLOCK" Text 10,30,"NUMLOCK = "+Str(state) Delay 10 Flip Until KeyHit(1) End Function ToggleNumLock() api_keybd_event(VK_NUMLOCK,0,0,0) api_keybd_event(VK_NUMLOCK,0,KEYEVENTF_KEYUP,0) End Function |
| ||
Yeah that would have been easier. :) |
| ||
whats w/ the numlock? LMAO. why not do something constructive, like activate a webcam on a texture, and texture that image to a 3d object like a cube? and do it over tcp/udp so it can be broadcasted in an mmo? ive ALWAYS wanted to do that! :P |
| ||
I gave the same suggestion as Chi over in the BlitzPlus forum, and then came here to see what you had cooked up and thought "oh wow I must be missing something here." |
| ||
whats w/ the numlock? LMAO. why not do something constructive, like activate a webcam on a texture, and texture that image to a 3d object like a cube? and do it over tcp/udp so it can be broadcasted in an mmo? ive ALWAYS wanted to do that! :P rez there you go, thats your task for the week :D |
| ||
Does it also turn on/off the numlock etc. LED? If so, then i could make one of those old msdos days 3-LED-Lights Disco effect thingies. also known as a 3 Monochrome pixel screen extension :). BTW thanks chi and D4NM4N, useful stuff. |