Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
30.10.2015, 12:38 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2015 15:52 von jg.)
ich möchte ein Ablauf erstellen der mir auf das momentan geöffnete Fenster eine Zeichenfolge heraus gibt.
Hierzu suche ich eine passende Schnittstelle welche mir diese Funktion erleichtert.
Bsp.: Ich gebe mit der Tastatur xxxaaawww1jd89 ein. Das selbe möchte ich mit einem vi erschlagen.
Es gibt ja auch die Möglichkeit die Tastatur und Maus zu überwachen, warum kann man dies auch nicht herum drehen?
(01.11.2015 18:59 )Rene1304 schrieb: kannst du hier mir ein Bsp. nennen oder zeigen. Es könnte helfen!
Das weis ich, dass ein Beispiel von mir hilft.
Durch das Senden von Steuerinformation (also Tasten, Mausbewegungen, Mausklicks) von einem Programm in ein anderes Programm - ein Fenster ist nichts weiter als ein Programm - ist das eine Programm in der Lage das andere Programm fernzusteuern - logisch. Allerdings ist genau das, um es gelinde auszudrücken, nicht gerne gesehen und das nicht von mir, sondern vom Anwender des anderen Programmes.
Mit dem Befehl SENDINPUT kann man Key-Events und Mouse-Events zur fokusierten Anwendung senden. Siehe bei MSDN. Auch das Senden ebensolcher Sachen an ein beliebiges Fenster (etc.) ist möglich (SendMessage). Allerdings brauchst du dazu den Handle des Fensters.
Und bei aktuellen Betriebssystemen gibt es Schutzmechanismen, die gewisse Manipulationen fremder Handles ohne Hinweis einfach unterdrücken - was auch richtig so ist.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
03.11.2015, 09:20 (Dieser Beitrag wurde zuletzt bearbeitet: 03.11.2015 09:33 von Rene1304.)
Zitat: Mit dem Befehl SENDINPUT kann man Key-Events und Mouse-Events zur fokusierten Anwendung senden. Siehe bei MSDN. Auch das Senden ebensolcher Sachen an ein beliebiges Fenster (etc.) ist möglich (SendMessage). Allerdings brauchst du dazu den Handle des Fensters.
leider hab ich das noch nicht ganz verstanden. Ich kann auch direkt nichts finden, mir fehlt der Ansatz.
Zitat:Und bei aktuellen Betriebssystemen gibt es Schutzmechanismen, die gewisse Manipulationen fremder Handles ohne Hinweis einfach unterdrücken - was auch richtig so ist.
Was ich nicht ganz verstehe, ich kann dies genauso gut mit Makros durchführen. Z.Bsp. mit einer Gaming Maus oder Tastatur. Muss auch hier der Schutzmechanismus umgangen werden? Und wenn ja wie??? Ich dachte es wäre einfacher
bis jetzt
(01.11.2015 20:04 )jg schrieb:
Zitat:Welches Fenster? Ein Fenster innerhalb deiner LV-Anwendung oder ein Fenster irgendwo in Windows, z.B. Word.
ja genau!
Ja genau, aber was? LV oder sonstiges Windows-Programm?
sonstiges wie Windows-Programm
Ich möchte einfach nur meine Makro Tastatur oder Maus nachbilden.
Und das ganze über ein Panel bedienen können.
Ich benötige nur die Software Schnittstelle. Den Rest Außen herum bekomme ich hin.
hast du denn einfach mal nach "MSDN sendinput" gegoogelt - so wie es von IchSelbst angemerkt wurde?
Und nein, es ist nicht trivial, in einem multitasking-fähigem OS mit diversen Schutzmechanismen, die einzelne Programme voneinander fernhalten sollen, von einem Programm aus den Fensterinhalt eines anderen Programms zu beeinflussen. Wenn es das wäre, würde es noch viel mehr Keylogger geben…
(03.11.2015 09:20 )Rene1304 schrieb: Was ich nicht ganz verstehe, ich kann dies genauso gut mit Makros durchführen. Z.Bsp. mit einer Gaming Maus oder Tastatur. Muss auch hier der Schutzmechanismus umgangen werden? Und wenn ja wie??? Ich dachte es wäre einfacher
Ich sag's doch mal so:
Mit so Sachen wie SendInput und ganz besonders SendMessage kannst du letztendlich ein (geeignetes) Programm veranlassen, Geld von einem Konto zu einem anderen Konto zu spenden. Daher werde ich, und ich hoffe der Rest dieses Forums auch, dir nicht sagen, wie man SendInput oder SendMessage anwendet. Es ist zwar schon etwas kniffelig, SendInput etc. mit einer grafischen Programmiersprache zu verwenden - aber irgendwo hört meine Hilfestellung auf und du musst es selber machen (oder in einem C-Forum fragen und nach LV adaptieren).
Allerdings kann ich es mit meinem Gewissen vereinbaren, dir zu sagen wie die Befehle heißen und wo deren Beschreibung zu finden ist (MSDN, und dort gibt es noch vieeeeel, viel mehr). Der Schutzmechanismus ist glaube ich unter UIPI zu finden. Und wenn ich es richtig in Erinnerung habe, gibt es mit SendInput bereits bei Win7 Probleme mit Sachen, die unter XP noch gingen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Ich weiß das Thema ist zwar schon etwas her aber hätte auch mal eine Frage dazu!
Ich habe bereits auch mal die Maus/Tastur Befehle über Labview mit der entsprechenden User32.dll angesteuert. Mich hätte aber jetzt rein informativ mal der Vergleich interessiert wie das so bei einer Gaming Tastatur/Maus bei einem Makro macht bzw. solche Mausrecoder. Basiert das prinzipiell alles gleich das diese auf die User32.dll zugreifen?
(20.01.2016 09:31 )Andi_89 schrieb: Ich weiß das Thema ist zwar schon etwas her aber hätte auch mal eine Frage dazu!
Ich habe bereits auch mal die Maus/Tastur Befehle über Labview mit der entsprechenden User32.dll angesteuert. Mich hätte aber jetzt rein informativ mal der Vergleich interessiert wie das so bei einer Gaming Tastatur/Maus bei einem Makro macht bzw. solche Mausrecoder. Basiert das prinzipiell alles gleich das diese auf die User32.dll zugreifen?
Grundsätzlich schon. Aber so ein Ding braucht einen Treiber, den Du installierst und dabei auch ein Administrator login machst. Dieser Installer mit Admin Rechten kann diesen Treiber dann als System Treiber installieren der innerhalb eines Systemprozesses läuft und damit auch mehr Rechte hat dann ein gewöhnlicher Benützer. Das heisst dieser Treiber darf diese APIs benützen ohne dass UAC, UIPI und was noch alles dazwischen kommt um Dein online Bankkonto und vieles mehr zu schützen.
Natürlich könnte dieser Treiber alles mögliche tun wenn er wollte, aber das ist bei einem renomierten Hersteller recht unwahrscheinlich, denn wenn es rauskommt können sie die Firma gleich schliessen. Bei einem Noname Hersteller aus Nierwegistan ist das schon weniger sicher.