How to simulate mouse clicks? - vb.net

I was wondering how to create a sort of auto clicker using VB.NET.
I would basicly have the click coordinates pre-defined and the clicks, which would have to be separated by delays I guess since I want more than one to happen periodically, would happen outside of the application window (I read this envolves extra system hooks?).
The only code I have been able to find is related to clicks on the application window, which is not what I am looking for.
In short: I want to click a button on the app window, which would initiate a number of clicks on certain pre-defined screen coordinates.
Thanks in advance :)

See this discussion on social.msdn: Simulate a mouse click in a program.
Uses winapi: SetCursorPos, GetCursorPos and mouse_event.

I believe you need to P/Invoke into Windows to accomplish this.
Have a look at the SendInput function.

If you are using automate the program,that program have some tabindex in order to relevant control.then you can use;
SendKeys.Send("{TAB}");
SendKeys.Send("{ENTER}");
it is more accurate on desktop application

Related

display a popup inside external application

I'm developing an application in which, if I press a combination of keys shows me a popup inside the form of another external application, I mean something like the "windows game menu", but I have no idea how to show the popup in the external application. I leave you an image to make you understand what I mean as a popup. sorry for my english but I do not speak.
Thanks in advance
You cannot control one application form of another application without having access to its code or knowing if a queue messaging command has been set for doing it.
It is possible to program a window of your application to be shown over any other , likely this will not be working over a Directx - OpenGL full-area, i.e. when you are playing a videogame that is using the same functionality because the last one is winning.
In this case your popup will be visible barely as a flick, but considering standard form application you can make it to stand over by working with userd32.dll method
"SetWindowPos" with the flag HWND_TOPMOST.
You will need first to detect the position of the application window, or if it is a fullscreen one you can simply detect the size of the screen and consider to place it in the center, then you can set the position of your application form "pop-up".
Details about the SetWindowPos , which is among windwows base dll but can be invoked from .net here below:
https://learn.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setwindowpos
Make a window topmost using a window handle

How to make form appear in all desktops of Windows 10 in VB.Net?

I need to make a form visible even when I switch desktop on Windows 10 (by pressing Ctrl-Windows-Arrow) if possible, without any 2nd party lib
You can create multiple desktops by pressing Windows-Tab and clicking the + on the bottom-right corner.
Normally, a form only appears in the original desktop it was shown, and can be dragged to another desktop, but won't appear in multiples at the same time.
I know it's possible, because the splash forms of some applications do this. (Ex: Word, Excel)
I searched all over the web, but couldn't find a solution.
EDIT: Another app that I know that does this is the Task Manager, when you mark the "Always Show" checkbox.
This may be of some help. You have to dive into the world of AutoHotKey but this will solve your issues I'm pretty sure:
https://superuser.com/questions/950960/pin-applications-to-multiple-desktops-in-windows-10
Set your form's topmost property to true? Have you tried that?

Hide window from taskbar vb.net and alt+tab via WindowHandle

I have the window handle of another application and I want to remove it from the windows taskbar. I'd also like to remove it from the alt-tab menu. The window is a chrome app running my webpage, and I've experimented and I can effect it with MoveWindow successfully.
I just need to know how to declare the APIs to do this, if it's possible and how please :D
Thank you StackExchange!!!
Since all this got is 1 measly downvote, I managed to create a work around. I simple set the window state to hide or show using its handle.

VB.net Click on a certain coordinate

i'm making a windows application that would open a program and click on certain coordinates, first i need to know how to get a coordinate, which i already know, but how do I let my mouse click on a certain position? Simply it would be somthing like mouse.Click(coordinate). I don't know, could anyone help?
Regards
I tried putting this as a comment, but SO wouldn't put the comment up after I typed it, so I had to put what I had as an answer.
Here are two links that might have what you're looking to do: http://social.msdn.microsoft.com/Forums/vstudio/en-US/7b68f005-1d09-4085-b236-b05797df3bf0/how-to-make-the-mouse-click
and
http://social.msdn.microsoft.com/Forums/vstudio/en-US/a2518c35-ed77-42b3-a9c4-705238d714c2/mouse-click
And if you just want to click a button, you could use
button.Performclick()
But I don't think that there's any simple way (such as Mouse.Click()) to make the mouse click anywhere.
HTH

Binding key combinations to your application

How can I bind a key combination to my vb.net application? I know it has SOMETHING to do with the registry, but I have no earthly idea what or how to go about doing this. I want the user to be able to hit those keys when the app is open and have it execute my function, but not while the app is closed.
Thanks for the help!
If you are using a dialog, then you can put '&' into the text for some controls (buttons, checkboxes, radio buttons, etc) and this will cause Alt plus the next character in the text to be used as an accelerator/shortcut. i.e. "&Open" would activate the Open button if you press Alt+O. "Op&en" would activate if for Alt+e.
Beyond that, as Jason Irwin said, you need to add an event handler to your Form for KeyDown or KeyPress events, and then check if the keypress is the key combination you are interested in. This will only work if the user activates your form (clicks in it to give it the input focus. If they put it behind another window, it will not react to the key presses)
If you don't want to show a form, or want to react to keypresses when you're not the input-focus application, then it gets a bit more complicated (you either need to use a hidden form or a keyboard hook)
edit
OK, it looks like you want a keyboard hook. This looks like a good article.
It depends on what you are trying to do:
If you have a gui application and you want to handle key events then you can do that in a keydown eventhandler
If you want to do more low-level stuff and have an application that will intercept all key strokes (regardless of whether or not the application has focus/is visible) then you need to use pinvoke to hit the win32 apis. I suggest you read the following:
link text
Please let us know what you are trying to do so we can provide better feedback.
Using Google, I found this Keyhook example.
I've worked with keyhooks before, in Delphi WIN32, so I am a bit familiar with them. (Just not in C#.) If you add one to a DLL, all Hell might break loose since most virus scanners will recognise this as malware behaviour. (Especially if you use them in the wrong way, causing them to be injected in each and every process that's running on your system.)
A keyhook will allow key combinations to be captured from other processes, though.
For a solution without programming requirements: Drop a shortcut for the application on your desktop. Edit it, assign a shortcut, close it. Press shortcut to test...