Idle Time unter Windows

dadevelopa

Mitglied
Hallo zusammen, ich bins mal wieder ;)

Heute habe ich mal ne Frage zu C, ja dem ganz normalen C nix mit # nix mit ++.
Und ich hoffe ihr könnt mir helfen.

Ich versuche seit geraumer Zeit unter Windows die Idle Time herauszufinden. Also die Zeit, welche seit dem letzten Userinput verging.
In der Windows API habe ich die Funktion GetLastInputInfo() gefunden, jedoch weiss ich nicht genau wie ich sie anwenden muss. Wenn ich sie nur so einsetze wird sie nicht gefunden, selbst wenn ich windows.h include.

Ich kann mir vorstellen, dass diese Frage fuer euch Profis ziemlich komisch klingt, jedoch bin ich komplett neu auf dem Gebiet der Windowsprogrammierung und C hab ich auch schon 2 oder 3 Jahre nicht mehr Programmiert.

Ich wäre also fuer Tipps oder Lösungsvorschläge sehr dankbar.
 
Das ist eine Bibliothek, in der du deine Funktion ist.

Steht alles hier .

Im Visual Studio kannst du weitere Bibliotheken in den Projekt Einstellungen
hinzufügen. ( ich denke beim Linker)
Da ich gerade keins hier habe, bin ich mir aber nicht sicher.

Gruß,
Christian
 
Gut danke, habe die lib mal importiert.
Nun tritt aber ein weiterer Fehler auf und zwar wenn ich versuche Global einen Pointer auf das struct LASTINPUTINFO zu erstellen.

Die Fehlermeldung lautet: Syntax Error, missing semicolon before '*'

Die Codezeile lautet so:
Code:
LASTINPUTINFO *plii;

Keine Ahnung was das soll, kannst du mir da auch helfen?
 
Also ich habe nun folgendes gemacht:
Visual C++ Studio installiert und verschiedene Dinge ausprobiert, nun bin ich soweit, dass ich in diesem Code hier:
Code:
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>

int main(int argc, char* argv[]) {
	printf("Hello World!\n");
	LASTINPUTINFO info;
	info.cbSize = sizeof(LASTINPUTINFO);
	GetLastInputInfo(*info);
	return 0;
}
folgende Fehler bekomme:

Code:
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(10) : error C2065: 'LASTINPUTINFO' : undeclared identifier
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(10) : error C2146: syntax error : missing ';' before identifier 'info'
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(10) : error C2065: 'info' : undeclared identifier
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(11) : error C2228: left of '.cbSize' must have class/struct/union type
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(12) : error C2065: 'GetLastInputInfo' : undeclared identifier
C:\Programme\Microsoft Visual Studio\MyProjects\IdleClient\IdleClient.cpp(12) : error C2100: illegal indirection

Könnte mir jemand helfen, ich habe echt keine Ahnung wies weitergehen soll. Was ist den hier falsch... und warum?
 
Nach der MSDN (sollte für sowas deine erste Anlaufstelle sein) gibt es die Funktion erst ab Windows 2000. Du müsstest also für dein Projekt das Präprozessormakro WINVER=0x0500 setzen. Damit läuft dein Programm auch erst ab Windows 2000.
 
Danke für den Tipp, aber das hat auch nix gebracht. Gott ist das kacke.
Das Problem is, dass ich eigentlich einen Sourcecode aus dem Netz eingefügt habe, und der sollte sich ja kompilieren lassen. Scheint also ne Einstellungssache zu sein, oder aber ich bin einfach extremst unfähig.
Es sind immer noch die genau gleichen Fehlermeldungen da, 6 Fehler die ich einfach nicht wegbringe.

Edit: Problem hat sich gelöst. Alles was zu tun war, war die windows.h im von Visual Studio generierten Header zu includen.
 
Zuletzt bearbeitet:
Zurück