| Autor | Beitrag | 
| Alice 
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Do 11.07.13 14:44 
 
Hallo Boardies,
 ich will einen Telefonie Client Quasi Fernsteuern. x86 / x64 unter Win7
 
 Manuell geht das so:
 
 Start:
 TelNrFeld: Leer
 Button 'Anrufen': Disabled
 
 Manuelle Eingabe:
 Nummer eingeben im TelNrFeld
 den Button 'Anrufen' (nun Enabled) betätigen.
 
 Im Prinzip will ich genau das selbe, halt von außerhalb Steuern.
 
 Bisheriges Vorgehensweise:
 Application Handle holen  ->  Findwindowbytitle
 ID des Controls darin auslesen  ->  GetDlgCtrlID
 
 dann per Sendmessage, WM_SETTEXT die Nummer übergeben.
 Button 'Anrufen' drücken.
 
 klappt soweit auch alles, d.h. Text(Nr) übergeben, Button drücken
 
 Jedoch bleibt der Button 'Anrufen' Disabled nachdem ich den Text per Sendmessage
 reingeschrieben habe, danach kann ich natürlich keinen button betätigen da
 er noch disabled ist. sobald ich manuell in das textfeld eine zb. führende zusätzliche null
 ist der Button Enabled und der buttonpress via fernsteuerung gelingt.
 
 was muss ich ändern?
 
 thx
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Do 11.07.13 15:24 
 
Probier mal SendInput:
msdn.microsoft.com/e...646310(v=vs.85).aspx Vielleicht aktiviert das den Button, wenn der Programmierer das bei Mousedown oder Mouseup eingebaut hat. | 
|  | 
| Alice  
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Do 11.07.13 16:01 
 
hi,
 erstmal danke für den tip.
 
 ich probiere das mal aus, kannte ich gar nicht!
 | 
|  | 
| Alice  
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Mo 15.07.13 07:51 
 
	  |  Alice hat folgendes geschrieben  : |  	  | hi, 
 erstmal danke für den tip.
 
 ich probiere das mal aus, kannte ich gar nicht!
 | 
 Also mit 'Sendinput' läuft das ganze nun gut, hier Lokal auf meinem Rechner. Danke !
 Jedoch tut sich mir grade ein anderes Problem auf: 
 Die zu Steuernde Applikation läuft innerhalb von Citrix.
 Wenn ich mir nun die Applikation innerhalb der Citrix Welt ansehen, sehe ich das nur das MainWindow
 ein Handle bekommt, alle anderen eingebetteten Controls werden anscheinend nicht mit übergeben.
 Somit komme ich nicht an die einzelnen Controls innerhalb der Form heran und kann nichts Steuern usw.
 Irgendwelche Tips hierzu?, oder gibt es eine Mögl. Citrix dazu zu bewegen alle Handles dieses Programms zu übergeben?
 Alice | 
|  | 
| Narses 
          
  Beiträge: 10183
 Erhaltene Danke: 1256
 
 W10ent
 TP3 .. D7pro .. D10.2CE
 
 | 
Verfasst: Mo 15.07.13 12:59 
 
Moin!
 	  |  Alice hat folgendes geschrieben  : |  	  | Die zu Steuernde Applikation läuft innerhalb von Citrix. [...]
 Irgendwelche Tips hierzu?
 | 
 Starte deine Anwendung im Kontext der Citrix-Session (also auf dem Server). Lokal auf deinem Rechner (also dem Session-Host) kommst du da nicht ran (und das ist auch gut so).
 cu
 Narses_________________ There are 10 types of people - those who understand binary and those who don´t.
 | 
|  | 
| Alice  
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Mo 15.07.13 16:00 
 
ich hatte schon versucht, innerhalb einer Citrix-Session über eine gemountetes verzeichniss die app.
 zu starten und es so zu versuchen, dennoch kein zugriff auf die handles.
 	  |  Narses hat folgendes geschrieben  : |  	  | Moin! Starte deine Anwendung im Kontext der Citrix-Session (also auf dem Server). Lokal auf deinem Rechner (also dem Session-Host) kommst du da nicht ran (und das ist auch gut so).
 
 | 
 ok, was heisst das genau?
 wo muss meine kleine app liegen und wie muss ich sie starten damit ich
 auf die handles zugreifen kann, danke dir    Alice | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Mo 15.07.13 19:14 
 
Du greifst ja mit Citrix auf einen Server zu. Und genau dort muss parallel zu dem zu steuernden Programm auch dein Programm liegen. | 
|  | 
| Alice  
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Mi 17.07.13 15:17 
 
Mir ist es hiermit gelungen einen Text in eine Fremde Applikation zu schreiben, 
 jedoch nicht das senden eines zb. " Ctrl + D "
 Wie kann ich das mit der o.g. Funktion bewerkstelligen?
 Danke
 Alice | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Mi 17.07.13 16:25 
 
In welcher Reihenfolge sendest du denn?
Funktionieren sollte:
 Ctrl down, D down, D up, Ctrl up
 | 
|  | 
| Alice  
          Beiträge: 120
 
 
 
 
 | 
Verfasst: Fr 16.08.13 08:33 
 
	  |  jaenicke hat folgendes geschrieben  : |  	  | In welcher Reihenfolge sendest du denn? Funktionieren sollte:
 Ctrl down, D down, D up, Ctrl up
 | 
 Hi,
 so hatte ich das auch Versucht. Leider ohne erfolg.
 Mit welcher Funktion bewerkstellige ich das am besten?
 thx
 Alice | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Fr 16.08.13 09:34 
 
Vielleicht hilft dir das weiter, das ist ein Wrapper für diese Funktion:
www.delphipraxis.net...put-vereinfacht.html Da du deinen Quelltext nicht gepostet hast, kann ich nicht sagen warum das bei dir nicht funktioniert. Prinzipiell kann die Funktion jedenfalls auch Tastenkombinationen simulieren. | 
|  |