API in VB.NET?

shmick

Member
Joined
Jul 29, 2005
Messages
6
Programming Experience
3-5
API in VB.NET? [SOLVED]

Hello, I am pretty proficient in VB.NET, but am lacking much wanted knowledge with Windows API functionality. I am posting this to see if anyone can steer me in the correct direction as to where to find good articles on hooking windows using VB.NET, here is an example of where I am going with this.

I have a program (not programmed by myself). You open it up, and a text box apears on a small form. What I am trying to acomplish is: using my program to execute this other program, hook the window, and grab what text is inside this little box, then close it. here is how far I am. I have already written for my program to launch this other program, and monitor unitl it closes, which isnt all that hard using Processes and Threads. But now I am stuck as to how to hook the window and grab the text, and then close it. If anyone could steer me in the right direction as to what it will take to acomplish this task, it would be greatly apreciated. (this other program is nothing malicious, or anything to view pw's)

Thanks in advance.

-Mike
 
Last edited:
hey guys and gals,

I managed to dig up some VB6 code to acomplish what i was trying to acomplish. However, i do need some assistance converting it over to VB.NET. The following is written in VB6 to do exactly what i need it to using all correct code.

Get Text from external APP:

VB.NET:
[size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Declare [/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] FindWindow [/size][size=2][color=#0000ff]Lib[/color][/size][size=2] "user32" [/size][size=2][color=#0000ff]Alias[/color][/size][size=2] "FindWindowA" ([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lpClassName [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lpWindowName [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2]) [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
[/color][/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Declare [/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] FindWindowEx [/size][size=2][color=#0000ff]Lib[/color][/size][size=2] "user32" [/size][size=2][color=#0000ff]Alias[/color][/size][size=2] "FindWindowExA" ([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] hWnd1 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] hWnd2 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lpsz1 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lpsz2 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2]) [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
[/color][/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Declare [/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] SendMessageLong& [/size][size=2][color=#0000ff]Lib[/color][/size][size=2] "user32" [/size][size=2][color=#0000ff]Alias[/color][/size][size=2] "SendMessageA" ([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] hwnd [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] wMsg [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] wParam [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lParam [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2])
[/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Declare [/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] SendMessageByString [/size][size=2][color=#0000ff]Lib[/color][/size][size=2] "user32" [/size][size=2][color=#0000ff]Alias[/color][/size][size=2] "SendMessageA" ([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] hwnd [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] wMsg [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] wParam [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] lParam [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2]) [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
 
[/color][/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Const[/color][/size][size=2] WM_GETTEXT = &HD
[/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Const[/color][/size][size=2] WM_GETTEXTLENGTH = &HE
 
 
[/size][size=2][color=#0000ff]Public [/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] ExternalText() [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String
 
[/color][/size][size=2][color=#0000ff]	Dim[/color][/size][size=2] TheText [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]String[/color][/size][size=2], TL [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long[/color][/size]
[size=2][color=#0000ff]	Dim[/color][/size][size=2] windowsformssystabcontrolapp [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
[/color][/size][size=2][color=#0000ff]	Dim[/color][/size][size=2] windowsformswindowapp [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
[/color][/size][size=2][color=#0000ff]	Dim[/color][/size][size=2] windowsformseditapp [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Long
 
[/color][/size][size=2]	windowsformswindowapp = FindWindow("windowsforms10.window.8.app3", vbNullString)
	windowsformssystabcontrolapp = FindWindowEx(windowsformswindowapp, 0&, "windowsforms10.systabcontrol32.app3", vbNullString)
	windowsformswindowapp = FindWindowEx(windowsformssystabcontrolapp, 0&, "windowsforms10.window.8.app3", vbNullString)
	windowsformseditapp = FindWindowEx(windowsformswindowapp, 0&, "windowsforms10.edit.app3", vbNullString)
 
	TL = SendMessageLong(windowsformseditapp&, WM_GETTEXTLENGTH, 0&, 0&)
 
	TheText = [/size][size=2][color=#0000ff]String[/color][/size][size=2](TL + 1, " ")
 
[/size][size=2][color=#0000ff]	Call[/color][/size][size=2] SendMessageByString(windowsformseditapp&, WM_GETTEXT, TL + 1, TheText)
 
	TheText = Left(TheText, TL)
 
[/size][size=2][color=#0000ff]	If[/color][/size][size=2] windowsformseditapp = 0 [/size][size=2][color=#0000ff]Then
 
[/color][/size][size=2]		MsgBox("Error: Cannot find window")
 
[/size][size=2][color=#0000ff]		Exit [/color][/size][size=2][color=#0000ff]Function
 
[/color][/size][size=2][color=#0000ff]	End[/color][/size][size=2][color=#0000ff]If
 
[/color][/size][size=2][color=#0000ff]	Return[/color][/size][size=2] TheText
 
[/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]Function
 
[/color][/size]

please help me, if you can, convert this code to VB.NET

the next task i need to acomplish is close the window... the following is the VB6 code for the closing task...

VB.NET:
[size=2][color=#0000ff]Public[/color][/size][size=2][color=#0000ff]Function[/color][/size][size=2] CloseIt()[/size]
 
	[size=2][color=#0000ff]Dim[/color][/size][size=2] windowsformswindowapp [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]Long[/color][/size]
 
[size=2]	windowsformswindowapp = FindWindow("windowsforms10.window.8.app3", vbNullString)[/size]
	[size=2][color=#0000ff]Call[/color][/size][size=2] SendMessageLong(windowsformswindowapp, WM_CLOSE, 0&, 0&)[/size]
 
	[size=2][color=#0000ff]If[/color][/size][size=2] windowsformswindowapp = 0 [/size][size=2][color=#0000ff]Then[/color][/size]
		[size=2]MsgBox("Error: Cannot find window")[/size]
		[size=2][color=#0000ff]Exit[/color][/size][size=2][color=#0000ff]Function[/color][/size]
[size=2][color=#0000ff]	End[/color][/size][size=2][color=#0000ff]If[/color][/size]
 
[color=#0000ff][size=2]End[/size][/color][size=2][color=#0000ff]Function
[/color][/size]

Please help me! I really need help. I tried getting this code to work in VB.NET but even if i alter a few things, and get it to compile, it wont work! any help will do...
 
Hey guys, well, i figured it all out. Took me a little while, but I did it! My program opens then external app, grabs the text I need, and within a split second, closes the external app. Thank you in advance for any help that you guys are actually able to help me with.

Questions about what I am making, or how I actually acomplished this task in VB.NET?
Feel free to contact me. I would be glad to share.
 
Back
Top