AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ClipBord

Ein Thema von oldmann · begonnen am 27. Nov 2018 · letzter Beitrag vom 30. Nov 2018
Antwort Antwort
Seite 2 von 4     12 34      
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
152 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

AW: ClipBord

  Alt 27. Nov 2018, 19:58
Hallo,
scheinbar gibt es immer noch unklarheiten mit meiner Frage.
Es ist ein Sytemweiter Hotkey.
Der Text liegt schon in der Zwischenablage von Windows.
Ich möchte gerade vermeiden, dass der Anwender zusätzlich Tasten drücken muss.
Das Ziel ist, das der Text aus der Zwischenablage in einem Zug in das Textdokument eingefügt wird.
Also der Anwender drückt "Strg+E" und der hinterlegte Text wird in die Zwischenablage kopiert.
Also wie bekomme ich den Text ohne zusätzlich Tasten zu drücken in das Textdokument.
Ich hoffe, dass das deutlich war.

Gruss Oldmann
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
129 Beiträge
 
Delphi 12 Athens
 
#12

AW: ClipBord

  Alt 27. Nov 2018, 23:49
Hallo,

ich gehe mal davon aus, dass MS-Word zur Textverarbeitung verwendet wird.
In diesem Fall könnte man das so realisieren:
Delphi-Quellcode:
procedure CpClipToWord;
var
  WordApp, WordDoc: OleVariant;
begin
  try
     WordApp := GetActiveOleObject('Word.Application'); // Aktives geöffnetes Word
   except
     Exit;
   end;
   WordDoc:=WordApp.ActiveDocument; // Aktives Worddokument
   WordApp.Selection.Paste; // Inhalt vom Clipboard an der aktuellen Cursorposition im Worddokument schreiben
   WordApp.Selection.TypeText(#13#10); // ggf. den Cursor in die nächste Zeile setzen
end;
Wie das mit anderen Textverarbeitungs-Tools geht, kann ich Dir nicht sagen.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#13

AW: ClipBord

  Alt 28. Nov 2018, 09:56
Hallo,
scheinbar gibt es immer noch unklarheiten mit meiner Frage.
Es ist ein Sytemweiter Hotkey.
Der Text liegt schon in der Zwischenablage von Windows.
Ich möchte gerade vermeiden, dass der Anwender zusätzlich Tasten drücken muss.
Das Ziel ist, das der Text aus der Zwischenablage in einem Zug in das Textdokument eingefügt wird.
Also der Anwender drückt "Strg+E" und der hinterlegte Text wird in die Zwischenablage kopiert.
Also wie bekomme ich den Text ohne zusätzlich Tasten zu drücken in das Textdokument.
Ich hoffe, dass das deutlich war.

Gruss Oldmann
Ich glaube eher, das Problem ist nicht so ganz einfach. Dein Ctrl+T wird ja gedrückt, wenn du in irgend einer Anwendung bist, irgendeiner Textverarbeitung. Jetzt kriegt aber dein Programm über den Hotkey den Fokus / wird aktiviert. Jetzt musst du aber erstmal wissen, wo du vorher warst, sprich in welcher Textverarbeitung. Und das ist mMn schon schwierig.

Wenn du erstmal weißt, wo du her kamst, dann sollte es möglich sein, da Text hinzupasten. Siehe z.B. #9.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: ClipBord

  Alt 28. Nov 2018, 10:27
Hab ich da was falsch verstanden?
[Strg+V] und gut ist?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
152 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: ClipBord

  Alt 28. Nov 2018, 10:30
Hallo,

Danke erst mal wieder.
man kann doch über "Shift Einf" jeden Text aus der Zwischenablage in jede Textverarbeitung oder jedes Textdokument einfügen.
Dazu ist es doch vollkommen egal welche Textverarbeitung oder welches Textdokument es ist.
Man müsste diese Tastendrücke doch in Delphi auch simulieren können ?
Ich möchte mich nicht auf irgend eine Spezielle Anwendung festlegen, da ich ja nicht weiß welche Anwendung der Benutzer hat.
Es sieht simpel aus, aber scheinbar ist es doch komplizierter.
Ich habe das bis jetzt nicht geschafft aber es gibt doch unter euch sicher Profis die so etwas können.

Gruss oldmann
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#16

AW: ClipBord

  Alt 28. Nov 2018, 10:45
Nach welchen Kriterien soll die Anwendung ermittelt werden, an die eine Tastenkombination zu senden ist?
Wahrscheinlich doch an das Anwendungsfenster, welches zuvor als letztes aktiv war?
Weist du nicht wie das geht?

Ansonsten hat die Redeemer bereits Quellcode zur Verfügung gestellt, um eine Tastenkombination an eine Anwendung zu senden.
Kommst du damit nicht klar?

"Shift+Einf" wird möglicherweise nicht in jedem Fall funktionieren, "Strg+V" ist besser.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: ClipBord

  Alt 28. Nov 2018, 12:00
Ich blicke da immer noch nicht durch aber hier ein Ansatz mit Delphi 5:
Delphi-Quellcode:
for i := 1 to Length(MeinText) do
begin
  keybd_event(Ord(MeinText[i]), 0, 0, 0);
  Sleep(10);
  keybd_event(Ord(MeinText[i]), 0, 0 or KEYEVENTF_KEYUP, 0);
  Sleep(10);
end;
Das bewirkt folgendes:
Egal was gerade den Focus hat bekommt deinen "MeinText" gesendet.

Ist es das was Du wolltest?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#18

AW: ClipBord

  Alt 28. Nov 2018, 13:51
Wie schon teilweise oben beschrieben.
Wenn du mit der Zwischenablage arbeitest und beispielsweise STRG + C drückst, dann wird das Objekt oder der Bereich der aktiven Anwendung in die Zwischenablage kopiert. Nun musst du dein anderes Programm als aktiv erklären und dann würde auch STRG +V gehen. Das ist offenbar dein Problem. Deshalb musst du wissen, welches das "Zielprogramm" sein soll.
Ansonsten würde ein STRG + V wieder in dein Quellprogramm kopieren.
Ich mache das mit einem meiner Programme so, dass ich das "Zielprogramm" anlerne und dann weiß mein Programm, mit welchem anderen Programm es zusammenarbeiten soll.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.442 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: ClipBord

  Alt 28. Nov 2018, 16:27
Wenn ich es nun richtig verstanden habe, dann wird deine Anwendung mit Strg+T NICHT zur aktiven Anwendung.
Und die Textverarbeitung war und ist immer noch die aktive.
Dann sollte das was KodeZwerg schrieb funktionieren.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#20

AW: ClipBord

  Alt 28. Nov 2018, 17:48
Wenn ich das richtig verstanden habe, dann muss man also vorher einen Text in deiner Anwendung auswählen.
Dann wechselt man in die Textverarbeitung, drückt STRG+T was dann in deiner Anwendung den Text in die Zwischenablage kopiert, und dann soll dieser Text quasi automatisch an der Cursorposition eingefügt werden.

In der Annahme, dass ich das richtig verstanden habe,
wäre es nicht wesentlich einfacher, wenn die Auswahlaktion in deiner Anwendung den Text gleich bei der Auswahl in die Zwischenablage kopiert und der Anwender dann in der Textverarbeitung nur noch STRG+V drückt? Immerhin muss er ja sowieso in deine Anwendung wechseln, um einen Text auszuwählen. Warum dann noch mal das ganze umständlich über STRG+T?
Mal abgesehen, dass du dann ja auch sicherstellen musst, dass die ZielTextverarbeitung nicht STRG+T selbst verwenden möchte, und dass STRG+V eigentlich den meisten Anwendern geläufig ist.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 16:50 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