こんにちは。ずいぶんお久しぶりです。稲富です。
クリップボードの制御で困ってしまったので、皆さんのお力を貸してください。
Mr.XRAYさんのページを参考にやってみました。
見たページはこちらです。
http://mrxray.on.coocan.jp/Delphi/plSamples/823_PasteCheck.htm
ソースを貼り付けさせてもらって、WMDrawClipboard(var Message:
TWMDrawClipboard);だけ書き換えました。
クリップボードが書き換えられた時に
Search_Edit.Text:=Clipboard.AsText;
この処理をすると、起動時に
プロジェクト Project1.exeは例外クラス EclipboardException(メッセージ'ク
リップボード アクセスが拒否されました。を開けません')を検出しました。
というエラーが出ます。そして次に
クリップボード アクセスが拒否されました。を開けません。
とでます。
どのように書き換えればいいのでしょうか。よろしくお願いします。
こちらが追加したソースです。
procedure TMain_Form.FormCreate(Sender: TObject);
begin
NextWindow := SetClipboardViewer(Handle);
end;
procedure TMain_Form.FormDestroy(Sender: TObject);
begin
ChangeClipboardChain(Handle, NextWindow);
end;
procedure TMain_Form.WMChangeCBChain(var Message: TWMChangeCBChain);
begin
if (Message.Remove = NextWindow) then begin
NextWindow := Message.Next;
Message.Result := 0;
end else begin
SendMessage(NextWindow, WM_CHANGECBCHAIN, Message.Remove, Message.Next);
end;
end;
//このprocedureを書き換えました。
procedure TMain_Form.WMDrawClipboard(var Message: TWMDrawClipboard);
begin
if not OpenClipboard(Handle) then Exit;
try
//これを追加すると実行時にエラーが出る。
Search_Edit.Text:=Clipboard.AsText;
finally
CloseClipboard;
end;
//次のクリップボードビューワウィンドウにメッセージを送る
SendMessage(NextWindow, WM_DRAWCLIPBOARD, 0, 0);
end;
MLホームページ:
http://www.freeml.com/delphi-users
----------------------------------------------------------------------
志士達を率いて熱き時代を駆け抜けろ!【幕末魂】
http://ad.freeml.com/cgi-bin/sa.cgi?id=iV8rP
------------------------------------------------------[freeml byGMO]--