- 締切済み
別アプリケーションのハンドルを取得する方法
はじめまして。 現在eVC3.0でPocketPC2002のバーコード読取アプリ ケーションを開発しています。 というのも、このPocketPC2002の標準機能でバーコードを 読取ると、KeyPadのCapsLockの設定により大文字で 表示したり小文字で表示するのです。 (同じバーコードでもKeyPadのCapsLockがONの時は 大文字で表示し、OFFのときは小文字で表示されます) やりたい事は、バックグラウンドでバーコード読取アプリ ケーションを実行しておき(アイコン化)、アクティブな 別アプリケーションの入力域にバーコードアプリ ケーションで読取ったコードを表示したいのです。 アクティブな別アプリケーションのハンドルが取れれば、 SetDlgItemTextを使用して問題が解決するのかな? と考えています。 なにか参考HPなどございましたら、ご紹介下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tshinta
- ベストアンサー率50% (3/6)
表示するアプリケーションがのウインドウタイトルをFindWindowすれば、ハンドルは取得できる気がします。 あまりいい方法ではない気がしますが、この場合は、表示するアプリケーションが必ず1つしか起動しないようにしておくべきかと思います。 バックグラウンドのバーコード読取アプリケーションから、表示するアプリケーションを起動するようにし、起動時にパラメータとして文字列にしたハンドルを渡す方法もあります。 あまりeVCはよく知らないのですが、ハンドルを取得しても、プロセス間でメモリ空間が異なるので、SetDlgItemTextした文字列ポインタは表示アプリケーションでは、無効なアドレスになるのではないでしょうか? メモリマップドファイルや、共有データセクション(#pragma data_seg)を持つDLLを作らないといけないかも知れません。
補足
回答ありがとうございます。 すみません、説明不足でした。 バーコードアプリケーションから読込んだバーコードは バーコードを読込んだ時にアクティブなウィンドウに 表示したいのです。 それはWORDかもしれませんし、EXCELかもしれません。 従ってアプリケーションのウインドウタイトル名を 指定することができません。