USB電光掲示板 lsb001rd

    お買い物
    10 /06 2012
    LEDサインボード(55x11cm)を購入しました。PCにUSB接続し、専用ソフトで文字を転送したり、時計として使うことができます。結構大きいです。

    digibo0.jpg

    ただし、付属の専用ソフトDigiboは限られた機能しかないので、出来ることは非常に限られています。どうせなら、ニュースを受信して表示したり、野球速報、単語帳、時刻表などの機能を追加させたいものです(使用中はネット環境のあるPCに接続する必要がありますが)。
    というわけで、機能拡張を考えました。とはいえ、データ転送を自前で実装する技術もないので、専用ソフトに文字データを忍び込ませ、勝手に転送ボタンを押すような処理をCで実装しました。


    #include <iostream>
    #include <tchar.h>
    #include <windows.h>
    #include <locale.h>

    #define LOCBUTTON 13

    // Digiboウィンドウ中の位置
    POINT loc( int index ){ POINT p; p.x = 60; p.y = 100 + 24 * index; return p; }

    void main(){
    setlocale( LC_ALL, "Japanese" );

    // Digiboのウィンドウを探す
    HWND hWnd = FindWindow( L"TForm1", NULL );
    if( hWnd == NULL ) exit( 1 );
    HWND hForm = FindWindowEx( hWnd, 0, L"TsuiForm", L" " );
    if( hForm == NULL ) exit( 1 );

    // メッセージ送信(ここを今後開発)
    SendMessageA( ChildWindowFromPoint( hForm, loc( 0 ) ),
    WM_SETTEXT, 0, (LPARAM)("Hello world!"));

    SendMessageA( ChildWindowFromPoint( hForm, loc( 1 ) ),
    WM_SETTEXT, 0, (LPARAM)("ようこそ"));

    SendMessageA( ChildWindowFromPoint( hForm, loc( 5 ) ),
    WM_SETTEXT, 0, (LPARAM)("Добре дошли!"));

    // 転送ボタンを押す
    HWND hButton = ChildWindowFromPoint( hForm, loc( LOCBUTTON ) );
    SendMessage( hButton, WM_LBUTTONDOWN, 0, 0 );
    SendMessage( hButton, WM_LBUTTONUP, 0, 0 );
    }



    十数行程度のプログラムですが、結構苦戦しました。なにしろ転送先のDigiboが謎だらけでしたから。
    Digiboを起動した状態で実行すると、文字情報が転送され、掲示板の情報が更新されることを確認しました。

    digibo1.jpg

    もう疲れてきましたが、まだスタート地点に立ったに過ぎず、これから追加機能の実装に移らなければなりません(続く?)。

    スポンサーサイト

    コメント

    非公開コメント

    The following time I read a blog, I hope that it doesnt disappoint me as much as this one. I imply, I do know it was my choice to read, however I truly thought youd have one thing fascinating to say. All I hear is a bunch of whining about something that you could possibly fix for those who werent too busy on the lookout for attention. MCM バッグ http://www.mcmonly.com/

    xpucmo

    ブルガリアの言語や音楽(特にポップフォーク)を愛するあまり、現地のセミナーまで受けに行った変人。HNを現地で頂いたブルガリア名xpucmo = フリスト に統一しました。