Привет, ребята. Я работаю над написанием программы, которая будет делать несколько щелчков мышью для меня в цикле.Я создал структуру и установил для нее тип INPUT_MOUSE для репликации щелчков и использовал SendInput () для отправки информации.все компилируется правильно и может быть названо «рабочей» программой, но я столкнулся с довольно забавным сбоем.Я написал программу на своем ноутбуке (Windows Vista) попробовал, и она работала нормально.Когда я переписываю тот же самый точный код и использую его на своем рабочем столе (Windows 7), когда я запускаю программу, мой экран становится черным, как только я запускаю часть программы автоматизации, как это происходит, когда она переходит в спящий режим.программа будет работать в фоновом режиме просто отлично, но это своего рода боль, которую автомат затмевает мой экран.Есть идеи, что здесь происходит?Я могу отобразить код, если это необходимо.Заранее спасибо.
по запросу. Я добавляю свой код
enter code here
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
void clicky(int x, int y)
{
// 5 sec wait
clock_t run;
run = clock()+5*CLOCKS_PER_SEC;
while (clock() < run) {}
//plug in cursor coords and click down and up
SetCursorPos(x,y);
INPUT mouse;
mouse.type = INPUT_MOUSE;
mouse.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1,&mouse,sizeof(INPUT));
mouse.type = INPUT_MOUSE;
mouse.mi.dwFlags= MOUSEEVENTF_LEFTUP;
SendInput(1,&mouse,sizeof(INPUT));
}
void main()
{
int coords=0;
string h;
//find out how many clicks are needed
cout << "How many clicks will you need?";
cin >> coords;
//extra getline here without it when return is hit
//from entering the click amount it would also enter
//a cursor coordinate
getline(cin,h);
POINT p[21];
for (int count = 1;count<=coords;count++)
{
cout << "Place mouse cursor where you want a click and press return"<<endl;
//each time return is hit the cursor coordinates
//will be stored in the corresponding spot in
// the p array
string key = "r";
getline(cin,key);
GetCursorPos(&p[count]);
break;
}
string go;
cout << "Hit Return to initialize your click loop";
getline(cin,go);
while (true)
//infinite loop cycling through the users
//cursor coordinates and clicking
{
for(int click=1;click<=coords;click++)
{
int x = p[click].x;
int y = p[click].y;
clicky(x,y);
}
}
}