Written in Japanese(UTF-8)
2014.12.20
INASOFT


/トップ/マウスのお供 ダウンロード/WebHelp/ヘルプトップ

連携ソフト作成方法


ここでは、外部入力の受付許可で受付可能なソフトを作成する方法を記載します。

マウスのお供のウィンドウに対し、WM_COPYDATAを使ってUnicodeで文字列情報を送ることにより実現します。この際、dwDataには102414という値を入れます。

サンプルプログラムを以下に示します。

#include <windows.h>
#include <stdio.h>

//  ==========================
// 「マウスのお供」連係機能
//  --------------------------
#define CDWM_UNICODETEXT_ID  102414

// WM_COPYDATAを用いて、マウスのお供へメッセージを送信する
int sendtk(HWND hWnd, const wchar_t *str)
{
    HWND hWndTK = FindWindow(L"mousenootomo", NULL);
    if ( hWndTK ) { // 連携ソフト検出
        COPYDATASTRUCT MyCDS;

        MyCDS.dwData = CDWM_UNICODETEXT_ID;
        MyCDS.lpData = (void *)str;
        MyCDS.cbData = (lstrlen(str)+1)*sizeof(wchar_t);

        SendMessage(hWndTK, WM_COPYDATA, (WPARAM)hWnd, (LPARAM)&MyCDS);

        puts("マウスのお供へメッセージを送信しました。");
        return 1;
    }
    else {
        puts("マウスのお供が見つかりません。");
        return 0;
    }
}

int wmain()
{
    // 自分のウィンドウハンドルを渡さなければならないので
    // 送信元としてコンソールウィンドウのハンドルを取得しておく。
    // (マウスのお供側で、送信元ウィンドウハンドルに対する生存確認を
    //  しているため、すぐになくなるハンドルやNULLを渡すことはできない)

    wchar_t strConsoleWindowTitle[1024];
    HWND hWndConsole;

    // (エラー処理は省略)
    GetConsoleTitle(strConsoleWindowTitle, sizeof(strConsoleWindowTitle));
    hWndConsole = FindWindow(NULL, strConsoleWindowTitle);

    // コマンドライン文字列(プログラム名+引数)をマウスのお供へ送信する
    return sendtk(hWndConsole, GetCommandLine());
}

注意することとしては以下の通りです。


 設定
 目次へ
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は、右上の作成日付の時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。

■このページに関するご意見をお待ちしております → フィードバックページ

/トップ/マウスのお供 ダウンロード/WebHelp/ヘルプトップ