AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Shift Cursor Down an anderes Programm senden
Thema durchsuchen
Ansicht
Themen-Optionen

Shift Cursor Down an anderes Programm senden

Ein Thema von Dumpfbacke · begonnen am 22. Jun 2020 · letzter Beitrag vom 16. Sep 2020
Antwort Antwort
Seite 1 von 2  1 2      
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 10:40
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.
Tanja
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#2

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 12:14
Hast du es mal mit PostKeyEx32 resp. PostKeyExHWND probiert?
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 12:44
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.
Tanja

Geändert von Dumpfbacke (22. Jun 2020 um 12:47 Uhr)
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#4

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 14:09
Funktioniert es, wenn sich das Fenster im Vordergrund befindet / den Focus besitzt?
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 16:50
Geht auch nicht.
Tanja
  Mit Zitat antworten Zitat
WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
141 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 17:33
Ich kann es zwar nicht testen, aber das sollte mit SendInputHelper wie folgt funktionieren:
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;
Waldemar Derr
Profil bei GitHub
  Mit Zitat antworten Zitat
ZYLAGON

Registriert seit: 11. Nov 2015
50 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 18:28
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:
SendKeys('+{DOWN}',true);
Das '+'-Zeichen steht für die Shift-Taste und {DOWN} für Cursor nach unten.

VG ZYL
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Shift Cursor Down an anderes Programm senden

  Alt 25. Jun 2020, 10:06
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.
Tanja
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Shift Cursor Down an anderes Programm senden

  Alt 25. Jun 2020, 10:23
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.
Gruß vom KodeZwerg

Geändert von KodeZwerg (25. Jun 2020 um 10:28 Uhr)
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#10

AW: Shift Cursor Down an anderes Programm senden

  Alt 25. Jun 2020, 13:56
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:37 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