![]() |
Text in die Zwischenablage
Wie kann ich mittels der API Text in die Zwischenablage kopieren?
|
Hallo OrallY,
du musst als erstes die Bibliothek für Clipboard-Zugriffe in dein Programm einbinden. Diese heisst "Clipbrd". Also zuerst:
Delphi-Quellcode:
Ansprechen kann man den Text in der Zwischenablage im Programm dann mit
uses Clipbrd;
Delphi-Quellcode:
Clipboard.AsText
MFG Thomas |
Ok, das war zwar nicht über die API und nicht das was ich wissen wollte, aber trotzdem danke für die Antwort :mrgreen: .
Ich habe mir mal folgendes zusammengehackt (einfach die Funktionen, die an die TClipboard-Klasse gekapselt sind):
Delphi-Quellcode:
Nur funktioniert das nicht so 100 pro. Wenn ich beim Debugen im Editor Einfüge, klappts, doch bei allen anderen Programmen ist immer noch das alte Clipboard aktiv. Wie kommts?
procedure SetBuffer(Format: Word; var Buffer; Size: Integer);
var Data: THandle; DataPtr: Pointer; begin OpenClipboard(hWnd); //hWnd ist das Fensterhandle try EmptyClipboard; Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size); try DataPtr := GlobalLock(Data); try Move(Buffer, DataPtr^, Size); SetClipboardData(Format, Data); finally GlobalUnlock(Data); end; except GlobalFree(Data); raise; end; finally CloseClipboard; end; end; procedure SetClipboardText(aText: PChar); begin SetBuffer(CF_TEXT, aText^, Length(aText) + 1); end; /edit: Habe gerade den Fehler gefunden. Direkt nach OpenClipboard muss zuerst EmptyClipboard aufegerufen werden. Nähers in der PSDK. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz