#include "stdio.h"
#include "time.h"
/*
1.生成随机整数 int randInt(int a, int b)
2.初始化差值 void InitDifference(HWND hDlg)
3.模拟点击鼠标 BOOL MouseClick(HWND hwnd,RECT rect,int x,int y)
4.设置温度 void SetTemp(HWND hDlg,HWND hSYTJ,int Temp)
*/
#define IDT_TIMERSTART 1
#define IDT_TIMERAGAIN 2 //计数器
#define ID_SYQ_FU 0x0000001A
#define ID_SYH_FU 0x0000000F
#define ID_MAIN_WD_FU1 0x00000011
#define ID_MAIN_WD_FU2 0x00000012
#define ID_MAIN_WD 0x0000001C
int ID150[10]={T1501,T1502,T1503,T1504,T1505,T1506,T1507,T1508,T1509,T15010};
int ID200[10]={T2001,T2002,T2003,T2004,T2005,T2006,T2007,T2008,T2009,T20010};
int ID250[10]={T2501,T2502,T2503,T2504,T2505,T2506,T2507,T2508,T2509,T25010};
int ID300[10]={T3001,T3002,T3003,T3004,T3005,T3006,T3007,T3008,T3009,T30010};
int ID350[10]={T3501,T3502,T3503,T3504,T3505,T3506,T3507,T3508,T3509,T35010};
int IDSJHD[10] ={IDE_NO1HD1,IDE_NO1HD2,IDE_NO1HD3,IDE_NO1HD4,IDE_NO1HD5,IDE_NO2HD1,IDE_NO2HD2,IDE_NO2HD3,IDE_NO2HD4,IDE_NO2HD5};
int IDSYQ[10]={0x00000024,0x00000023,0x00000022,0x00000021,0x00000020,0x0000001F,0x0000001B,0x0000001E,0x0000001D,0x0000001C}; //实验前厚度
int IDSYH[10]={0x00000019,0x00000018,0x00000017,0x00000016,0x00000010,0x00000015,0x00000014,0x00000013,0x00000012,0x00000011}; //实验后厚度
/*
生成随机整数
范围[a,b]
精确到微秒
*/
int randInt(int a, int b)
{
LARGE_INTEGER seed;
QueryPerformanceFrequency(&seed);
QueryPerformanceCounter(&seed);
srand(seed.QuadPart);
if(a<b)
return a + rand()%(b-a+1);
else if(a>b)
return b + rand()%(a-b+1);
else
return a;
}
/*
生成随机浮点数
范围[a,b]
精确到微秒
*/
float randFd(float a,float b)
{
LARGE_INTEGER seed;
QueryPerformanceFrequency(&seed);
QueryPerformanceCounter(&seed);
srand(seed.QuadPart);
//return a + float(rand())/RAND_MAX*(b-a);
float k = float(rand())/RAND_MAX;
return a +k*(b-a);
}
/*
初始化差值数据
hDlg:对话框的句柄
*/
void InitDifference(HWND hDlg)
{
char *Cha150[10],*Cha200[10],*Cha250[10],*Cha300[10],*Cha350[10];
float fCha[10];
int j =0;
for (j = 0;j<10;j++)//150
{
fCha[j] = float(randInt(1,6))/100;
Cha150[j] = new char[10];
sprintf(Cha150[j],"%.2f",fCha[j]);//浮点转换成字符串
SetWindowText(GetDlgItem(hDlg,ID150[j]),Cha150[j]);
}
for (j = 0;j<10;j++)//200
{
fCha[j] = float(randInt(1,6))/100;
Cha200[j] = new char[10];
sprintf(Cha200[j],"%.2f",fCha[j]);
SetWindowText(GetDlgItem(hDlg,ID200[j]),Cha200[j]);
}
for (j = 0;j<10;j++)//250
{
fCha[j] = float(randInt(1,6))/100;
Cha250[j] = new char[10];
sprintf(Cha250[j],"%.2f",fCha[j]);
SetWindowText(GetDlgItem(hDlg,ID250[j]),Cha250[j]);
}
for (j = 0;j<10;j++)//300
{
fCha[j] = float(randInt(1,6))/100;
Cha300[j] = new char[10];
sprintf(Cha300[j],"%.2f",fCha[j]);
SetWindowText(GetDlgItem(hDlg,ID300[j]),Cha300[j]);
}
for (j = 0;j<10;j++)//350
{
fCha[j] = float(randInt(1,6))/100;
Cha350[j] = new char[10];
sprintf(Cha350[j],"%.2f",fCha[j]);
SetWindowText(GetDlgItem(hDlg,ID350[j]),Cha350[j]);
}
}
/*
模拟点击鼠标
hwnd:要操作窗口的句柄
rect:要操作窗口的坐标,GetWindowRect获得
x:确定按钮的x坐标
y:确定按钮的y坐标
*/
BOOL MouseClick(HWND hwnd,RECT rect,int x,int y)
{
if(hwnd != NULL)
{
GetWindowRect(hwnd,&rect);
SetCursorPos(x+rect.left,y+rect.top); //坐标要spy++获取
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
return TRUE;
}
else
{
return FALSE;
}
}
/*
设置温度
hDlg: hDlg窗口句柄,用于获取外挂中的差值
hSYTJ: 实验条件句柄,实验前后度、实验后厚度的父窗口
Temp: 温度设置窗口的温度
*/
void SetTemp(HWND hDlg,HWND hSYTJ,int Temp)
{
HWND hSYQHD_FU = GetDlgItem(hSYTJ,ID_SYQ_FU);//实验前数据的父窗口
HWND hSYHHD_FU = GetDlgItem(hSYTJ,ID_SYH_FU);//试验后数据的父窗口
//差值
char *Cha150[10],*Cha200[10],*Cha250[10],*Cha300[10],*Cha350[10];
//实验前的厚度
char *SYQHD[10];
//实验后的厚度
float fSYHHD[10];
char *chSYHHD[10];
//计数器
int j=0;
//获取差值 外挂窗口
if (Temp == 150)
{
for (j= 0;j<10;j++)
{
Cha150[j] = new char[10];
SYQHD[j] = new char[10];
chSYHHD[j] = new char[10];
GetDlgItemText(hDlg,ID150[j],Cha150[j],10);//获得 差值
SendMessage(GetDlgItem(hSYQHD_FU,IDSYQ[j]),WM_GETTEXT,10,(LPARAM)SYQHD[j]);//获得 实验前厚度
fSYHHD[j] = atof(SYQHD[j])-atof(Cha150[j]); //计算 实验后的厚度,浮点型
sprintf(chSYHHD[j],"%.2f",fSYHHD[j]); //格式化实验后的厚度,字符串型
SendMessage(GetDlgItem(hSYHHD_FU,IDSYH[j]), WM_SETTEXT, 0, (LPARAM)chSYHHD[j]);//设置实验后的厚度
}
}
else if (Temp == 200)
{
for (j= 0;j<10;j++)
{
Cha200[j] = new char[10];
SYQHD[j] = new char[10];
chSYHHD[j] = new char[10];
GetDlgItemText(hDlg,ID200[j],Cha200[j],10);//获得差值
SendMessage(GetDlgItem(hSYQHD_FU,IDSYQ[j]),WM_GETTEXT,10,(LPARAM)SYQHD[j]);//获得实验前厚度
fSYHHD[j] = atof(SYQHD[j])-atof(Cha200[j]); //计算实验后的厚度,浮点型
sprintf(chSYHHD[j],"%.2f",fSYHHD[j]); //格式化实验后的厚度,字符串型
SendMessage(GetDlgItem(hSYHHD_FU,IDSYH[j]), WM_SETTEXT, 0, (LPARAM)chSYHHD[j]);//设置实验后的厚度
}
}
else if(Temp == 250)
{
for (j= 0;j<10;j++)
{
Cha250[j] = new char[10];
SYQHD[j] = new char[10];
chSYHHD[j] = new char[10];
GetDlgItemText(hDlg,ID250[j],Cha250[j],10);//获得差值
SendMessage(GetDlgItem(hSYQHD_FU,IDSYQ[j]),WM_GETTEXT,10,(LPARAM)SYQHD[j]);//获得实验前厚度
fSYHHD[j] = atof(SYQHD[j])-atof(Cha250[j]); //计算实验后的厚度,浮点型
sprintf(chSYHHD[j],"%.2f",fSYHHD[j]); //格式化实验后的厚度,字符串型
SendMessage(GetDlgItem(hSYHHD_FU,IDSYH[j]), WM_SETTEXT, 0, (LPARAM)chSYHHD[j]);//设置实验后的厚度
}
}
else if (Temp == 300)
{
for (j= 0;j<10;j++)
{
Cha300[j] = new char[10];
SYQHD[j] = new char[10];
chSYHHD[j] = new char[10];
GetDlgItemText(hDlg,ID300[j],Cha300[j],10);//获得差值
SendMessage(GetDlgItem(hSYQHD_FU,IDSYQ[j]),WM_GETTEXT,10,(LPARAM)SYQHD[j]);//获得实验前厚度
fSYHHD[j] = atof(SYQHD[j])-atof(Cha300[j]); //计算实验后的厚度,浮点型
sprintf(chSYHHD[j],"%.2f",fSYHHD[j]); //格式化实验后的厚度,字符串型
SendMessage(GetDlgItem(hSYHHD_FU,IDSYH[j]), WM_SETTEXT, 0, (LPARAM)chSYHHD[j]);//设置实验后的厚度
}
}
else if (Temp == 350)
{
for (j= 0;j<10;j++)
{
Cha350[j] = new char[10];
SYQHD[j] = new char[10];
chSYHHD[j] = new char[10];
GetDlgItemText(hDlg,ID350[j],Cha350[j],10);//获得差值
SendMessage(GetDlgItem(hSYQHD_FU,IDSYQ[j]),WM_GETTEXT,10,(LPARAM)SYQHD[j]);//获得实验前厚度
fSYHHD[j] = atof(SYQHD[j])-atof(Cha350[j]); //计算实验后的厚度,浮点型
sprintf(chSYHHD[j],"%.2f",fSYHHD[j]); //格式化实验后的厚度,字符串型
SendMessage(GetDlgItem(hSYHHD_FU,IDSYH[j]), WM_SETTEXT, 0, (LPARAM)chSYHHD[j]);//设置实验后的厚度
}
}
}