-
Du könntest statt SetCursorPos(); auch BlockInput(); benutzen ...
Das blockiert die Tastatur und Maus !
Aber durch STRG+ALT+ENTF deaktiviert man die BlockInput(); Funktion und man kann das Programm über den Taskmanager schließen.
BlockInput(true); // Tastatur und Maus gesperrt
BlockInput(false); //Tastatur und Maus entsperrt
Ist glaub auch in der windows.h drinn bin mir aber gerade nicht sicher, musst halt nachschauen wenns nicht funktionieren sollte.
Mit der while-Schleife würd mir gerade nur ein, zwei Sachen einfallen und zwar:
Code:
int wert = 0;
while(wert < 1000) //nur ein Beispiel wert kann beliebig gesetz werden
{
POINT pt;
SetCursorPos(pt.x = 0, pt.y = 0);
++wert; //wert wir bei jedem Schleifen durchgang um 1 erhöht
ODER:
Code:
int s;
int wert;
cout << "Wieviel Sekunden soll die Maus blockiert werden ?" << endl;
cout << "Ihre Eingabe: ";
cin >> s;
s = s * 10;
while(wert < s)
{
POINT pt;
SetCursorPos(pt.x = 0, pt.y = 0);
Sleep(100);
++wert;
}
return 0;
}
Keine Ahnung ob der letzte Code funktioniert ist mir nur so nebenbei eingefallen muesste aber vom Prinzip schon gehen.
Probiers einfach und sag mir dann ob der letzte Code funktioniert hat. =)
EDIT: mo0wm hat schon die Lösung ist mir gar nicht eingefallen xD.
by >[FaaX]< :twisted:
-
So ich habs jetzt geschafft. ach und mo0wm ich habs
mit getasynkeystate gemacht und ner while schleife versteht sich.
hier mein code:
Code:
#include <windows.h>
#include <iostream>
#include <winuser.h>
using namespace std;
int main()
{
int wert = 90;
while(GetAsyncKeyState(VK_F5)==0)
{
cout << "Wenn du willst das es aufhoert drueck F5" << endl;
POINT pt;
SetCursorPos( pt.x = 0, pt.y = 0 );
Sleep(2000);
++wert;
}
system("Pause");
return EXIT_SUCCESS;
}
für die besonderen mach ich das cout raus =)
-
Ich kann's mir einfach nicht verkneifen ^^
printf von stdio.h (bzw. cstdio für C++) reicht völlig und ohne iostream schrumpft die .EXE von 400 KB auf 16 KB.
printf habe ich außerhalb der Schleife platziert da ein schreiben in stdout Zeitaufwändig ist und es nicht nötig ist.
winuser.h wird bereits von windows.h includiert.
Wozu du "int Wert" brauchst verstehe ich nicht da du außer ihn zu inkrementieren nichts damit anstellst. Variablen in einer Schleife zu vereinbaren habe ich bis jetzt noch nie gesehen aber scheint ja nicht viel zu ändern.
wieso du POINT nimmst ist mir auch unklar, da struct POINT nichts anderes ist als
Code:
struct POINT
{
int x;
int y;
};
Also reicht ein einfacher aufruf der Funktion SetCursorPos mit den gewünschten koordinaten völlig aus.
Code:
#include <windows.h>
#include <stdio.h>
int main()
{
printf("Wenn du willst, dass es aufhoert drueck F5\n");
while(GetAsyncKeyState(VK_F5) == 0)
{
SetCursorPos(0, 0);
/* Sleep(2000); */
}
return 0;
}
mfG. BlackBerry
-
Jo das reicht auch aus, mehr braucht man garnicht^^