SendInput probleme
-
Hi Leute
Ich versuch die funktion SendInput zu benutzen nur er gibt mir immer diese Fehler aus:E:\sicherung\ubuntu\Projekt\lernen\main.cpp||In function 'void hop(bool)':| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|10|error: 'INPUT' was not declared in this scope| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|10|error: expected ';' before 'data'| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|11|error: 'data' was not declared in this scope| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|11|error: 'INPUT_KEYBOARD' was not declared in this scope| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|28|error: 'SendInput' was not declared in this scope| E:\sicherung\ubuntu\Projekt\lernen\main.cpp|64|warning: unused variable 'puffer'| ||=== Build finished: 5 errors, 1 warnings ===|
Ich arbeite mit Code::Blocks mingw.
In der Dokumentation von SendInput steht das die Vorausetzungen:
windows.h
user32.lib
user32.dllsind aber das gleiche steht auch bei der funktion keybd_even() und dort kommt ein solcher Fehler nicht.
Meine 2. Frage ist wie kann ich DLL Dateien importieren in meinem Programm?
PS:
Ich bin neu in der WinApi under der Programmierung unter Win.
-
Schreib am besten mal deinen Code dazu ansonsten wird man dir nur schwer helfen können
-
#include <windows.h> #include <iostream> using namespace std; void kes_s(bool mod) { INPUT data; data.type = INPUT_KEYBOARD; data.ki.wVk = VK_SPACE; bool down=false; if(!mod) { return; } while(true) { if(WM_KEYDOWN) { if(GetAsyncKeyState(VK_SPACE)) { if(down) { SendInput(1, &data, sizeof(data)); down=false; }else{ down=true; } } } } } int main() { //.... }
Ich versuch das auf ein anderes Programm die Taste zu übergeben.
-
Ergänze bitte um conio.h:
#include <windows.h> #include <conio.h> //console and port I/O declarations. #include <iostream>
HTH,
Martin
-
Kompiliert bei mir (VS 2010) ohne Probleme.
Scheint also ein Problem mit den headern von code::blocks oder sowas zu sein.
-
Mh immer nich der gleiche fehler auch mit #include <conio.h> .
-
Such mal in der Datei
winuser.h
die Funktionsdeklaration von SendInput, ist sie vorhanden?
SendInput ist erst ab WinNT 4.0 verfügbar, also musst du vor dem Einbinden von windows.h eventuell ein#define _WIN32_WINNT 0x0400 // bzw. gleich #define _WIN32_WINNT 0x0501 // WinXP #include <windows.h>
schreiben.
Btw: if(WM_KEYDOWN) kannst du rausnehmen, WM_KEYDOWN ist eine Konstante mit einem Wert ungleich 0, die Bedingung ist sowieso immer erfüllt.
-
@Vicious Falcon
So jetzt gehts danke.