BlockInput(problem)



  • Ich habe ein Programm geschrieben, das die Mausbewegungen aufzeichnet und dann emuliert, doch ich habe ein Problem mit dem sperren der Maus mittels BlockInput es funktioniert einfach nicht.
    Könntet ihr mir helfen?

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    void del()
    {
    	system("cls");
    }
    
    int main()
    {
    	const int XSIZE = 100;
    	const int SLEEP = 50;
    
    	POINT MousePos;
    
    	int x[XSIZE];
    	int y[XSIZE];
    	int i = 0;
    
    	cout << "Hit Enter to record" << endl;
    	cin.ignore();
    
    	del();
    
    	cout << "recording...";
    
    	for(; i < XSIZE; ++i)
    	{
    		GetCursorPos(&MousePos);
    		x[i] = MousePos.x;
    		y[i] = MousePos.y;
    		Sleep(SLEEP);
    	}
    
    	del();
    
    	cout << "Hit Enter to play" << endl;
    	cin.ignore();
    
    	BlockInput(true); //<<<
    
    	for(i = 0; i < XSIZE; ++i)
    	{
    		Sleep(SLEEP);
    		SetCursorPos(x[i], y[i]);
    		x[i] = 0;
    		y[i] = 0;
    	}
    
    	del();
    
    	BlockInput(false); //<<<
    
    	cout << "Hit Enter to quit";
    	cin.ignore();
    	return 0;
    }
    


  • Ich hab da noch ein Problem, wenn ich SIZE einen anderen Wert zuweisen ändert sich nichts, die Größe der Arrays x, y und die Schleifenwiederholungen bleiben gleich. 😕



  • Hast du es denn mal mit einer for Schleife probiert?



  • Ja, hab das Problem schon gefunden Visual C++ Express hat meine Projekt datei irgendwie zerstört, ich hab ein neues Projekt mit dem selben Code geschrieben.
    Es funktioniert wieder.
    Doch das BlockInput Problem konnte ich leider noch nicht lösen.



  • Sorry, aber ich weiss nicht wo dein Problem ist. Das Programm läuft fehlerfrei, außerdem würde ich dir raten den Windows Header mit <> statt "" zu inkludieren.



  • Das Problem ist, das ich die Maus blockieren will während diese Schleife ausgeführt wird:

    ...
    for(i = 0; i < XSIZE; ++i)
    	{
    		Sleep(SLEEP);
    		SetCursorPos(x[i], y[i]);
    		x[i] = 0;
    		y[i] = 0;
    	}
    ...
    

Anmelden zum Antworten