|
|
For example: There's an foreign app, in its form is a button or other control... I want to build an app, which allowes me to generate the click programmaticaly, without using a mouse.
|
|
|
|
|
You could generate the mouse click, but how are you going to guarantee that the window your "clicking" on is going to be in the exact same place every time it comes up?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
It's maximized window all the time. But how can I do it?
|
|
|
|
|
I gave you a hint at what the pitfalls are...
But, it's not as easy as it would sound. You have to define the structures that define the type and specifics of the input your sending, namely mouse clicks, and use the SendInput Win32 API function to post the message for you.
See SendInput on P/Invoke.net[^] for an example and some docs. Make SURE you follow and read the links for defining the INPUT, MOUSEINPUT, KEYBOARDINPUT, HARDWAREINPUT, and VK structures!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks a lot. I will look at it and I will try it tommorow. So please, look back at this thread tommorow this time, I will let you know how I solved it. Now I go to bed It's about midnight.
|
|
|
|
|
You can use these api functions to simulate a button click
Declare these at the top of your class/ form/ module
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const BM_CLICK = &HF5
I used another command button to click ok on a message box.
If you investigtate the findwindow function, the second param can be the name of the window to find (at present it is the Msgbox class id but you can place vbnullstring there and place the window name in the place of vbnullstring)
Private Sub Command1_Click()
Dim x As Long, staticx As Long, MyStr As String, y As String, control As Long
'Find the window you specify
x = FindWindow("#32770", vbNullString)
' get handle to Ok button
control = FindWindowEx(x, 0, "Button", "Ok")
' click the button
SendMessage control, BM_CLICK, 0, 0
SendMessage control, BM_CLICK, 0, 0
End Sub
For some reason you need to send the message twice. I think it is because the first just selects it.
Enjoy
"I am what i am, and i do what i do, but sometimes i do, what you want me to do."
|
|
|
|
|
I am afraid this code doesn't work for me ( What's your operating system -I have WXPP, VS.NET.
|
|
|
|
|
I've just found out why it doesn't work - MSDN - This function was superseeded for WXP and W2k
|
|
|
|
|
The reason is possibly because this is vb6 code.
I have Windows XP and it works fine, did you want it for vb.net then?
Sorry mate
|
|
|
|
|
I want to do the way Favorite of IE, while high light on a favorite, you can
right click to rename or delete a favorite menuitem. Expert, how can I do
this, thank you!
|
|
|
|
|
Do what? Create your own context menu? Add an item to IE's context menu? Add an item to the shell context menu?
All you did was describe right-clicking on an item in IE's Favorites menu and renaming it. You haven't said anything about what you want to do.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
sorry for poor description, I'm working on an application that also have favorite toolbar like IE, but then I don't know how to do a popup context menu when click on one of the favorite menu item. Can you help?
|
|
|
|
|
OK. You can start by reading Introduction to the Windows Forms ContextMenu Component[^] on MSDN. There's alot to read, so it'll probably take you a day to through it and try some examples before you completely understand how they work.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I do know how to use context menu but it does not working for this case, it's does not usable for MainMenu, since there is no ContextMenu option
|
|
|
|
|
Since you want a popup menu (Context menu) to come up when you right-click an item, the MainMenu has nothing to do with it. You're creating a ContextMenu and assigning it to the control that you want the menu to pop up for when you right-click that control. Go to that control's properties and look for the ContextMenu property. This is how your going to assign the menu you build to the control you want it to pop up on.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Internet explorer's Favorite Menubar(MainMenu), you can add,edit, or delete upon right click(ContextMenu show up) on the item you want to perform the action. I want to do something like that
|
|
|
|
|
Is there a way to do this? It would be nice to give a visual aid to the user to see which item when looking back to the list at a later time.
Right now it hihghligts upon clicking on an item in the list, but then looses the highlights.
Thanks for the help.
|
|
|
|
|
Set the HideSelection property to false to leave the selected item highlighted when the control loses focus.
Charlie
if(!curlies){ return; }
|
|
|
|
|
That's it, thanks. Sorry for the dumass question, I won't do it again for a couple days.
|
|
|
|
|
How do I filter for a field in access when I click on the "REPORTS" at the start up. I want a combo box to pop-up and give the user multiple choices.
|
|
|
|
|
Hi,
I have problem in mshflexgrid.
a table abc has some record like
emp_no tran_code date amt
130 1 12/04/04 4000
130 2 12/04/04 4000
130 1 12/05/04 4000
130 2 12/05/04 4000
i want to show in grid as following
Mshflexgrid:-
date pf cpf vpf
12/04/04 4000 4000 0
12/05/94 4000 4000 0
code 1 for pf ,code 2 for cpf ,code 3 for vpf
suppose table have records for code 1 and 2 for particular employee.i can show pf and cpf in grid but what i do
when table don't have any record for code 3 but i want
to show in grid "0" in place of amt when record for code
3 is not found.
Plz reply
Abhishek Vyas
|
|
|
|
|
Hey pplz,
I've got 2-3 instances of an application running on seperate machines. They want to be able to exchange data. I'm having trouble letting each instances know the ip address of the other machines as they change each time the machine comes online. I tryed a setting up a webservice to store and send address's but keep getting errors when I try to access it after having uploaded the files, but not problems when using it on my machine. The server says it supports asp.net and all that stuff. Pointers towards detailed instructions on deploying a webservice idea for other solutions appreciated.
Thanks
|
|
|
|
|
Hi,
I have a problem when i retreive data in a recordset
from sybase.
when i retreive a data at run time
in adodc recordset then data is retreive.
i am retreiving data in mshflexgrid.
Recordset retreive data but suppose in sybase
table a value of a feild is 5880.ok.
but at run time in rs.feild("amt")it shows 588.
so it eliminates all 0'es .
How can I solve this problem.
Plz Reply
Abhishek Vyas
|
|
|
|
|
I have been trying to make a library to convert VB code to C++. Incase you feel you need something like this please visit http://ezbasic.sf.net/
I will try and post an article about the library on CodeProject if I get enough people who are interested in the project.
Regards,
Vivek Jishtu
|
|
|
|