Maintain input focus while not the main window - c#

I'm currently starting to write a WinForms application that will need to receive input from Dictation software while Focus is not on the application. I've been searching for clues and the best I have found so far are keyboard focus solutions or trying to use hooks. If anyone has some idea where to start or a hint please let me know.
Thank you.

Related

Using the Windows On screen keyboard in your Winform application without calling Osk.exe or Tabtip.exe

I want to load the windows on-screen keyboard as part of my application (like importing some dlls or something), not with Process.Start(). Just like this article explained - https://blog.tombam.net/implementing-textbox-with-on-screen-touch-keyboard-part-1/ . Only this solution doesn't work for me (the keyboard doesn't pop-up when clicked on the textbox). Is there another way? Or does anybody know what to do with the project that's in the link to make it work?
Thank you for the help in advance :)

Place control above Wpf Touch Keyboard

I am struggling to place my control above the touch keyboard.
Anyone has a thought of how to accomplish this?
Here is an example of the problem: http://screencast.com/t/kHqHy8PAq
I want to control to show above the keyboard.
Thanks.
Please take a look at this sample on github. It has the basic ways of connecting to the touch keyboard events and a basic decorator that can be used to shift controls in response to them. You can modify them or use the ideas as you see fit to best suit your application.

Taking mouse control in C# WPF

I watnt o create a tutorial/guide inside in my application, creating a "demonstration". For this purpose, I need to capture the mouse of the computer, and to be able to move it and click with it.
I want it to feel like if somebody else were there controling your computer. This will be completed with a video of someone, to make you feel like this someone is doing it live in that moment.
Thank you in advance!!!
There isn't WPF solution. You have to use P/Invoke.
To disable keyboard/mouse use BlockInput API (as far as I understand, you don't want user to break up your "demo").
To simulate user input, use SendInput API.
SendInput at pinvoke.net: http://www.pinvoke.net/default.aspx/user32.sendinput
Another option is to use third-party simulators, like this.

Read item being dragged by mouse

I'm wondering if their is any way to see what's currently being dragged by the mouse. I don't mean over a winforms as i can handle events and get it that way but has anyone been able to invoke some of the win api to read the object or information about it?
I'm trying 'monitor' (probably not the best choice of words) the cursor and see whats being dragged and then potentially read that object.
C# / C++ idea's all welcome !
Thanks in advance
One way to do this by design is to inject code into all applications, by means of a hook.
Using Hooks (Windows): http://msdn.microsoft.com/en-us/library/windows/desktop/ms644960(v=vs.85).aspx
This will allow you to detect when dragging is occurring, and you can use the standard windows APIs that the application itself can use to find out what is being dragged.
SetWindowsHookEx: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx
A second way is to use Windows UI automation. This will not give you exactly what the application sees, or give you access to the exact data being dragged or dropped, but it may give you enough information for whatever your purposes are.
UI Automation support for drag and drop: http://msdn.microsoft.com/en-us/library/windows/desktop/hh707386(v=vs.85).aspx
Try using UISpy or Inspect.exe to see UI Automation events.
https://stackoverflow.com/questions/1848721/where-do-i-get-ui-spy

c# dll to detect boxes(textareas) upon previewmousedown in windows

hello i would like to know if there is any dll or global hook code out there that would allow me to run an application like on screen keyboard as soon as i click on a textarea.
It would be greatly appreciated, google is not being too friendly to me.
It sounds like you might be looking for an Input Method Editor (IME).

Categories

Resources