Click here to Skip to main content
15,898,222 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: OnAppExit not called when X button clicked Pin
TimmySRX2-Mar-09 11:05
TimmySRX2-Mar-09 11:05 
GeneralRe: OnAppExit not called when X button clicked Pin
Iain Clarke, Warrior Programmer2-Mar-09 23:04
Iain Clarke, Warrior Programmer2-Mar-09 23:04 
QuestionSendKeys won't work Pin
Ran42-Mar-09 8:49
Ran42-Mar-09 8:49 
AnswerRe: SendKeys won't work Pin
led mike2-Mar-09 9:49
led mike2-Mar-09 9:49 
GeneralRe: SendKeys won't work Pin
Ran42-Mar-09 10:14
Ran42-Mar-09 10:14 
GeneralRe: SendKeys won't work Pin
CPallini2-Mar-09 10:19
mveCPallini2-Mar-09 10:19 
AnswerRe: SendKeys won't work Pin
«_Superman_»2-Mar-09 17:33
professional«_Superman_»2-Mar-09 17:33 
GeneralRe: SendKeys won't work Pin
davidjaybrown3-Mar-09 8:49
davidjaybrown3-Mar-09 8:49 
I struggled a bit with SendInput, (which you should prefer to use) and I learned the following...

in the MSDN documentation, the call to SendInput must include a size of your input structure.
If you get it wrong, SendInput will do nothing, and not tell you.

Try something like...
<br />
#include <WinAble.h><br />
<br />
#define _MAX_KBDINPUT_LENGTH_ 50<br />
<br />
   INPUT KBa[ _MAX_KBDINPUT_LENGTH_ ];<br />
   ::ZeroMemory(KBa, sizeof(KBa));<br />
<br />
   UINT KBn = 0;  // how many keyboard key msgs to send (this is a counter)<br />
<br />
   Stuff the KBa array with KEYEVENTF_KEYUP and KEYEVENTF_KEYDN (0) messages. like this...<br />
<br />
			KBa[KBn].type       = INPUT_KEYBOARD;<br />
			KBa[KBn].ki.wVk     = wVk;<br />
			KBa[KBn].ki.wScan   = wScan;<br />
			KBa[KBn].ki.dwFlags = 0;  // KEYDOWN is ZERO<br />
                        KBn++;<br />
			KBa[KBn].type       = INPUT_KEYBOARD;<br />
			KBa[KBn].ki.wVk     = wVk;<br />
			KBa[KBn].ki.wScan   = wScan;<br />
			KBa[KBn].ki.dwFlags = KEYEVENTF_KEYUP;<br />
                        KBn++;<br />
<br />
Then, set focus to the target window.  If its not a window your process owns, you must do the following<br />
<br />
		// set focus to target foreign window. Get owning thread of target window.<br />
		DWORD tWNDthread = ::GetWindowThreadProcessId(hwndTARGET,0);<br />
		if (!tWNDthread)<br />
		{<br />
			AfxMessageBox("zSendKeys FAILED to get ABF Thread Id!");<br />
			bValid = FALSE;<br />
		}<br />
<br />
		// MUST attach to it<br />
		BOOL bAttached = FALSE;<br />
		bAttached = AttachThreadInput(GetCurrentThreadId(),tWNDthread,TRUE); // TRUE means ATTACH<br />
<br />
		if ( bAttached )<br />
		{<br />
			::SetForegroundWindow(hwndTARGET);  // pop to top<br />
			::SetFocus(hwndTARGET);             // set it to accept future keystrokes<br />
			<br />
			//mission accomplished, now release my hook into their thread.<br />
			AttachThreadInput(GetCurrentThreadId(),tWNDthread,FALSE); // FALSE means DETACH<br />
<br />
		} else<br />
		{<br />
			AfxMessageBox("zSendKeys FAILED to attach to ABF Thread Id!");<br />
			bValid = FALSE;<br />
		}<br />
<br />
		// do the deed<br />
		if (bValid) bValid = ::SendInput(KBn,&KBa[0],sizeof(INPUT)); // <-- note KBn and sizeof(INPUT) might be different<br />
<br />
	   	// no matter what, lets be safe, and set the forground and focus here again<br />
	   ::SetForegroundWindow(hME);<br />
       ::SetFocus(hME);<br />


I know this is MFC-centric, and not generic C, but I hope it helps you

-Dave
GeneralRe: SendKeys won't work Pin
«_Superman_»3-Mar-09 15:59
professional«_Superman_»3-Mar-09 15:59 
QuestionCompile Error Actual linking error ....Can someone help. Pin
FISH7862-Mar-09 8:01
FISH7862-Mar-09 8:01 
AnswerRe: Compile Error Actual linking error ....Can someone help. Pin
Jonathan Davies2-Mar-09 8:05
Jonathan Davies2-Mar-09 8:05 
AnswerRe: Compile Error Actual linking error ....Can someone help. Pin
Cedric Moonen2-Mar-09 8:06
Cedric Moonen2-Mar-09 8:06 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
FISH7862-Mar-09 8:09
FISH7862-Mar-09 8:09 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
Cedric Moonen2-Mar-09 8:12
Cedric Moonen2-Mar-09 8:12 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
Cedric Moonen2-Mar-09 8:14
Cedric Moonen2-Mar-09 8:14 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
FISH7862-Mar-09 8:34
FISH7862-Mar-09 8:34 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
FISH7862-Mar-09 8:58
FISH7862-Mar-09 8:58 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
Jonathan Davies2-Mar-09 12:23
Jonathan Davies2-Mar-09 12:23 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
FISH7862-Mar-09 16:52
FISH7862-Mar-09 16:52 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
Jonathan Davies3-Mar-09 0:25
Jonathan Davies3-Mar-09 0:25 
GeneralRe: Compile Error Actual linking error ....Can someone help. Pin
FISH7863-Mar-09 2:49
FISH7863-Mar-09 2:49 
QuestionFunction Pointer Pin
dehseth2-Mar-09 7:38
dehseth2-Mar-09 7:38 
AnswerRe: Function Pointer Pin
Richard Andrew x642-Mar-09 7:48
professionalRichard Andrew x642-Mar-09 7:48 
AnswerRe: Function Pointer Pin
Stuart Dootson2-Mar-09 8:02
professionalStuart Dootson2-Mar-09 8:02 
GeneralRe: Function Pointer Pin
dehseth2-Mar-09 8:14
dehseth2-Mar-09 8:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.