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
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, 09: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, 11: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, 11: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 11: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, 13: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, 15:50
Geht auch nicht.
Tanja
  Mit Zitat antworten Zitat
WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
135 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Shift Cursor Down an anderes Programm senden

  Alt 22. Jun 2020, 16: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
Antwort Antwort


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 07:36 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