#include <windows.h>
#include <windowsx.h>
#include "main.h"
#include "dialogs.h"
#include "resource.h"
#define MOUSEPOSTIMER 3655
#define FILENAMELEN 512
#define WM_ICON WM_USER+108
#include "Shlwapi.h"
const int MEA[7]=
{
MOUSEEVENTF_LEFTDOWN,
MOUSEEVENTF_LEFTUP,
MOUSEEVENTF_RIGHTDOWN,
MOUSEEVENTF_RIGHTUP,
MOUSEEVENTF_MIDDLEDOWN,
MOUSEEVENTF_MIDDLEUP
};
void Form1_OnSize(HWND hwnd, UINT state, int cx, int cy);
char g_currentfilename[512],ExeFilePath[512];
bool g_whether;
Mak mousekey;
HWND g_showpress;
HICON Hicon;
void Initial(HWND hwnd);
BOOL OpenFilePath(TCHAR *szFilePath,HWND hwnd);
BOOL SaveFilePath(TCHAR *szFilePath,HWND hwnd);
LRESULT CALLBACK EditProc(HWND hWnd , UINT uMsg, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK(*pProc)(HWND hWnd , UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL WINAPI New_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
const char CBSTRING [7][15]=
{
"左键按下","左键松开","右键按下","右键松开","中键按下","中键松开"
};
void Form1_OnTimer(HWND hwnd, UINT id);
void Form1_OnHotKey(HWND hwnd, int mod,UINT vk);
void Form1_GetInfo(HWND hwnd,int id);
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
HANDLE_MSG(hWnd,WM_TIMER, Form1_OnTimer);
HANDLE_MSG(hWnd,WM_SIZE, Form1_OnSize);
case WM_HOTKEY:
{
Form1_OnHotKey( hWnd, (UINT) LOWORD(lParam),(UINT) HIWORD(lParam));
}
return TRUE;
}
return FALSE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnInitDialog
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
// Set app icons
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
SetTimer(hwnd ,MOUSEPOSTIMER,100,NULL);
//
// Add initializing code here
Initial(hwnd);
return TRUE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnCommand
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch (id)
{
case IDC_OK:
{
if (IsWindowEnabled(GetDlgItem(hwnd,IDC_MMOVE)))
{
int n=GetDlgItemInt(hwnd,IDC_TOTALTIMES,0,0);
mousekey.Start(hwnd,n);
}
}
break;
case IDC_RBN1:
{
SetDlgItemInt(hwnd,IDC_TOTALTIMES,1,1);
EnableWindow(GetDlgItem(hwnd,IDC_TOTALTIMES),0);
}
break;
case IDC_RBN2:
{
SetDlgItemInt(hwnd,IDC_TOTALTIMES,0,1);
EnableWindow(GetDlgItem(hwnd,IDC_TOTALTIMES),0);
}
break;
case IDC_RBN3:
{
SetDlgItemInt(hwnd,IDC_TOTALTIMES,2,1);
EnableWindow(GetDlgItem(hwnd,IDC_TOTALTIMES),1);
}
break;
case IDC_CANCEL:
mousekey.End( hwnd);
break;
case IDC_MMOVE:
case IDC_MEVENT:
case IDC_KEVENT:
case IDC_WAITTIME:
{
Form1_GetInfo(hwnd,id);
}
break;
case IDM_CREATE:
{
g_whether=0;
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_NEW), hwnd, New_Proc);
if (g_whether)
{
mousekey.CreateNew(g_currentfilename,hwnd);
}
}
break;
case IDM_QUIT:
{
EndDialog(hwnd, 0);
}
break;
case IDM_HELP:
{
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_HELP), hwnd, New_Proc);
}
break;
case IDM_OPEN:
{
if (OpenFilePath( g_currentfilename,hwnd))
{
mousekey.ReadFromFile(g_currentfilename);
mousekey.EventToList(hwnd,IDC_COMLIST);
}
}
break;
case IDM_SAVEFILE:
{
mousekey.SaveToFile(ExeFilePath);
MessageBox(hwnd,"保存","",0);
}
break;
case IDC_FILELIST:
{
switch (codeNotify)
{
case LBN_DBLCLK://双击选中项
{
int n=SendDlgItemMessage(hwnd,IDC_FILELIST,LB_GETCURSEL,0,0);
SendDlgItemMessage(hwnd,IDC_FILELIST,LB_GETTEXT,n,LPARAM(mousekey.FileName));
sprintf(g_currentfilename,"%s\\%s.mand",ExeFilePath,mousekey.FileName);
mousekey.ReadFromFile(g_currentfilename);
mousekey.EventToList(hwnd,IDC_COMLIST);
}
break;
}
}
case WM_ICON:
{
if( WM_LBUTTONDOWN==int(hwndCtl))
{
NOTIFYICONDATA nocd;
ZeroMemory(&nocd,sizeof(nocd));
nocd.cbSize=sizeof(nocd);
nocd.hWnd=hwnd;
nocd.uID=WM_ICON;
nocd.uCallbackMessage=WM_COMMAND;
nocd.uFlags=NIF_MESSAGE | NIF_ICON | NIF_TIP;
nocd.hIcon= Hicon;
ShowWindow(hwnd,SW_SHOWNORMAL);
Shell_NotifyIcon(NIM_DELETE,&nocd);
}
}
default:
break;
}
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnClose
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
void Form1_OnTimer(HWND hwnd, UINT id)
{
switch (id)
{
case MOUSEPOSTIMER:
{
POINT pt;
GetCursorPos(&pt);
char chPos[128];
sprintf(chPos,"x %d y %d",pt.x,pt.y);
SetDlgItemText(hwnd,IDC_MOUSESTD,chPos);
}
break;
}
}
void Form1_GetInfo(HWND hwnd,int id)
{
EVENTRECORD et;
et.event=id;
et.x=GetDlgItemInt(hwnd,IDC_X,NULL,1);
et.y=GetDlgItemInt(hwnd,IDC_Y,NULL,1);
et.times=GetDlgItemInt(hwnd,IDC_TIMES,NULL,1);
et.waittime=GetDlgItemInt(hwnd,IDC_TIMEEDT,NULL,1);
et.nMouse= SendDlgItemMessage(hwnd,IDC_MOUSECOM,CB_GETCURSEL,0,0);
et.kboard=GetDlgItemInt(hwnd,IDC_SHOWKEY,NULL,1);
mousekey.GetInfo(et,id);
mousekey.EventToList(hwnd,IDC_COMLIST);
}
void Form1_OnHotKey(HWND hwnd, int mod, UINT vk)
{
if (vk=='5')
{
if (IsWindowEnabled(GetDlgItem(hwnd,IDC_MMOVE)))
{
int n=GetDlgItemInt(hwnd,IDC_TOTALTIMES,0,0);
mousekey.Start(hwnd,n);
}
}
else if (vk=='7')
{
mousekey.End( hwnd);
}
}
LRESULT CALLBACK EditProc(HWND hWnd , UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CHAR:
{
return TRUE;
}
break;
case WM_KEYDOWN:
case WM_KEYUP:
{
char af[5]={0};
itoa(wParam,af,10);
SetWindowText(g_showpress,af);
return TRUE;
}
break;
default:
return pProc(hWnd,uMsg,wParam,lParam);
}
return pProc(hWnd,uMsg,wParam,lParam);
}
BOOL OpenFilePath(TCHAR *szFilePath,HWND hwnd)
{
ZeroMemory(szFilePath,512);
TCHAR szfilter[FILENAMELEN]=".mand脚本文件\0*.mand\0\0" ;
char szFilename[512]="选择";
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.lpstrFile=szFilePath;
ofn.nMaxFile=FILENAMELEN;
ofn.lpstrFilter=szfilter;
ofn.nFilterIndex = 1;
ofn.lpstrTitle=" ";
ofn.Flags=OFN_FILEMUSTEXIST|OFN_EXPLORER| OFN_PATHMUSTEXIST ;
ofn.hwndOwner=hwnd,
ofn.hInstance=GetModuleHandle(NULL);
ofn.lpstrDefExt="ok";
ofn.lpstrFileTitle =szFilename;
if (!GetOpenFileName(&ofn))
{
return FALSE;
}
return TRUE;
}
BOOL SaveFilePath(TCHAR *szFilePath,HWND hwnd)
{
TCHAR szfilter[FILENAMELEN]=".mand脚本文件\0*.mand\0\0" ;
char szFilename[512]="选择";
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(ofn));
简易版按键精灵源码
需积分: 41 98 浏览量
2014-04-22
19:29:01
上传
评论 3
收藏 97KB RAR 举报
lilili8516
- 粉丝: 0
- 资源: 1