Using PostMessage/SendMessage To Reposition A Form?
Nov 10, 2010
We have a form that is saved to the system tray and can be viewed in one of two ways.One view is like a rectangle and the other view is more of a square. In either case, there is a MaximumSize set on the form. We would like to use WindowState to toggle between the two by allowing the user to click the Maximize / Restore icons in the title bar.The problem is that when the user clicks the Maximize icon, the form jumps to the upper left corner of the screen. This is logical, since a maximized form should be anchored to the upper left. But in our case, the MaximumSize property prevents it from fully maximizing. The actual size is around 800 by 400. If they then click the Restore icon for the second view, it jumps back down to the original location.
I am trying to write a small plugin for eventghost for one of my software (audio player). EventGhost can send SendMessage or PostMessage messages to control other apps. How can I receive such messages in a VB.NET app?
Can anyone give me a SendMessage/PostMessage Example? I want to make SendMessage/PostMessage work like SendKeys, except instead of sending keys to the app in focus, it will send keys to a certain app. I've looked at a lot of examples that use notepad, but they all need to use "find" the "EDIT" thing. I dont want that. Is there any other way?
I am launching an external that brings up a window that is split into two frames. I am able to get the handle of the frame and what I want to do is click inside the frame in a certain area.
For example, if I open "System Information" by launching msinfo32.exe, how would I click on Internet Settings in the left window pane? I don't need the exact coordinates, just an explanation of how it can be done using SendMessage or PostMessage.
I wasn't sure if the end two numbers would be coordinates, but if they are, I've tried different numbers and can't seem to get it to click anything other than the first item in the list of the left window frame.
First of all, is it even remotely possible to have PostMessage or SendMessage "press keys" inside of a Fullscreen game? I.e. use the Chat? (Requires the user to activate the chat box, type in the message, then send it, which is all done with the keyboard)
I've tried many different ways using WM_KEYDOWN and WM_CHAR, and nothing worked.
[Code]...
I am trying to get it to activate the user's chat by pressing enter, type in the text, then press enter again. Except, I would like for the game to be minimized and allow this to work. Or, if while the game was running in fullscreen, that I was able to use SendMessage or PostMessage to type text into a Command Prompt Window.
how to properly use the "SendMessage" and "PostMessage" API's. I'm trying to make a simple program that will draw a picture, in the background, in Microsoft Paint.how to "Move the Mouse" and "Hold/Click the Mouse" in the application without having to actually "Do it"
So with the stock Textbox, I set the Scrollbars property to Vertical. This is great if the text in my box never changes; I can scroll up and down while the box sits still. If I'm running a background operation that logs output to the box though, the scrollbar resets itself to the top every time I append text to the box.
I know I can set the Textbox.Selection property (or use the Select method) to reposition the carat in the textbox, make note of that position in a variable, then append text, reset the carat, and use the ScrollToCarat method to reposition the scrollbar where it belongs. That's a really (ridiculously) long way around. Anybody know if there's another/better way of holding the scrollbar position, short of actually building a custom control (or using a Textbox and a separate Scrollbar)? It never hurts to try. In a worst case scenario, you'll learn from it.
How exactly would I use PostMessage and PeekMessage? I'm trying to make a Client/Server type of program. The server program will send a message to the Client and the client will do a set of commands when it gets that message.
Due to use postmessage tow times, I want add a delay (50) between tow postmessage(), and my timer interval is 1000.
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If CheckBox10.CheckState = CheckState.Checked Then st = Int(Val(TextBox17.Text) * 10)
[code]....
and I konw Thread.Sleep(50) is not good, but how to use timer stop here.
I have an Vb.net application made by a third party , that I need to control using outside resources from a simulated environment and must not interact with the desktop. To simulate inputs that a user would normally input from a special screen with specific keys around it, I've built a test control library to control it and send the form image to a .bmp. The form cannot be visible and showed in taskbar , the bmp output will be displayed by the simulated environment.Using PostMessage and sendKeys work well as long as I don't but ShowInTaskbar = False for the main form. After many read & testing, I have learned enough to try what seems to be the only thing that would work. I've created a form that I setparent using HWND_MESSAGE parameter, this should create a Message-Only Windows, that are supposed to received postMessage, and subclass it's events.msdn.
I can't seem to get it to work, and I was hoping someone could tell me what I'm doing wrong.I have been testing several different ways found through out the web about .net , and short of going into message thread peek and feed(maybe(may be)my last hope), they all seem to work until I take the forms out of the taskbar.[code]
Although there are already a few resources online that address this rough topic, I still haven't found an answer that works for me.I desire to have full communication between my VB.net process and my C++ process. I would like to be able to send a string to and from the C++ process, but for the time being I need to achieve:
Sending a string to the C++ process, and handling it.This creates a few points that I am uncertain on, but I'll try to keep this as simple as possible...using the following function declaration in VB;[code]....
And finally, I used the IPC example here to send the message. This example sends the message using C#, but the concept was all I needed (not to mention that it's a walk in the park to convert such code to VB). Note that in my VB implementation, I didn't need to terminate the string with a null character.
I'm trying to send a key stroke to one application, through PostMessage. I am using too Spy++ to try to understand how to send the message, as I do not fully understand its inner workings. In this picture, the first item(selected item) was made with an actual key stroke made by myself. The one with a red elipse around it(below) was made with the following code:
[Code]...
I guess it must have something to do with the last PostMessage() parameter, but I can't figure out how it really works. I can see in the original key stroke the ScanCode = 48, and in mine its 0, and also fExtended is 1 and in mine is 0. How can I make it look the same? edit: Here is the msdn link. [URL].aspx I cannot understand the last parameter's working, if anyone does..
I'm working on it for a couple of days but I couldn't get any success.. I'm trying to access Calc's edit box and trying to write something there but I couldn't do it =( what's wrong with my codes?
1. F11 => my application minimizes and hides another window (windowHandle is its handle), then sends there WM_RBUTTONDOWN (right mouse button click&hold).
2. F12 => my application unhides and restores that window, then sends WM_RBUTTONUP (right mouse button release).
The problem is when I press F11, and then click somewhere (so windowHandle loses focus), the right mouse button releases automatically, but I want it could be released only after I press F12. Here is part of my
Public Sub Tick() Dim windowHandle As IntPtr = FindWindow(vbNullString, "App") If GetAsyncKeyState(Keys.F11) Then
[CODE]...
So, is there any way how to not release right mouse button?
I'm trying to send some words to an application I'm running (exe file, no webpage). To do this I run my vb program and minimize it, so that the application I want to send the words to have focus.Now I've tried sendkeys, but it seems sendkeys only sends my first word and does nothing with the other words. The code below is called 4 times by the main form
If i > 3 Then i = 0 i = i + 1 If i = 1 Then verhaal ="some text 1"[code]....
but this throws in a overflowexception was unhandled error at the apiSendMessage(hWnd, WM_SETTEXT, 0, "Hello") line.I've tried several things but I can't figure it out how to send multiple words to the application without problems .
I am using SendMessageTimeout to send messages (IPC) to talk between applications ... works fine in vb... but i am trying to build a vb.net implementation to talk between existing vb6 apps and .net ones...
So far i can successfully send data from vb.net to vb6 using:
vb Dim b = System.Text.UnicodeEncoding.ASCII.GetBytes(Command) Dim Data As New COPYDATASTRUCT Data.dwData = New IntPtr Data.cdData = UBound(b) + 1
I would like to get the x, y position from the Params when the WM_LBUTTONDOWN is sent in vb.net.I got this to make the param but how do I get the position from it.
IntPtr lParam = (IntPtr)((y << 16) | x);
My function:
Protected Overrides Sub WndProc(ByRef m As Message) Select Case m.Msg Case WM_LBUTTONDOWN
[code]....
Update: I just tried this and it works perfectly.
Dim pos As New System.Drawing.Point(CInt(m.LParam))
Private Const MOUSEEVENTF_LEFTDOWN = &H2 Private Const MOUSEEVENTF_LEFTUP = &H4 Dim WindowHandle As Long = FindWindow(vbNullString, "Ultima Online") SendMessage(WindowHandle, MOUSEEVENTF_LEFTDOWN, 0, 0) SendMessage(WindowHandle, MOUSEEVENTF_LEFTUP, 0, 0)
I know it is getting the windowhandle fine, because I made a conditional statment that pops up a messagebox if windowhandle = 0 The problem is that it is not sending the mouse click to the window.
Ive been trying to figure out how to sendmessage VK_Space. i found an example and just tried it how it was, but i always get an error.My code
Public Class Form1 Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As IntPtr, ByVal wParam As Long, ByVal lParam As IntPtr) As IntPtr