# Windows api using a handle to focus input

**URL:** <https://www.ruby-forum.com/t/windows-api-using-a-handle-to-focus-input/171406>\
**Category:** Ruby\
**Created:** [July 1, 2009, 11:24pm UTC](https://www.ruby-forum.com/t/windows-api-using-a-handle-to-focus-input/171406 "2009-07-01T23:24:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dreamwave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/7feea3/32.png) [@dreamwave](https://www.ruby-forum.com/u/dreamwave)\
**Post date:** [July 1, 2009, 11:24pm UTC](https://www.ruby-forum.com/t/windows-api-using-a-handle-to-focus-input/171406/1 "2009-07-01T23:24:44Z")

</div>

Alright, I have the input functions down to translate user input the  
moment it hits the terminal, however I don’t want the user to be typing  
directly into the terminal for this to work o\_O.

I wrote a small C++ extension to attempt to bring the window to the  
front… however sticking the function in a - while true - loop makes it  
the only window one is able to access!! (basically you can’t click on  
anything till you run the kill script)

#### C++ Code

#include \<windows.h\>

HWND nHandle;

int main()  
{  
nHandle = FindWindow(NULL, “app1”);  
SetForegroundWindow(nHandle);  
return 0;  
}

##################

now “app1” is the title I gave the ruby script via:

Win32API.new(‘user32’,‘SetWindowText’,[‘p’,‘p’], ‘L’).call(win,txt)

Now I’m beginning to understand the different direction I have to move  
in.  
Somehow, I want to shove all input to the window handle (which is stored  
in the “win” variable).

How would I redirect all keyboard input to the win handle… for multiple  
text programs such as notepad… word… ect.

For reference, the problem I run into is that as soon as I click off the  
command prompt window to make use of inputting text into say… notepad…  
it no longer catches keyboard input.

Thanks for any advice,

- Mac
