首页
社区
课程
招聘
[求助]求大神给修改下下
发表于: 2012-1-11 00:30 4172

[求助]求大神给修改下下

2012-1-11 00:30
4172
想把这个程序给最小化到托盘里去,求高手指点一下下.谢谢!!!!!!!!!!
程序是从一别人那里抄来的,自己用的,

#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main()
{
     int x = 49,y = 50;
     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);
         }
         Sleep(200);
     }
     return 0;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 203
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
求大虾,求大神,谁给帮帮忙呀???
2012-1-11 08:34
0
雪    币: 78
活跃值: (25)
能力值: ( 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;
}
2012-1-11 17:38
0
雪    币: 203
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢,
2012-1-12 08:42
0
雪    币: 203
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
自己是个菜鸟,一直在模仿,从未去超越。再次感谢3楼的大神
2012-1-12 08:43
0
雪    币: 203
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最后的热键可以停止循环,但想退出程序却没反应,求改善,谢谢。
2012-1-12 14:07
0
雪    币: 78
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个问题很好解决
你大概一直用cmd控制台输入命令打开程序,所以程序终止了,cmd进程还在

解决方案
1.直接双击执行exe程序,按热键就直接退出了,不存在你说的问题
2.如果真想cmd输入运行也退出,加一句话
PostMessage(hWnd,WM_CLOSE,0,0); //发消息关闭控制台窗口具体位置见 3楼代码
2012-1-13 16:34
0
游客
登录 | 注册 方可回帖
返回
//