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);