Game_Overture
Game_Overture

Reputation: 1666

Send key strokes to another application C#

I need to automate FileMon.exe to startup with filters, save out the log it generates, and then exit.

My solution has been to write an assist application that will do all of this. Which has worked on starting up with specified filters and killing the process, but I still need it to save the log. Do you think it would be silly to send the application keystrokes to save the log? For instance I would send an Alt+F, Alt+S, type filepath, Enter.

How can you send keystrokes like above to another process that is running in C#?

Upvotes: 1

Views: 5721

Answers (6)

Game_Overture
Game_Overture

Reputation: 1666

Thanks for all the answers and help guys... I'm actually going to write and invoke a perl script using Win32::GuiTest.

Upvotes: 1

UnkwnTech
UnkwnTech

Reputation: 90951

Use something like AHK (Auto HotKey) it is a simple language that can be compiled to an EXE and is designed for automating the keyboard and mouse.

Also the IRC Channel and Forums always have people willing to help if need be.

Upvotes: 0

x0n
x0n

Reputation: 52460

You could use powershell and the windows automation cmdlets up on www.codeplex.com/wasp to do this.

-Oisin

Upvotes: 0

lc.
lc.

Reputation: 116528

You can use Windows.Forms.SendKeys to send keystrokes to the active application.

Upvotes: 1

JP Alioto
JP Alioto

Reputation: 45127

That's probably a deaad end. You should look and see if the application (or one of its dependent DLLs) exposes the proper API calls to do what you are trying to do. If you had to do it by keystrokes, you could look into some kind of macro program like MacorMaker.

Upvotes: 0

Deltax76
Deltax76

Reputation: 14263

As I know, you have to invoke some of native APIs:

-FindWindow to find parent windows you want to work with

-FindWindowEx to find true windows you'll send message to

-SendMessage to send key strokes to those windows

Details of these APIs, refer at MSDN :)

Upvotes: 1

Related Questions