![]() |
Shift Cursor Down an anderes Programm senden
Hallo Delphianer,
ich bin so langsam hier komplett am verzweifeln. Ich muss ein anderes Programm steuern. Hierzu muss ich Datensätzte dort markieren. HIerzu möchte ich mittels VK_Home auf den ersten Datensatz springen. Nun möchte ich nur Shift und zwei mal Cursor down um die erste Drei der 5 Datensätze ich hier zu markieren. Egal was ich versuche es geht einfach nicht. Ich kann kein Shift an der fenster schicken bzw es kommt nur Cursor Down dort an. Dieses hat aber den Nachteil das natürlich die Datensätze nicht merkiert sind. Was ich schon alles versucht habe kan ich schon gar nich tmehr sagen. Das Handel des Fenster suchen geht ja ganz einfach. Dann habe ich mittes LB_SetSel die Datensätze markiert. Es funktioniert und die Datensätze sind dann auch markiert aber wenn die Date Daten dann mit den zweiten Button übernehme ist nur der erst Datensatz übernommen. Also dachte ich mir OK markiere dann einfach den ersten Datsatz und drücke dann shift und Cursor Down bis zum letzte. Also Postmessage oder Sendmessage(wndChild, WM_Keydown, VK_Shift,0) dann Postmessage / Sendmessage (wndChild, WM_keydown, VK_Down,0) und dann bei mit WM_SysKeyUp loslassen. Zuerst den Cursor und dann Shift. Leider funktioniert es einfach nicht. Hat so etwas hier schon mal jemand gemacht ? Ich habe mir schnell mal ein eigenes Programm geschrieben mit nur einer Listbox drin. Dort geht es auch nicht. Ich wollte prüfen ob es ggf an den anderen Programm liegt. Kann mir jemand hier helfen und hat etwas schon mal gemacht. Wie gesagt alle Key kommen an nur nicht wenn ich das ganze mittels Shift machen möchte. Das ganze ist wie verhext. Ich wollte das ganze mal schnell an einem Nachmittag erledigen und nun bin ich schon seit Wochen dran unbd bekomme es einfach nicht hin. |
AW: Shift Cursor Down an anderes Programm senden
Hast du es mal mit
![]() |
AW: Shift Cursor Down an anderes Programm senden
Ja das habe ich auch schon mal versucht geht leider auch nicht bei PostKeyExHWND.
Das ganze ist wie verhext. Das haupt Problem ist das es mit LB_SETSEL nicht funktioniert. Ich kann es zwar markieren aber das Programm erkennt es dann nicht. D.h. es ist in der Listbox markiert aber man kann den Button zu übernehmen nicht drücken. Dieses wird erst dann frei wenn an etwss in der List box ausgewählt hat. Somit erkennt es das Programm leider nicht. Deshalb wollte ich es mit dem Cursor machen. |
AW: Shift Cursor Down an anderes Programm senden
Funktioniert es, wenn sich das Fenster im Vordergrund befindet / den Focus besitzt?
|
AW: Shift Cursor Down an anderes Programm senden
Geht auch nicht.
|
AW: Shift Cursor Down an anderes Programm senden
Ich kann es zwar nicht testen, aber das sollte mit
![]()
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var SIH: TSendInputHelper; begin SIH := TSendInputHelper.Create; try SIH.AddVirtualKey(VK_HOME); SIH.AddShift(ssShift, True, False); SIH.AddVirtualKey(VK_DOWN); SIH.AddVirtualKey(VK_DOWN); SIH.AddShift(ssShift, False, True); SIH.Flush; finally SIH.Free; end; end; |
AW: Shift Cursor Down an anderes Programm senden
Mit sndkey32.pas sollte das funktionieren.
Die Unit einbinden, sicherstellen, dass das richtige Fenster aktiviert ist und mittels dem Sendkey-Befehl den Tastendruck simulieren. Sollte dann ungefähr so lauten:
Delphi-Quellcode:
SendKeys('+{DOWN}',true);
Das '+'-Zeichen steht für die Shift-Taste und {DOWN} für Cursor nach unten. VG ZYL |
AW: Shift Cursor Down an anderes Programm senden
Mein Problem ist das ich es direkt an das Fenster schikcen möchte da das Programm auf einen Terminalserver läuft. Dort funktioniert es so nicht oder man muss hier ständig "angemeldet" sein.
Es geht mit allem möglichem hier. Es muss eine Besonderheit bei der Shuft Tasete geben. Alles geht nur wenn ich Shift drücken möchte geht es einfach nicht. Das ganze ist wie verhext hier. |
AW: Shift Cursor Down an anderes Programm senden
Hallo Dumpfbacke,
gibt es ein Demoprojekt mit dem man sich beschäftigen könnte um Dein Problem zu lösen? //edit also ich mein eine Demo vom Zielprogramm, nicht ein Delphi source der SendKeys o.ä. beinhaltet. |
AW: Shift Cursor Down an anderes Programm senden
Ich bin mir jetzt nicht mehr sicher (schon ewig nix mehr damit gemacht), aber gab es da nicht auch noch die feine Unterscheidung zwischen den linken und rechten Shift Tasten? Also vk_LShift und vk_RShift? Während das vk_Shift wiederum was spezielles darstellt? Ich denke, da musste ich mal bei der Verwendung der AsyncKeyState Routinen aufpassen. Glaub ich...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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