他のアプリケーションから選択文字列を取得する


kofuku  2002-07-17 19:42:35  No: 75858

始めて質問させていただきます。
表題そのままですが、他のアプリケーションより、選択文字列を取得する方法として
クリップボードに選択文字列を入れる方法があると思いますが、その場合、
1.SendKeysで  "^c"を送る
2.keybd_event で  Ctrl+C  を送る
方法を試していますが、
1の場合、netscape等では、うまく貼り付けられません。
また、2の方法の場合、1度目はうまくいくのですが、2度目以降うまくいきません。

どこかのHPでキーコードに関わる処理の場合はキーコードを0にしなければというのを見た記憶があるのですが、
実際どのようにするのか解りません。

どなたか教えて下さい。よろしくお願いします。


Say  2002-07-17 23:05:56  No: 75859

keybd_event を送る直前に、
当該Windowをアクティブにし、
当該コントロールにFocusを持っていく
必要があるかと思います。
また、厳密には、
当該Windowをアクティブにする直前から、
keybd_event を送る直後まで、
ほかのメッセージの流れ(特にキー、マウス関連)を阻害する
必要があるかもしれません。


たかみちえ  URL  2002-07-19 08:31:36  No: 75860

> 2の方法の場合、1度目はうまくいくのですが、2度目以降うまくいきません。
  んー、ということは、いったんキーを押したあと、ちゃんと放していますか?
APIの3つめの引数、おしたあとはちゃんと、KEYEVENTF_KEYUPを使って、
Ctrlを放してくださいね。
厳密にはCもちゃんと放さないといけないと思いますけど、
これを放さなくて、問題が出た記憶はあんまり…^^;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加