Benutzer mit den meisten Antworten
Tastatur Makro - programmieren ?

Frage
-
Mein Vorhaben und gleichzeitig als Übungsprojekt möchte ich eine Art Tastaturmakro-Programm schreiben, das ich dazu verwenden möchte in einer beliebigen "Fremd-Anwendung" Tastatureingaben auszulösen. Z.B. ich drücke in dieser Anwendung die Taste F2 und dies soll z.B. auslösen als ob ich nacheinander die Taste 1 und 2 gedrückt hätte. (Ich hoffe es ist verständlich was gemeint ist, mit Fremd-Anwendung ist ein Programm gemeint das nicht von mir programmiert wurde, sondern das im Vordergrund läuft)
Da ich nicht weiß wo ich ansetzen soll, mit welchen Klassen/Methoden etc. ich sowas realisieren könnte, hoffe ich hier auf Hilfe die auch ein VS C++ Anfänger versteht :-), event. mit Beispiel-Code.
Ich hoffe das ich in diesem Forum für mein Anliegen richtig bin, da ich erst seit kurzer Zeit mit Visual C++ (MS VS C++ 2010 Express) angefangen habe, bzw. versuche mit Büchern zu lernen. (Meine bisherigen Programmiererfahrungen liegen weit zurück und dann auch eher im Bereich Cobol, ABAP, oder auch mal Turbo Pascal )
Herzlichen Dank im Voraus
Thomas
Antworten
-
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 5. Januar 2011 11:43
-
Es ist wird Dich nur frusrieren, wenn Du mit C++/CLI anfängst!
Du macht kein C/C++, sondern C++/CLI!
Siehe dazu auch:
http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/Fehler 1 error LNK2028: Nicht aufgelöstes Token (0A000011) ""extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z<mailto:?GetAsyncKeyState@@$$J14YGFH@Z>)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^>^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z<mailto:?main@@$$HYMHP$01AP$AAVString@System@@@Z>)" verwiesen wird. C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z<mailto:?GetAsyncKeyState@@$$J14YGFH@Z>)" in Funktion ""int __clrcall main(cli::array<class System::String ^>^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z<mailto:?main@@$$HYMHP$01AP$AAVString@System@@@Z>)". C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
Fehler 3 error LNK1120: 2 nicht aufgelöste externe Verweise. C:\Beispiele\Kap04\Tastatureingabe02\Debug\Tastatureingabe02.exe 1Zu Deinen Fehlern:
Füge in Deinem Code Folgende Zeile ein:
#pragma comment(lib, "User32.lib")
Jochen Kalmbach (MVP VC++)- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 5. Januar 2011 11:43
Alle Antworten
-
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 5. Januar 2011 11:43
-
Hallo Jochen zunächst einmal danke für deine schnelle Antwort.
Wie ich bereist geschrieben habe, bin ich Visual C++ Anfänger, und so habe ich einfach deine Methodennamen mit VS C++ 2010 (Express) ein neues Windows Forms-Anwendung kopiert den Cursor darauf positioniert und F1 gedrück.
Offlinehilfe gabs keine und bei der Onlinehilfe zu z.B. GetAsyncKeyState oder GetKeyboardState, kamen einige Links, aber mit meinem bisherigen Kenntnisstand kann ich da nur raten was da überhaupt zu Visual C++ gehört, oder was nicht. (Oder es gibt einen einfacheren Weg sich bei MSDN oder in MS VS 2010 nach genau dem zu suchen was man braucht und ich verstehe es noch nicht )
Googeln kann man natürlich auch aber bei fast 20.000 Suchtreffern, empfinde ich das etwas mühsam sich das Richtige auszusuchen.
Würde mich freuen zu erfahren wie man aus VS heraus optimale Beschreibungen zu Schlüsselwörtern oder Methoden etc. etc. bekommt.
Im voraus besten Dank
Thomas
Mein Code sieht bisher so aus aber leider bekomme ich Fehlermeldungen:
#include "stdafx.h" #include "Form1.h" #include <io.h> #include <Windows.h> #include <WinUser.h> using namespace Tastatureingabe02; [STAThreadAttribute] int main(array<System::String ^> ^args) { // Schleifenanfang - Abfragen ob Taste A gedrückt wurde if(GetAsyncKeyState('A') == -32767) { // Mach etwas } // Schleifenende // Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Hauptfenster erstellen und ausführen Application::Run(gcnew Form1()); return 0; }
Fehler 1 error LNK2028: Nicht aufgelöstes Token (0A000011) ""extern "C" short __stdcall GetAsyncKeyState(int)" (a href="mailto:?GetAsyncKeyState@@$$J14YGFH@Z">?GetAsyncKeyState@@$$J14YGFH@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
FFehler 3 error LNK1120: 2 nicht aufgelöste externe Verweise. C:\Beispiele\Kap04\Tastatureingabe02\Debug\Tastatureingabe02.exe 1- Bearbeitet Robert BreitenhoferModerator Mittwoch, 5. Januar 2011 12:02 Formatierung
-
Es ist wird Dich nur frusrieren, wenn Du mit C++/CLI anfängst!
Du macht kein C/C++, sondern C++/CLI!
Siehe dazu auch:
http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/Fehler 1 error LNK2028: Nicht aufgelöstes Token (0A000011) ""extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z<mailto:?GetAsyncKeyState@@$$J14YGFH@Z>)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^>^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z<mailto:?main@@$$HYMHP$01AP$AAVString@System@@@Z>)" verwiesen wird. C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z<mailto:?GetAsyncKeyState@@$$J14YGFH@Z>)" in Funktion ""int __clrcall main(cli::array<class System::String ^>^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z<mailto:?main@@$$HYMHP$01AP$AAVString@System@@@Z>)". C:\Beispiele\Kap04\Tastatureingabe02\Tastatureingabe02.obj
Fehler 3 error LNK1120: 2 nicht aufgelöste externe Verweise. C:\Beispiele\Kap04\Tastatureingabe02\Debug\Tastatureingabe02.exe 1Zu Deinen Fehlern:
Füge in Deinem Code Folgende Zeile ein:
#pragma comment(lib, "User32.lib")
Jochen Kalmbach (MVP VC++)- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 5. Januar 2011 11:43