<p>色を取得する前にゼネピックのクライアント(XenClient)の画面がどれなの？ということを知る必要があります。これを判断するのに使う方法もいくつかあるんですが、簡単な FindWindow WinAPI を使用します。<br />
これを使うと、クライアントのハンドル(※1)が取得できます。<br />
具体的には、FindWindow はウィンドウのキャプション(タイトル)でウィンドウを探してハンドルを返してくれます。</p>
<p>色の取得には、GetPixel を使います。GetPixel は指定座標の色を取得することが出来ます。<br />
GetPixel を使用するためには、デバイスコンテキスト(※2)が必要なので、CreateDC でデバイスコンテキスト作成します。CreateDC を使ったら後始末が必要なので、DeleteDC もあわせて使用します。</p>
<p>キーを入力するために keybd_event を使用します。この API ウィンドウがアクティブでないとダメなので、SetForegroundWindow を使用して画面をアクティブにする必要があります。</p>
<p>で、一回だけチェックしても全く意味がないのでタイマーを使って指定時間間隔で監視を行うようにしたいと思います。</p>
<p>ここまでを整理すると他に用意しないと行けないのは、 下にあるとおりですね。</p>
<table>
    <tbody>
        <tr>
            <th>用意するもの</th>
            <th>目的</th>
        </tr>
        <tr>
            <td>クライアントのタイトル</td>
            <td>クライアントを識別する</td>
        </tr>
        <tr>
            <td>タイマーの監視間隔</td>
            <td>一定時間でチェックを行う</td>
        </tr>
        <tr>
            <td>HPのゲージの位置</td>
            <td>ここの色を判断してHPの状態を把握する</td>
        </tr>
        <tr>
            <td>ファンクションキーの番号</td>
            <td>事前にミニポがどのキーに割り当てられているか知る必要がある</td>
        </tr>
    </tbody>
</table>
<p>※1 Windowsで各ウィンドウを管理している管理番号と考えてください。<br />
※2 画面やプリンタを統一的に管理するために考え出された仮想の表示領域のことです。</p>