Solved

How to send a key like does SendKey in VB ?

Posted on 1998-07-15
6
230 Views
Last Modified: 2012-06-27
I'm in a derived CFileDialog class with the OFN_EXPLORER style and I would like, in a response of a button, send the 'F2' key to the API in order to rename the selected file.
!!! : I don't want to use the SendInput Method.

Please can someone help me.

Thanks a lot !! ;-)
0
Comment
Question by:acabadet
  • 3
  • 2
6 Comments
 
LVL 2

Expert Comment

by:warmcat
ID: 1167810
Fire a WM_CHAR at the dialog using either ::SendMessage() or CWnd::SendMessage(). Details of WM_CHAR:

WM_CHAR  
The WM_CHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. WM_CHAR contains the character code of the key that was pressed.

WM_CHAR
chCharCode = (TCHAR) wParam;    // character code
lKeyData = lParam;              // key data
 
Parameters
chCharCode

Value of wParam. Specifies the character code of the key.

lKeyData

Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table: Value
 Description
 
0-15
 Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key.
 
16-23
 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).
 
24
 Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
 
25-28
 Reserved; do not use.
 
29
 Specifies the context code. The value is 1 if the ALT key is held down while the key is pressed; otherwise, the value is 0.
 
30
 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.
 
31
 Specifies the transition state. The value is 1 if the key is being released, or it is 0 if the key is being pressed.
 


Return Values
An application should return zero if it processes this message.

Remarks
Because there is not necessarily a one-to-one correspondence between keys pressed and character messages generated, the information in the high-order word of the lKeyData parameter is generally not useful to applications. The information in the high-order word applies only to the most recent WM_KEYDOWN message that precedes the posting of the WM_CHAR message.

For enhanced 101- and 102-key keyboards, extended keys are the right ALT and the right CTRL keys on the main section of the keyboard; the INS, DEL, HOME, END, PAGE UP, PAGE DOWN and arrow keys in the clusters to the left of the numeric keypad; and the divide (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in the lKeyData parameter.


0
 

Author Comment

by:acabadet
ID: 1167811
The SendMessage function doesn't work. I 've already tried !!!
0
 
LVL 22

Accepted Solution

by:
nietod earned 50 total points
ID: 1167812
answer coming.
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 22

Expert Comment

by:nietod
ID: 1167813
Sorry for the wait there.  I can never remeber the name of the function.  You want Keybd_event().  This is the most reliable way to "fake" a key event.  It takes care of sending the right pairs of messages with the right flags set etc.
0
 
LVL 2

Expert Comment

by:warmcat
ID: 1167814
Grumble.  Be good to mention it, then.

Try SendMessage() with WM_USER +302 (decimal), which is 0x52e, sending to the Dialog.


0
 
LVL 22

Expert Comment

by:nietod
ID: 1167815
Is this answer sufficient?  If so, you should grade the answer.  If not, let us know what the problem is.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question