C# で他のアプリケーションを自動操作

タイトルの通りのことをする必要があったので、Web以外では使ったことがなかった C# でプログラムを書いてみました。

C# なかなか便利で、クセも少ない(気がする)のでWindowsでプログラムを書くならこれかなと感じました。

やりかたは、Windows APIを使うため、C++なんかでやるのと全く違いはないです。

クラスの最初にでも、使うWindows APIの定義を書いておきましょう。

const int BM_CLICK=0x00F5;
delegate int WNDENUMPROC(IntPtr hwnd,int lParam);
[DllImport("user32.dll")]
extern static int GetWindowText(IntPtr hWnd,StringBuilder lpStr,int nMaxCount);
[DllImport("user32.dll")]
extern static bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
extern static IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
private static extern int EnumChildWindows(IntPtr hWnd,WNDENUMPROC lpEnumFunc,int lParam);
[DllImport("user32.dll")]
public static extern Int32 PostMessage(IntPtr hWnd,int msg,int wParam,int lParam);
[DllImport("user32.dll")]
static extern IntPtr SetFocus(IntPtr hWnd);

続きを読む