別のアプリに文字列を入力するアプリを作っています。
それは、SendMessage(EdtHnd,WM_PASTE,0,0);
で解決したのですが・・、
問題は、クリップボードに貼り付ける文字が残ることです。
で、考えたのが、クリップボードの一番最後の文字列を削除する方法。
もう一つは、一度クリップボード全体を保存・Keepして、処理をしてから、クリアしてから、クリップボードに復元する方法です。
前者は方法自体が、後者は型が分かりません。
ですが、両方ともどうやってすればいいのか、分かりません。
知っている方がいましたら、よろしくお願いいたします。
TClipboardでは対処できないでしょうか?
uses節にClipbrdを追加してみてください。
プロパティ、メソッドは複雑な物はなかったと思うのでヘルプ見てみてください。
https://www.petitmonte.com/bbs/answers?question_id=3354
過去のを検索していたら、どうやらこれっぽいですねー。
ここまで複雑な事をしないとダメかー。
分からなくはないですが、システムにからむ挙動に自信がなくなるので、あまり詳しく分からない事は、アプリにしたくないんですよねー。
クリップボード全体のコピー、クリア、復元か、クリップボードの一番最後の文字列を削除する方法とかでも。
TClipboardの単純なメソッド・プロパティでは、私には分かりませんでした。
単純な、勘違いだったら、訂正して頂けるとありがたいです。w
クリップボードを使わずに文字入力する方法を考えてみては?
ASCII文字だけならWM_CHARを送りつけてみるとか
keybd_eventでキー操作をエミュレートするとか
GetWindowTextして、必要な文字をくっつけてからSetWindowTextするとか
> クリップボードの一番最後の文字列
これの意味がわからない
他アプリがクリップボードに貼り付けした内容を、さらに別のアプリに貼り付けでもしようというか?
そうでなければ、ClipBoard.AsTextで貼り付けしたデータは、文字データのみ。
クリップボードの履歴管理ソフトなんかに文字が残るのが嫌だってことなら、
クリップボードを使わずに文字を貼り付けするしかない。
自己完結している雰囲気で、実際に何がしたいのかが見えない・・・のは、自分だけ?
実は、一番最初に作ったのは、マウスとキーボードのエミュレートでした。
これは、簡単ですからねー。
所が、バックグラウンドの貼り付け用途なので、エミュレートでは少し不満がありました。
さらに調べたら、「ウィンドウハンドルさえ、分かればSendMessageの方が、簡単にできるな〜♪」と思っていたんですが。
思わぬ落とし穴が。(苦笑
SetWindowTextの方を、考えてみますね。
ありがとうございました。
質問で「実は・・・」っていうの、やめな。
回答してくれる人に対して失礼極まりないし、質問自体が迷惑。
ツイート | ![]() |