Servus
Ich habe ein kleines Problem mit - SendInput -
Meines Wissens nach, muss man als 3. Parameter der Funktion die Groeße des Inputs angeben.
Doch wie genau kann ich diese Groeße herausfinden?
Schon einmal DANKE im Vorraus.
Probleme mit SendInput
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Probleme mit SendInput
Was für SendInput?
Welches System?
Welche Bibliothek?
Welche Version?
Kleiner Tip: eine Frage, die man mit 5 weiteren Fragen beantworten muss, ist keine gute Frage. Zweiter versuch, diesmal etwas besser bitte.
http://www.proggen.org/doku.php?id=faq:frageformulieren
Welches System?
Welche Bibliothek?
Welche Version?
Indem man die Referenz oder Anleitung der Bibliothek liest.darkangel hat geschrieben:Meines Wissens nach, muss man als 3. Parameter der Funktion die Groeße des Inputs angeben.
Doch wie genau kann ich diese Groeße herausfinden?
Kleiner Tip: eine Frage, die man mit 5 weiteren Fragen beantworten muss, ist keine gute Frage. Zweiter versuch, diesmal etwas besser bitte.
http://www.proggen.org/doku.php?id=faq:frageformulieren
Haters gonna hate, potatoes gonna potate.
Re: Probleme mit SendInput
Ok.
Also..
Ich wollte eigentlich eine Tastenkombination/Tastatureingaben simulieren.
Und irgendwo in Google habe ich dann eben gelesen, dass sich - SendInput - dafuer eignen wuerde.
Ich benutze Windows XP.
Zwar habe ich die Beschreibung, der Funktion
http://msdn.microsoft.com/en-us/library/ms646310.aspx
und die Virtual-Key Codes dazu
http://msdn.microsoft.com/en-us/library ... S.85).aspx
gefunden.
Doch wie schon erwaehnt, habe ich keine Ahnung, womit ich den 3. Parameter fuellen soll.
Also habe ich es einfach mal so versucht:
Aber, wer haette das gedacht, es funktioniert nicht.
Der Compiler meldet: error: invalid conversion from 'int' to 'tagINPUT*'
Auf - #define _WIN32_WINNT 0x0501 - hat mich irgendein Eintrag in Google gebracht.
Zwar verstehe ich diese Zeile nicht ganz, doch muss es irgendetwas mit der Deklaration von - SendInput - zu tun haben.
Oder?
Jedenfalls wird die Funktion sonst nicht erkannt.
Ist diese Beschreibung besser?
Ich entschuldige mich jedenfalls fuer meinen vorherigen Eintrag^.^
Also..
Ich wollte eigentlich eine Tastenkombination/Tastatureingaben simulieren.
Und irgendwo in Google habe ich dann eben gelesen, dass sich - SendInput - dafuer eignen wuerde.
Ich benutze Windows XP.
Zwar habe ich die Beschreibung, der Funktion
http://msdn.microsoft.com/en-us/library/ms646310.aspx
und die Virtual-Key Codes dazu
http://msdn.microsoft.com/en-us/library ... S.85).aspx
gefunden.
Doch wie schon erwaehnt, habe ich keine Ahnung, womit ich den 3. Parameter fuellen soll.
Also habe ich es einfach mal so versucht:
Code: Alles auswählen
#define _WIN32_WINNT 0x0501
#include<windows.h>
int main()
{
SendInput(1,
0x44,
sizeof(0x44));
}
Der Compiler meldet: error: invalid conversion from 'int' to 'tagINPUT*'
Auf - #define _WIN32_WINNT 0x0501 - hat mich irgendein Eintrag in Google gebracht.
Zwar verstehe ich diese Zeile nicht ganz, doch muss es irgendetwas mit der Deklaration von - SendInput - zu tun haben.
Oder?
Jedenfalls wird die Funktion sonst nicht erkannt.
Ist diese Beschreibung besser?
Ich entschuldige mich jedenfalls fuer meinen vorherigen Eintrag^.^
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Probleme mit SendInput
Es ist auf jedenfall notwendig, dass Du beschreibst, woher eine Funktion kommt, wenn es nicht grade printf ist.
Da muss ein Zeiger auf eine INPUT Struktur rein, Du packst die 44 rein - was immer die 44 ist.
Daher auch die Fehlermeldung, dass ein int (die 44) kein Zeiger auf eine Input-Struktur ist.
Code: Alles auswählen
UINT SendInput(
UINT nInputs,
LPINPUT pInputs,
int cbSize )
Daher auch die Fehlermeldung, dass ein int (die 44) kein Zeiger auf eine Input-Struktur ist.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Probleme mit SendInput
Schon viel besser...
Versuchs mal so:
Bitte lies dir genau die Referenz durch, dort steht alles genau erklärt.
ps.: WinAPI und MSDN suxx
Bitte nicht irgendwelchen Code kopieren ohne ihn zu verstehen! Das kann zu großen Problemen führen. Vor allem gilt in C die Faustregel: alles was mit __ Anfängt gehört dem Compiler und soll tunlichst nicht angegriffen werden. Von solchen grundlegenden definitionen bitte die finger lassen. Aber immerhin, hast schon gegoogelt und versucht die Lösung zu finden. *Thumbs Up*darkangel hat geschrieben:Auf - #define _WIN32_WINNT 0x0501 - hat mich irgendein Eintrag in Google gebracht.
Na dann lies doch deine eigenen Links!darkangel hat geschrieben: Zwar habe ich die Beschreibung, der Funktion
http://msdn.microsoft.com/en-us/library/ms646310.aspx
und die Virtual-Key Codes dazu
http://msdn.microsoft.com/en-us/library ... S.85).aspx
gefunden.
Doch wie schon erwaehnt, habe ich keine Ahnung, womit ich den 3. Parameter fuellen soll.
Sagt doch schon alles, oder? Du brauchst erstmal eine Struktur vom typ INPUT. Diese richtest du dann richtig ein und übergibst einen Zeiger darauf auf die Funktion. Was die Struktur ist und wie man sie einrichtet, bitte der MSDN entnehmen.MSDN hat geschrieben:pInputs [in] Pointer to an array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream.
Richtig. Wie gesagt, die Funktion nimmt einen Zeiger auf eine Struktur als Argument und kein Integer.darkangel hat geschrieben:Zwar verstehe ich diese Zeile nicht ganz, doch muss es irgendetwas mit der Deklaration von - SendInput - zu tun haben.
Oder?
Versuchs mal so:
Code: Alles auswählen
#include<Windows.h> /* Ich glaube das gehört groß...*/
int main()
{
INPUT inp;
/* hier dein Keyboardinput struct füllen. */
SendInput(1,
&inp,
sizeof(inp));
return 0; /* Eigentlich nicht notwendig aber bitte guten Stil befolgen und auch der main funktion einen return wert geben. */
}
Ja viel besser. Da brauchst du dich nicht zu entschuldigen, reicht schon wenn dus ab jetzt besser machst. Du musst nur verstehen, aus deiner ursprünglichen Frage hat man wirklich nichts herauslesen können...darkangel hat geschrieben:Ist diese Beschreibung besser?
Ich entschuldige mich jedenfalls fuer meinen vorherigen Eintrag^.^
ps.: WinAPI und MSDN suxx

Haters gonna hate, potatoes gonna potate.