AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Sendkey-Befehl: Kopieren in Zwischenablage
Thema durchsuchen
Ansicht
Themen-Optionen

Sendkey-Befehl: Kopieren in Zwischenablage

Ein Thema von Susanne · begonnen am 24. Jan 2005 · letzter Beitrag vom 28. Jan 2005
Antwort Antwort
Seite 2 von 2     12   
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#11

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 27. Jan 2005, 10:50
Ich hab es auch über SendMEssage versucht, aber da kriegt er irgendwie gar nichts in die Zwischenablage.

Es soll ausserdem auch eine universelle Lösung sein, so dass der selektierte Text aus jeder beliebigen Anwendung in die Zwischenablage kopiert werden kann.
Susanne
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#12

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 27. Jan 2005, 11:17
Hast du SendMessage mal mit Notepad etc versucht? Es kann ja sein das nur Excel zickt.
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 27. Jan 2005, 11:30
ich habe das mal bei anderen Editoren probiert mit sendkeys, da klappt es anscheinend wirklich einwandfrei, aber warum denn nicht mit Word, Excel usw? Das muss da doch auch irgendwie funktionieren und ohne ole-Verbindung. Bei Word kommt in der Zwischenablage gar nichts an.
Susanne
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#14

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 27. Jan 2005, 12:03
Sendkeys ist und bleibt keine universelle Loesung.
Kannst du eigentlich meine Frage beantworten?
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#15

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 27. Jan 2005, 12:09
nein, mit sendmessage kommt nichts in die Zwischenablage
Susanne
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 28. Jan 2005, 09:51
Anmerkung: Wenn ich in Excel die ganze Zelle z.B. markiere und dieses dann an die Zwischenablage sende, funktioniert das ganze einwandfrei.

Delphi-Quellcode:
     Sendkeys('{HOME}',True);
     Sendkeys('+{END}',True);
     Sendkeys('^{c}',True);
     Sendkeys('{HOME}',True);
Wenn ich jetzt nur folgendes Nehme, dann ersetzt er meist das markierte durch ein C

Sendkeys('^{c}',True); Wenn ich das ganze mit SendMessage versuche, kommt gar nichts in der Zwischenablage an.
Delphi-Quellcode:
//Id bzw Handle des aktiven Fensters
  hOtherWin := GetForegroundWindow;
  OtherThreadID := GetWindowThreadProcessID( hOtherWin, @aDwordvar);
  //ShowMessage('ThreadID: '+ intToStr(OtherThreadID));
  //Titel des Fensters
  GetWindowText(hOtherWin, NextTitle, 255);
  //ShowMessage('WindowText: '+ NextTitle);
  SendMessage(hOtherWin, WM_COPY, 0, 0);
  ShowMessage(ClipBoard.AsText);
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#17

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 28. Jan 2005, 10:10
Hi Susanne,

Ich kann dein Problem nicht genau nachvollziehen.
Kannst du mal beschreiben, was du genau machen moechtest, resp wie das
Sendkeys('^{c}',True); ausgeloest wird (per Hotkey, ButtonKlick...)??

Sonst kannst du auch mal dies ausprobieren:

Delphi-Quellcode:
Procedure Control_C;
begin
  keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
  keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);
  keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);
  keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)
end;
Thomas
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#18

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 28. Jan 2005, 10:39
Also:
Ich habe mein Programm test.exe und diese Starte ich, die Anwendung installiert einen Hook und wenn dann F9 gedrückt wird, soll er den markierten Text der Anwendung, die gerade im Vordergrund ist markieren und in die Zwischenablage packen.

Also ich starte die test.exe und die Anwendung wird unten in der Taskbar nur als kleines Icon angezeigt. Dann starte ich Excel, markiere in einer beliebigen Zelle einen Text und drücken dann F9. Daraufhin soll dieser markierte Text in die Zwischenablage befördert werden.

Ich habe das ganze mit Wordpad versucht und Sendkey - das funktioniert einwandfrei
Ich habe es des weiteren mit Editor, Messenger, WindowsExplorer versucht - auch einwandfrei

Dann kommt Excel - funktioniert- wird in die Zwischenablage befördert - nur meist ersetzt er den markierten Text in Excel daraufhin mit einem C - keine Ahnung warum

Und mit Word, Outlook - kommt gar nichts in der Zwischenablage an

Dann habe ich es mit SendMessage(handlevonExcel, WM_COPY, 0, 0) versucht, kommt nie etwas in der Zwischenablage an
Susanne
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#19

Re: Sendkey-Befehl: Kopieren in Zwischenablage

  Alt 28. Jan 2005, 14:14
ich hab das Problem jetzt gelöst mit Excel - ich habe ein Application.Processmessages eingebaut, seitdem erscheint auch kein C mehr

Problem weiterhin Word und Outlook kommt nichts in der Zwischenablage an
Susanne
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz