能力值:
( LV2,RANK:10 )
|
-
-
2 楼
求大虾,求大神,谁给帮帮忙呀???
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
大神没有,虾米一个,不废话,看代码
#include "windows.h"
int main(int argc, char* argv[])
{
int x = 49,y = 50; //键盘代码
//-----------开始显示托盘-----------------------------------
HWND hWnd;
char strTitle[255];
NOTIFYICONDATA nid; //托盘结构
GetConsoleTitle(strTitle, 255); //控制台标题
hWnd=FindWindow("ConsoleWindowClass",strTitle); //取hWnd=控制台句柄
//设置托盘参数
nid.cbSize=sizeof(NOTIFYICONDATA);
nid.hIcon=LoadIcon(NULL,IDI_APPLICATION); //设置托盘图标
nid.hWnd=hWnd;
nid.uCallbackMessage=NULL; //回调函数
nid.uFlags=NIF_TIP|NIF_ICON;
nid.uID=NULL;
strcpy(nid.szTip,"模拟鼠标"); //托盘浮动文字
Shell_NotifyIcon(NIM_ADD,&nid); //添加托盘
ShowWindow(hWnd,SW_HIDE); //隐藏控制台
//-------------显示托盘代码结束----------------------------
while(1)
{
if(GetAsyncKeyState(x))
{
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Sleep(200);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
if(GetAsyncKeyState(y))
{
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
Sleep(200);
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
}
if(GetAsyncKeyState(VK_MENU) && GetAsyncKeyState(VK_END)) //同时按下ALT+END建
break;//退出循环
Sleep(200);
}
//删除托盘
Shell_NotifyIcon(NIM_DELETE,&nid);
//退出程序(双击运行时这句可有可无,cmd控制台输入名字运行,就需要下边这句了,总之加上下边这句就全OK了)
PostMessage(hWnd,WM_CLOSE,0,0); //发消息关闭控制台窗口
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢,
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
自己是个菜鸟,一直在模仿,从未去超越。再次感谢3楼的大神
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最后的热键可以停止循环,但想退出程序却没反应,求改善,谢谢。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个问题很好解决
你大概一直用cmd控制台输入命令打开程序,所以程序终止了,cmd进程还在
解决方案
1.直接双击执行exe程序,按热键就直接退出了,不存在你说的问题
2.如果真想cmd输入运行也退出,加一句话
PostMessage(hWnd,WM_CLOSE,0,0); //发消息关闭控制台窗口具体位置见 3楼代码
|