AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Klick in Programmbereich Simulieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klick in Programmbereich Simulieren

Ein Thema von jacky213 · begonnen am 26. Feb 2020 · letzter Beitrag vom 1. Mär 2020
Antwort Antwort
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#1

AW: Klick in Programmbereich Simulieren

  Alt 27. Feb 2020, 20:37
Es ist ein Waren wirtschafts Programm. Es ist nicht von mir. Es hat ein Tastenfeld inwelchem man die EAN eingeben kann um nach Kommissionierten Artikeln zu suchen. Anstatt nun jede Nummer einzeln einzugeben, wollte ich eine Liste abarbeiten lassen und immer wenn ich auf weiter klicke sollte die nächste Nummer eingegeben und gesucht werden.

Zur Zeit bekomme ich nur das Handle der hauptform und jeder Button welcher sich auf der Form selbst befindet wird mir als TButton angezeigt, ich bekomme einfach kein eindeutiges Handle. Nur die ControlID ist bei jedem Button anders.
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#2

AW: Klick in Programmbereich Simulieren

  Alt 27. Feb 2020, 22:33
Es muss nicht zwingend im Hintergrund sein wenn es hilft. Ich habe jetzt mittels Coursor Positionierung und dem Code geschafft das sich was tut, allerdings reagieren einige Buttons trotzdem nicht auf den Klick, wenn ich aber mit der Maus dorthin Klicke dann funktioniert es. Keine Ahnung woran es liegt.

Delphi-Quellcode:
Procedure ClickNow;
var
eu: array [0..1] of TInput;
begin
  SetCursorPos(strtoint(form2.ListView1.Selected.SubItems[0]),
               strtoint(form2.ListView1.Selected.SubItems[1]));
  ZeroMemory(@eu,sizeof(eu));
  eu[0].Itype := INPUT_MOUSE;
  eu[0].mi.dwFlags :=MOUSEEVENTF_LEFTDOWN;
  eu[1].Itype := INPUT_MOUSE;
  eu[1].mi.dwFlags :=MOUSEEVENTF_LEFTUP;
  SendInput(2,eu[0],sizeof(TInput));
end;
  Mit Zitat antworten Zitat
Alt 28. Feb 2020, 00:26     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Klick in Programmbereich Simulieren

  Alt 28. Feb 2020, 08:34
Ich habe mal vor vielen Jahren etwas ähnliches gemacht und an eine Anwendung "Tastatur-Ereignisse" geschickt. Hoch, Runter, Tabs und Buchstaben.
Funktioniert hatte das bedingt, aber konkret helfen kann ich Dir leider hier nicht.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#5

AW: Klick in Programmbereich Simulieren

  Alt 28. Feb 2020, 08:39
Die Koordinaten stimmen, gibt es die Möglichkeit einen richtigen Hardware Maus Klick zu simulierten?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Klick in Programmbereich Simulieren

  Alt 28. Feb 2020, 08:50
oldschool methode von www.swissdelphicenter.ch

Delphi-Quellcode:
// Set the mouse cursor to position x,y:
// Maus an Position x,y setzen:
SetCursorPos(x, y);

// Simulate the left mouse button down
// Linke Maustaste simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate the right mouse button down
// Rechte Maustaste simulieren
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);

// Simulate a double click
// Einen Doppelklick simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
GetDoubleClickTime;
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate a double click on a panel
// Einen Doppelklick auf einen Panel simulieren
SendMessage(Panel1.Handle, WM_LBUTTONDBLCLK, 10, 10);
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#7

AW: Klick in Programmbereich Simulieren

  Alt 28. Feb 2020, 11:52
Ich habe jetzt mal eine Maus an den Rechner angeschlossen weil mich der Touch einfach mal total nervt und als ich damit am arbeiten war wurden selbst echte klicks mit der Maus teilweise nicht mehr angenommen?!?

Aber wirklich nur auf manchen Tasten des Nummernblocks auf dem Display, Touch funktionierte bis jetzt ohne jemals Probleme gemacht zu haben.

Sehr komisch
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#8

AW: Klick in Programmbereich Simulieren

  Alt 1. Mär 2020, 08:45
oldschool methode von www.swissdelphicenter.ch

Delphi-Quellcode:
// Set the mouse cursor to position x,y:
// Maus an Position x,y setzen:
SetCursorPos(x, y);

// Simulate the left mouse button down
// Linke Maustaste simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate the right mouse button down
// Rechte Maustaste simulieren
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);

// Simulate a double click
// Einen Doppelklick simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
GetDoubleClickTime;
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate a double click on a panel
// Einen Doppelklick auf einen Panel simulieren
SendMessage(Panel1.Handle, WM_LBUTTONDBLCLK, 10, 10);
Von MOUSEEVENTF_LEFTDOWN und MOUSEEVENTF_LEFTUP habe ich bisher noch gar nichts gehört oder gelesen. WO sind diese Konstanten definiert? Und wie arbeiten die mouse_event() funktionen. Oder gibt es die irgendwo schon?

@Frühlingsrolle: Super! Danke auch von mir! So etwas suche ich auch gerade.

Geändert von DualCoreCpu ( 1. Mär 2020 um 09:18 Uhr)
  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 08:53 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