クリップボードの編集・一部の削除

解決


かずま  2008-09-17 22:44:15  No: 31952

別のアプリに文字列を入力するアプリを作っています。
それは、SendMessage(EdtHnd,WM_PASTE,0,0);
で解決したのですが・・、

問題は、クリップボードに貼り付ける文字が残ることです。

で、考えたのが、クリップボードの一番最後の文字列を削除する方法。
もう一つは、一度クリップボード全体を保存・Keepして、処理をしてから、クリアしてから、クリップボードに復元する方法です。

前者は方法自体が、後者は型が分かりません。

ですが、両方ともどうやってすればいいのか、分かりません。
知っている方がいましたら、よろしくお願いいたします。


TClipboard  2008-09-17 22:48:59  No: 31953

TClipboardでは対処できないでしょうか?
uses節にClipbrdを追加してみてください。
プロパティ、メソッドは複雑な物はなかったと思うのでヘルプ見てみてください。


かずま  2008-09-18 00:36:24  No: 31954

https://www.petitmonte.com/bbs/answers?question_id=3354

過去のを検索していたら、どうやらこれっぽいですねー。
ここまで複雑な事をしないとダメかー。
分からなくはないですが、システムにからむ挙動に自信がなくなるので、あまり詳しく分からない事は、アプリにしたくないんですよねー。

クリップボード全体のコピー、クリア、復元か、クリップボードの一番最後の文字列を削除する方法とかでも。

TClipboardの単純なメソッド・プロパティでは、私には分かりませんでした。

単純な、勘違いだったら、訂正して頂けるとありがたいです。w


発想を変えて  2008-09-18 05:27:36  No: 31955

クリップボードを使わずに文字入力する方法を考えてみては?
ASCII文字だけならWM_CHARを送りつけてみるとか
keybd_eventでキー操作をエミュレートするとか
GetWindowTextして、必要な文字をくっつけてからSetWindowTextするとか


それより  2008-09-18 07:19:09  No: 31956

> クリップボードの一番最後の文字列
これの意味がわからない

他アプリがクリップボードに貼り付けした内容を、さらに別のアプリに貼り付けでもしようというか?
そうでなければ、ClipBoard.AsTextで貼り付けしたデータは、文字データのみ。

クリップボードの履歴管理ソフトなんかに文字が残るのが嫌だってことなら、
クリップボードを使わずに文字を貼り付けするしかない。

自己完結している雰囲気で、実際に何がしたいのかが見えない・・・のは、自分だけ?


かずま  2008-09-18 08:14:08  No: 31957

実は、一番最初に作ったのは、マウスとキーボードのエミュレートでした。
これは、簡単ですからねー。
所が、バックグラウンドの貼り付け用途なので、エミュレートでは少し不満がありました。

さらに調べたら、「ウィンドウハンドルさえ、分かればSendMessageの方が、簡単にできるな〜♪」と思っていたんですが。
思わぬ落とし穴が。(苦笑

SetWindowTextの方を、考えてみますね。
ありがとうございました。


あのさ?  2008-09-18 18:38:06  No: 31958

質問で「実は・・・」っていうの、やめな。
回答してくれる人に対して失礼極まりないし、質問自体が迷惑。


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

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






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