给大家赠送一个我最近写的鼠标连点器的源代码!

给大家赠送一个我最近写的鼠标连点器的源代码!

欢迎大家关注我的微信号

源代码下载地址

https://download.csdn.net/download/blackangelboy/10801071

程序界面如下图:

贴出部分核心源代码大家参照一下,这个小软件我开发了三天 ^_^ 历时15个小时开发完毕 ^_^ 大家喜欢就拿去参考参考,代码不妥之处请别见怪,部分源代码从网上搜集整合。因为是仓促开发,所以采用了暴力编程方式!超暴力编程呵呵^_^

LdianQIDlg.cpp源文件

// LdianQIDlg.cpp : implementation file
//

#include "stdafx.h"
#include "LdianQI.h"
#include "LdianQIDlg.h"
#include "DlgProxy.h"
#include "String.h"
#include <stdio.h>

//调用生成桌面快捷方式需要的头文件函数
#include <windows.h>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")

//调用WAV声音需要的头文件函数
#include "Mmsystem.h"
#pragma comment(lib,"winmm.lib")

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern char StrKey;
extern char StrKeyStop;
extern CString Tmp;
extern CString TmpStop;
extern CString MouseOK;
extern CString MouseOKCombo;
extern CString MouseOKComboOK;
extern CString TimeGoodOK;
extern CString tempexe;
extern int  NumTime;
extern CString URLFile;
extern int  L_miao;
extern CString MouseCkool;
/
// CLdianQIDlg dialog

IMPLEMENT_DYNAMIC(CLdianQIDlg, CDialog);

CLdianQIDlg::CLdianQIDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CLdianQIDlg::IDD, pParent)
{
    //{ {AFX_DATA_INIT(CLdianQIDlg)
    m_TXT = _T("");
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_pAutoProxy = NULL;
}

CLdianQIDlg::~CLdianQIDlg()
{
    // If there is an automation proxy for this dialog, set
    //  its back pointer to this dialog to NULL, so it knows
    //  the dialog has been deleted.
    if (m_pAutoProxy != NULL)
        m_pAutoProxy->m_pDialog = NULL;
}

void CLdianQIDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{ {AFX_DATA_MAP(CLdianQIDlg)
    DDX_Control(pDX, IDC_EDITTIMENUM, m_Tims);
    DDX_Control(pDX, IDC_EDITTIMENUMTXT, m_TimeX);
    DDX_Control(pDX, IDOK2, m_menuB);
    DDX_Control(pDX, IDOK, m_menuA);
    DDX_Control(pDX, IDC_SLIDER1, m_Slider);
    DDX_Text(pDX, IDC_STATICX1, m_TXT);
    DDX_Control(pDX, IDC_EXPLORER1, m_URLplay);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CLdianQIDlg, CDialog)
    //{ {AFX_MSG_MAP(CLdianQIDlg)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_WM_CLOSE()
    ON_WM_TIMER()
    ON_WM_NCHITTEST()
    ON_WM_HSCROLL()
    ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, OnCustomdrawSlider1)
    ON_WM_CTLCOLOR()
    ON_BN_CLICKED(IDOK2, OnOk2)
    ON_CBN_EDITUPDATE(IDC_COMBO1, OnEditupdateCombo1)
    ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
    ON_CBN_EDITUPDATE(IDC_COMBO3, OnEditupdateCombo3)
    ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo3)
    ON_CBN_EDITUPDATE(IDC_COMBO2, OnEditupdateCombo2)
    ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
    ON_CBN_EDITUPDATE(IDC_COMBO4, OnEditupdateCombo4)
    ON_CBN_SELCHANGE(IDC_COMBO4, OnSelchangeCombo4)
    ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
    ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
    ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
    ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
    ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
    ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
    ON_BN_CLICKED(IDC_BUTTON2, OnButtonQZ)
    ON_BN_CLICKED(IDC_BUTTON3, OnButtonQZNO)
    ON_BN_CLICKED(IDC_BUTTON4, OnButtonMINI)
    ON_BN_CLICKED(IDC_BUTTON5, OnButtonJM)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/
// CLdianQIDlg message handlers

DWORD __stdcall ThreadProcKey(LPVOID lpParameter) 
{
CLdianQIDlg* Key = (CLdianQIDlg*)lpParameter;

    while(1)
        {
            Sleep(50);        
            Key->GetDlgItem(IDC_COMBO1)->GetWindowText(Tmp); 
            CString TmpX;
            Key->GetDlgItem(IDC_COMBO2)->GetWindowText(TmpX); 
                    if(Tmp!="")
                    {
                        Key->RegKeyCe();//执行热键0-9 A-Z检测
                        if(TmpX=="CTRL" || TmpX=="ctrl" )
                        {
                        RegisterHotKey(NULL,0x00000003,MOD_CONTROL,StrKey);
                        //AfxMessageBox("热键为CTRL"); 
                        }
                        if(TmpX=="ALT" || TmpX=="alt" )
                        {
                        RegisterHotKey(NULL,0x00000003,MOD_ALT,StrKey);
                        //AfxMessageBox("热键为ALT"); 
                        }
                        if(TmpX=="SHIFT" || TmpX=="shift")
                        {
                        RegisterHotKey(NULL,0x00000003,MOD_SHIFT,StrKey);
                        //AfxMessageBox("热键为SHIFT"); 
                        }
                        //RegisterHotKey(NULL,0x00090003,MOD_CONTROL,TEXT(StrKey));
                        //注册热键 MOD_ALT ;MOD_CONTROL ;MOD_SHIFT ;MOD_WIN 
                        //RegisterHotKey(GetSafeHwnd(),  HOTKEYID, MOD_CONTROL, TEXT('L'))
                        MSG msg;
                        while(GetMessage(&msg,NULL,0,0))//从消息队伍获取消息
                            {
                                       if(msg.message==WM_HOTKEY)//热键消息
                                    {            
                                        //AfxMessageBox("热键"+TmpX+" + "+Tmp+"已设置成功!开启执行"); 
                                        MouseOK="开始鼠标点击";
                                        MouseCkool="连续点击鼠标左键";
                                        goto lbit;
                                    }                            
                            }
                        lbit:
                        ;
                        UnregisterHotKey(NULL,0x00000003);//卸载掉注册的热键
                    }
        }
    return 0;
}

DWORD __stdcall ThreadProcKeyStop(LPVOID lpParameter) 
{
CLdianQIDlg* KeyStop = (CLdianQIDlg*)lpParameter;

    while(1)
        {
            Sleep(50);        
            KeyStop->GetDlgItem(IDC_COMBO3)->GetWindowText(TmpStop); 
            CString TmpXStop;
            KeyStop->GetDlgItem(IDC_COMBO4)->GetWindowText(TmpXStop); 
            if(Tmp!="")
            {
                KeyStop->RegKeyCeStop();//执行热键0-9 A-Z检测
                if(TmpXStop=="CTRL" || TmpXStop=="ctrl" )
                {
                RegisterHotKey(NULL,0x00000003,MOD_CONTROL,StrKeyStop);
                //AfxMessageBox("热键为CTRL"); 
                }
                if(TmpXStop=="ALT" || TmpXStop=="alt" )
                {
                RegisterHotKey(NULL,0x00000003,MOD_ALT,StrKeyStop);
                //AfxMessageBox("热键为ALT"); 
                }
                if(TmpXStop=="SHIFT" || TmpXStop=="shift")
                {
                RegisterHotKey(NULL,0x00000003,MOD_SHIFT,StrKeyStop);
                //AfxMessageBox("热键为SHIFT"); 
                }
                //RegisterHotKey(NULL,0x00090003,MOD_CONTROL,TEXT(StrKey));
                //注册热键 MOD_ALT ;MOD_CONTROL ;MOD_SHIFT ;MOD_WIN 
                //RegisterHotKey(GetSafeHwnd(),  HOTKEYID, MOD_CONTROL, TEXT('L'))
                MSG msg;
                while(GetMessage(&msg,NULL,0,0))//从消息队伍获取消息
                    {
                               if(msg.message==WM_HOTKEY)//热键消息
                            {            
                                KeyStop->KeyOkStop();
                                //AfxMessageBox("热键"+TmpXStop+" + "+TmpStop+"已设置成功!关闭执行"); 
                                goto lbitStop;
                            }                            
                    }
                lbitStop:
                ;
                UnregisterHotKey(NULL,0x00000004);//卸载掉注册的热键
            }
        }
    return 0;
}


DWORD __stdcall ThreadProcMuseOK(LPVOID lpParameter) 
{
CLdianQIDlg* MuseOK = (CLdianQIDlg*)lpParameter;

    while(1)
        {
            if(MouseOK=="开始鼠标点击")
                {
                      MuseOK->KeyOk();
                }
            if(MouseOKCombo=="启用鼠标快捷键")
                {
                      MuseOK->KeyMouse();
                }
            else if(MouseOKCombo=="暂停鼠标热键" || MouseOKComboOK=="暂停鼠标热键")
                        {
                            Sleep(10);
                            if(KEY_DOWN(MOUSE_MOVED))
                            {                
                                //MessageBox("您点击了鼠标左键!触发鼠标自动操作!");
                                MouseOKComboOK="开启鼠标热键动作";
                                MouseOKCombo="启用鼠标快捷键";
                            }
                        }
        }
    return 0;
}


DWORD __stdcall ThreadProcTime(LPVOID lpParameter) 
{
CLdianQIDlg* TimeDig = (CLdianQIDlg*)lpParameter;

    while(1)
        {
            TimeDig->WindowsNumTime();//执行计时功能函数
        }
    return 0;
}

//以下代码为生成桌面快捷方式-----------------------------------------------------------------------
BOOL CLdianQIDlg::GetDesktopPath(char *pszDesktopPath)
{
    LPITEMIDLIST  ppidl = NULL; 
    
    if (SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &ppidl) == S_OK)
    {
        BOOL flag =    SHGetPathFromIDList(ppidl, pszDesktopPath);
        CoTaskMemFree(ppidl);
        return flag;
    }
 
    return FALSE;
}

BOOL CLdianQIDlg::GetIEQuickLaunchPath(char *pszIEQueickLaunchPath)
{    
    LPITEMIDLIST  ppidl;             
    
    if (SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &ppidl) == S_OK)
    {
        BOOL flag =    SHGetPathFromIDList(ppidl, pszIEQueickLaunchPath);
        strcat(pszIEQueickLaunchPath, "\\Microsoft\\Internet Explorer\\Quick Launch");
        CoTaskMemFree(ppidl);
        return flag;
    }
 
    return FALSE;
}

BOOL CLdianQIDlg::GetProgramsPath(char *pszProgramsPath)
{
    LPITEMIDLIST  ppidl; 
    
    if (SHGetSpecialFolderLocation(NULL, CSIDL_PROGRAMS, &ppidl) == S_OK)
    {
        BOOL flag = SHGetPathFromIDList(ppidl, pszProgramsPath);
        CoTaskMemFree(ppidl);
        return flag;
    }
 
    return FALSE;
}
/*
函数功能:对指定文件在指定的目录下创建其快捷方式
函数参数:
lpszFileName    指定文件,为NULL表示当前进程的EXE文件。
lpszLnkFileDir  指定目录,不能为NULL。
lpszLnkFileName 快捷方式名称,为NULL表示EXE文件名。
wHotkey         为0表示不设置快捷键
pszDescription  备注
iShowCmd        运行方式,默认为常规窗口
*/
BOOL CreateFileShortcut(LPCSTR lpszFileName, LPCSTR lpszLnkFileDir, LPCSTR lpszLnkFileName,    

LPCSTR lpszWorkDir, WORD wHotkey, LPCTSTR lpszDescription, int iShowCmd = SW_SHOWNORMAL)
{
    if (lpszLnkFileDir == NULL)
        return FALSE;
 
    HRESULT hr;
    IShellLink     *pLink;  //IShellLink对象指针
    IPersistFile   *ppf; //IPersisFil对象指针
    
    //创建IShellLink对象
    hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, 

(void**)&pLink);
    if (FAILED(hr))
        return FALSE;
    
    //从IShellLink对象中获取IPersistFile接口
    hr = pLink->QueryInterface(IID_IPersistFile, (void**)&ppf);
    if (FAILED(hr))
    {
        pLink->Release();
        return FALSE;
    }
    
    //目标
    if (lpszFileName == NULL)
        pLink->SetPath(_pgmptr);
    else
        pLink->SetPath(lpszFileName);
    
    //工作目录
    if (lpszWorkDir != NULL)
        pLink->SetPath(lpszWorkDir);
    
    //快捷键
    if (wHotkey != 0)
        pLink->SetHotkey(wHotkey);
    
    //备注
    if (lpszDescription != NULL)
        pLink->SetDescription(lpszDescription);
    
    //显示方式
    pLink->SetShowCmd(iShowCmd);
 
 
    //快捷方式的路径 + 名称
    char szBuffer[MAX_PATH];
    if (lpszLnkFileName != NULL) //指定了快捷方式的名称
        sprintf(szBuffer, "%s\\%s", lpszLnkFileDir, lpszLnkFileName);
    else   
    {
        //没有指定名称,就从取指定文件的文件名作为快捷方式名称。
        char *pstr;
        if (lpszFileName != NULL)
            pstr = strrchr(lpszFileName, '\\');
        else
            pstr = strrchr(_pgmptr, '\\');
 
        if (pstr == NULL)
        {    
            ppf->Release();
            pLink->Release();
            return FALSE;
        }
        //注意后缀名要从.exe改为.lnk
        sprintf(szBuffer, "%s\\%s", lpszLnkFileDir, pstr);
        int nLen = strlen(szBuffer);
        szBuffer[nLen - 3] = 'l';
        szBuffer[nLen - 2] = 'n';
        szBuffer[nLen - 1] = 'k';
    }
    //保存快捷方式到指定目录下
    WCHAR  wsz[MAX_PATH];  //定义Unicode字符串
    MultiByteToWideChar(CP_ACP, 0, szBuffer, -1, wsz, MAX_PATH);
    
    hr = ppf->Save(wsz, TRUE);
    
    ppf->Release();
    pLink->Release();
    return SUCCEEDED(hr);
}
//以上代码为生成桌面快捷方式-----------------------------------------------------------------------

BOOL CLdianQIDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
    
    // TODO: Add extra initialization here
    
    // TODO: Add extra initialization here


    CenterWindow();//程序启动时窗体处于屏幕的中心位置

    {//检测是否开启了打开了相同程序
            HWND  wnd;
            wnd=::FindWindow(NULL,"鼠标连点器——海马软件QQ:9254793");
            if(wnd!=NULL)
            {
                //::ShowWindow(wnd,SW_HIDE);//将窗口隐藏
                MessageBox("为了不至于您的计算机鼠标精神错乱!^_^\r\n\r\n所以每次只允许开启一个鼠标连点器!","程序开启出错提示",MB_OK|MB_ICONINFORMATION);
                //CDialog::OnClose();
                KAI="程序已经开启";
                SetTimer(2,10,NULL);
                //return TRUE;  // return TRUE unless you set the focus to a control
            }
            else
            {
                SetWindowText("鼠标连点器——海马软件QQ:9254793");    //设置窗体标题
            }
    }

    对文件地址的"\"替换成"\\"
    for(int i=0;i<tempexe.GetLength();i++)
    {
      int index = tempexe.Find("\\");
      if(index == -1)
         continue;
          else
          {
              if(i==1)
              {
                tempexe.Replace("\\","\\\\\\\\"); //前面的参数是要替换的字符串,后面的参数是你指定的新字符串
              }
              if(i>1)
              {
                  goto lid;
              }
              //MessageBox(tempexe,"程序地址2",MB_OK|MB_ICONINFORMATION);
              GetDlgItem(IDC_STATICFILE)->SetWindowText(tempexe); 
          }  
    }
    lid:
    ;

    CString StrFileOk;
    GetDlgItem(IDC_STATICFILE)->GetWindowText(StrFileOk); 
    //MessageBox(StrFileOk,"程序地址3",MB_OK|MB_ICONINFORMATION);
    char *filepath;
    filepath=(LPSTR)(LPCTSTR)StrFileOk;//强制转换
    //方法一 获取程序的大小
    HANDLE handle = CreateFile(filepath, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
    if (handle != INVALID_HANDLE_VALUE)
    {
        int size = GetFileSize(handle,NULL);
        CString TXNUM;
        TXNUM.Format(_T("%d"),size);
        //MessageBox("程序大小为:"+TXNUM+"字节","程序大小",MB_OK|MB_ICONINFORMATION);
        CloseHandle(handle);

        int ExeNum=atoi(TXNUM);
        if(ExeNum==2667008  || ExeNum==2670592)
        {
            //MessageBox("程序原始大小为 2667008 字节\r\n经过软件自身安全检测!\r\n此程序未被其他软件修改!\r\n可以放心使用^_^!","程序安全检测",MB_OK|MB_ICONINFORMATION);
            
            //使用已经添加的快捷方式生成函数添加程序的桌面快捷方式
            {
                char  szPath[MAX_PATH];
                CoInitialize(NULL); 
                GetDesktopPath(szPath);
                //if(CreateFileShortcut(NULL, szPath, NULL, NULL, MAKEWORD(VK_F12, HOTKEYF_CONTROL), "海马软件荣誉出品:QQ:9254793"));
                if(CreateFileShortcut(NULL, szPath, "海马鼠标连点器.lnk", NULL, MAKEWORD(VK_F12, HOTKEYF_CONTROL), "海马软件荣誉出品:QQ:9254793 \r\n海马软件唯一官方微信:

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,非常感谢您的问题,以下是一个简单的年终关怀脚本: 开场白: 大家好,感谢各位在过去的一年里对公司的支持和付出。值此年终之际,作为公司的领导,我想向大家表达我们的感谢,并为此次年终关怀活动做一些简单的安排。 环节一:领导致辞 作为公司的领导,我想对各位员工表达我们的感谢和敬意,感谢大家在过去一年中为公司的发展和进步做出的重要贡献。我们知道你们的工作和努力,公司才能够稳步前行。 环节二:表彰优秀员工 在公司的日常工作中,我们遇到了很多出色的员工,他们在工作中表现出色,取得了优异的成绩。现在,我想为这些优秀员工颁发奖项,以表彰他们的努力和贡献。 环节三:赠送礼品 为了表达公司对员工的关心和感谢,我们准备了一些年终礼品作为赠送。希望这些礼品能够带来一些喜悦和温暖,让大家在这个寒冷的冬天感到满满的关怀和温暖。 环节四:互动环节 最后,我希望大家在这个年终聚会上可以尽情地享受和放松。接下来,我们将开展一些有趣的互动环节,希望大家可以积极参与。 结语: 感谢大家的到来,愿这一次年终关怀活动让大家有一个美好的回忆,更加感受到公司对员工的关怀和支持。同时,也希望各位在新的一年里继续保持优秀的工作状态,为公司的发展做出更加卓越的贡献。谢谢大家!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值