![]() |
Re: Text an Eingabezeile schicken
Gut, ähm, dann stellt sich die Frage, wie OnHotKey zu deklarieren ist. Es ist keine procedure, also fällt "procedure (T)SysHot.OnHotKey();" weg. "SysHotKey.OnHotKey:=procedure1" geht auch nicht, genauso wenig wie "SysHotKey.OnHotKey:=Button2Click(Sender);".
Diese Möglichkeiten kenne ich und die haben bis jetzt auch immer gereicht. Wie muss ich das denn aufrufen? :?: btw: ist echt schade, dass es dazu noch nix anderes im Forum gibt (OnHotKey). Habe nur einen Thread gefunden, in dem jemand die Möglichkeit anbot, F-Tasten auf Buttons zu legen, aber ich brauche auch STRG etc. :cyclops: |
Re: Text an Eingabezeile schicken
Joah... TSyshotKey ist eine plazierbare nicht-visuelle Komponente, du musst sie nur installieren :)
|
Re: Text an Eingabezeile schicken
Also ich hab die Komponente installiert, indem ich ...
Komponente -> Neue Komponente -> Vorfahrtyp=TCustomHotKey [ComCtrls] -> KlassenName=SysHotKey -> (Palettenseite=Beispiele) -> Name der Unit=SysHotKey.pas Aber es tritt immer noch der selbe Fehler auf. [edit]Ich bin doof. Hab vergessen, die Komponente zu platzieren ;D Aber was mache ich jetzt damit? Die hat keine Ereignis-Methoden und keine sinnvollen Eigenschaften :-/[/edit] [edit2]Interessant wäre auch die Möglichkeit, "Enter" an die Anwendung zu schicken. "SendKey1.Keys:=vk_return;" geht nicht, weil vk_return ein Integer ist. Oder soll ich doch (später) die Buttons des Clients herausfinden und dann einen Schalter "drücken"?[/edit2] |
Re: Text an Eingabezeile schicken
Komponenten installierst du so:
Komponente -> Komponente installieren -> in neues Package die Taste Enter kannst du entweder mit #13 oder als '[enter]' senden. |
Re: Text an Eingabezeile schicken
Ok, die Komponente ist installiert, zumindest in der Palette verfügbar, aber was fange ich jetzt damit an?
Langsam fühle ich mich echt scheiße :-/ Ah ja,
Delphi-Quellcode:
... funktioniert sehr schön, allerdings kann ich das nicht zwei Mal hintereinander ausführen (hat jedenfalls keinen Effekt). Auch mit einer Delay dazwischen (500=500ms?) kann ich keinen Effekt erzielen. Eigentlich hat Delay überhaupt keinen Effekt, nichtmal bei 5000.
SendKey1.Keys:=#13;
SendKey1.TitleText:='Offenbarung'; SendKey1.execute; Ich könnte aber einen Timer einbauen! *kniffel* [edit]Mit einem Timer gelöst. Aber wozu ist dann die Delay-Funktion? :idea: [/edit] |
Re: Text an Eingabezeile schicken
Hm, Dani, kannst du mir noch bei dem GlobalHotKey helfen? Dann hätte ich 's eigentlich schon fast geschafft :drunken:
|
Re: Text an Eingabezeile schicken
Joah, mal schauen...
- Deine SysHotKey Komponente auf dem Formular platzieren (Active = true). - Im OnHotKey Event der Komponente deinen Code einfügen. - Im OnCreate des Formulars einen Hotkey hinzufügen
Delphi-Quellcode:
- Compilieren
SysHotKey1.AddHotKey(vkB, [hkAlt, hkCtrl]);
|
Re: Text an Eingabezeile schicken
Ich hab die HotKey-Komponente platziert, aber die hat keine Events und auch keine Active-Eigenschaft. Hab ich die vielleicht falsch installiert?
[edit]Ich antworte zu schnell. Hab 's nochmal neu installiert und jetzt geht 's. Ich werde morgen daran rumschrauben ;-) Na ja, aber ein OnHotKey gibt 's nicht. Ich sehe nur OnChange, OnContextPopUp, OnEnter, OnExit, OnMouseDown/Up/Move, PopupMenu.[/edit] |
Re: Text an Eingabezeile schicken
Gibt es eine Möglichkeit, "SendKey1.TitleText:='Offenbarung';" so zu umgehen, dass ich da ein Handle reinschreiben kann? Mir ist aufgefallen, dass es vorkommen kann, dass mehr als eine Anwendung mit dem selben Titil gestartet ist. Das Handle kriege ich ja recht unkompliziert mit "GetForegroundWindow".
|
Re: Text an Eingabezeile schicken
Du musst die Eigenschaft TitleText nicht ausfüllen. Lass sie leer, dann wird der Text an das Fenster geschickt, das aktuell den Fokus hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 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