• 締切済み

別アプリケーションのハンドルを取得する方法

はじめまして。 現在eVC3.0でPocketPC2002のバーコード読取アプリ ケーションを開発しています。 というのも、このPocketPC2002の標準機能でバーコードを 読取ると、KeyPadのCapsLockの設定により大文字で 表示したり小文字で表示するのです。 (同じバーコードでもKeyPadのCapsLockがONの時は 大文字で表示し、OFFのときは小文字で表示されます) やりたい事は、バックグラウンドでバーコード読取アプリ ケーションを実行しておき(アイコン化)、アクティブな 別アプリケーションの入力域にバーコードアプリ ケーションで読取ったコードを表示したいのです。 アクティブな別アプリケーションのハンドルが取れれば、 SetDlgItemTextを使用して問題が解決するのかな? と考えています。 なにか参考HPなどございましたら、ご紹介下さい。

みんなの回答

  • tshinta
  • ベストアンサー率50% (3/6)
回答No.1

表示するアプリケーションがのウインドウタイトルをFindWindowすれば、ハンドルは取得できる気がします。 あまりいい方法ではない気がしますが、この場合は、表示するアプリケーションが必ず1つしか起動しないようにしておくべきかと思います。 バックグラウンドのバーコード読取アプリケーションから、表示するアプリケーションを起動するようにし、起動時にパラメータとして文字列にしたハンドルを渡す方法もあります。 あまりeVCはよく知らないのですが、ハンドルを取得しても、プロセス間でメモリ空間が異なるので、SetDlgItemTextした文字列ポインタは表示アプリケーションでは、無効なアドレスになるのではないでしょうか? メモリマップドファイルや、共有データセクション(#pragma data_seg)を持つDLLを作らないといけないかも知れません。

knakatan
質問者

補足

回答ありがとうございます。 すみません、説明不足でした。 バーコードアプリケーションから読込んだバーコードは バーコードを読込んだ時にアクティブなウィンドウに 表示したいのです。 それはWORDかもしれませんし、EXCELかもしれません。 従ってアプリケーションのウインドウタイトル名を 指定することができません。