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. |