Results 1 to 2 of 2

Thread: Key Press

  1. #1

    Thread Starter
    Kitten CornedBee's Avatar
    Join Date
    Aug 2001
    Location
    In a microchip!
    Posts
    11,594
    You could get the currently active window by calling GetForegroundWindow. Then use PostMessage to post keyboard messages to the window.
    All the buzzt
    CornedBee

    "Writing specifications is like writing a novel. Writing code is like writing poetry."
    - Anonymous, published by Raymond Chen

    Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.

  2. #2
    Monday Morning Lunatic parksie's Avatar
    Join Date
    Mar 2000
    Location
    Mashin' on the motorway
    Posts
    8,169
    From MSDN:
    keybd_event
    The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.

    Windows NT/2000 or later: This function has been superseded. Use SendInput instead.

    VOID keybd_event(
    BYTE bVk, // virtual-key code
    BYTE bScan, // hardware scan code
    DWORD dwFlags, // function options
    ULONG_PTR dwExtraInfo // additional keystroke data
    );
    Parameters
    bVk
    [in] Specifies a virtual-key code. The code must be a value in the range 1 to 254. For a complete list, see Virtual-Key Codes.
    bScan
    This parameter is not used.
    dwFlags
    [in] Specifies various aspects of function operation. This parameter can be one or more of the following values. Value Meaning
    KEYEVENTF_EXTENDEDKEY If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224).
    KEYEVENTF_KEYUP If specified, the key is being released. If not specified, the key is being depressed.


    dwExtraInfo
    [in] Specifies an additional value associated with the key stroke.
    Return Values
    This function has no return value.

    Remarks
    An application can simulate a press of the PRINTSCRN key in order to obtain a screen snapshot and save it to the clipboard. To do this, call keybd_event with the bVk parameter set to VK_SNAPSHOT.

    Windows NT: The keybd_event function can toggle the NUM LOCK, CAPS LOCK, and SCROLL LOCK keys.

    Windows 95: The keybd_event function can toggle only the CAPS LOCK and SCROLL LOCK keys. It cannot toggle the NUM LOCK key.

    The following sample program toggles the NUM LOCK light (on Windows NT only) by using keybd_event() with a virtual key of VK_NUMLOCK. It takes a Boolean value that indicates whether the light should be turned off (FALSE) or on (TRUE). The same technique can be used for the CAPS LOCK key (VK_CAPITAL) and the SCROLL LOCK key (VK_SCROLL).

    Code:
    #include <windows.h>
    
       void SetNumLock( BOOL bState )
       {
          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);
          }
       }
    
       void main()
       {
          SetNumLock( TRUE );
       }
    I refuse to tie my hands behind my back and hear somebody say "Bend Over, Boy, Because You Have It Coming To You".
    -- Linus Torvalds

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width