失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 魔兽小助手

魔兽小助手

时间:2021-05-11 01:47:07

相关推荐

魔兽小助手

#ifndef APIMACRO_H#define APIMACRO_H//方便使用的几个API宏// Sets the dialog box iconsinline void chSETDLGICONS(HWND hWnd, int idi) {SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM) LoadIcon((HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE), MAKEINTRESOURCE(idi)));SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM) LoadIcon((HINSTANCE) GetWindowLongPtr(hWnd, GWLP_HINSTANCE), MAKEINTRESOURCE(idi)));}inline void chMB(PCSTR szMsg) {char szTitle[MAX_PATH];GetModuleFileNameA(NULL, szTitle, _countof(szTitle));MessageBoxA(GetActiveWindow(), szMsg, szTitle, MB_OK);}#define chBEGINTHREADEX(psa, cbStackSize, pfnStartAddr, \pvParam, dwCreateFlags, pdwThreadId) \((HANDLE)_beginthreadex(\(void *) (psa),\(unsigned)(cbStackSize), \(PTHREAD_START) (pfnStartAddr),\(void *) (pvParam), \(unsigned)(dwCreateFlags),\(unsigned *) (pdwThreadId)))#endif

//{{NO_DEPENDENCIES}}// Microsoft Visual C++ generated include file.// Used by Main.rc//#define IDD_DIALOG 101#define IDR_MENU1 102#define IDD_DIALOG2 103#define IDI_ICON 104#define IDB_BITMAP1 105#define IDB_BITMAP 105#define IDR_MENU2 106#define IDC_SHOW 1001#define IDC_WIN1002#define IDC_STATIC1 1003#define IDC_1 1004#define IDC_2 1005#define IDC_4 1006#define IDC_6 1007#define IDC_7 1008#define IDC_8 1009#define IDC_EDIT1 1010#define IDC_EDIT2 1011#define IDC_EDITL1 1012#define IDC_EDIT4 1013#define IDC_EDITL4 1014#define IDC_EDIT6 1015#define IDC_EDIT5 1015#define IDC_EDIT7 1016#define IDC_EDIT8 1017#define IDC_EDITR3 1018#define IDC_EDITR1 1019#define IDC_EDITR2 1020#define IDC_EDITL2 1021#define IDC_EDITL3 1022#define IDC_EDITR4 1023#define IDC_CHECK 1024#define IDC_CHANGE 1024#define ID_40001 40001#define IDM_HELP_ABOUT 40002#define ID_40003 40003#define ID_EXIT40004#define ID_40005 40005#define ID_SHOW40006// Next default values for new objects// #ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 107#define _APS_NEXT_COMMAND_VALUE 40007#define _APS_NEXT_CONTROL_VALUE 1025#define _APS_NEXT_SYMED_VALUE 101#endif#endif

#include <windows.h>#include <process.h>#include <shellapi.h>#include "resource.h"#include "ApiMacro.h"//搞掉些烦人的警告#pragma warning(disable:4244)#pragma warning(disable:4996)#pragma comment(linker,"/manifestdependency:\"type='win32' name='mon-Controls' version='6.0.0.0'\processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")#define WM_HOOK WM_USER+0x100//钩子和主窗口通信的消息(这里没用到,钩子如果放在DLL中就需要了)#define WM_SHELLNOFITY WM_USER+0x50//托盘消息ID#define ID 0//托盘图标ID#define CHAT_MOD 0x6FAE8450//聊天模式地址#define TIME1//计时器IDBOOL CALLBACK DialogProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);//主窗口过程BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);BOOL EnablePrivilege(PCTSTR szPrivilege, BOOL fEnable); //提升本进程权限(调试权限)VOID Function_Set(HWND hDlg, BOOL bEnable); //一些设置VOID IniSetting(HWND hDlg);//初始化设置(读取配置文件)VOID SaveSetting(HWND hDlg);//退出时保存设置(保存配置文件)LPCSTRIniFileName = ".\\K.ini"; //配置文件HINSTANCEhInst;//本模块实例句柄HWNDhWnd;//本模块窗口句柄HWNDhWar3;// 魔兽争霸窗口句柄 HWNDhWar3Stau; //记录游戏是否运行的控件DWORDdwMessage;//窗口句柄和自定义消息ID,用来和主窗口通信BOOLg_bPrivilege;// 是否启动特权成功BOOLg_bActive;// 魔兽窗口是否激活BOOLg_bShow;// 显示血条 BOOLg_bInvalidWin;// 是否屏蔽WIN键BOOLg_bChangeKey;// 是否启动改键盘//小键盘改键数据WORDg_OldData[10] = { VK_NUMPAD0, VK_NUMPAD1,VK_NUMPAD2, VK_NUMPAD3, VK_NUMPAD4, VK_NUMPAD5, VK_NUMPAD6, VK_NUMPAD7, VK_NUMPAD8, VK_NUMPAD9};WORDg_NewData[10];//技能改键数据WORDg_OldSkill[5];WORDg_NewSkill[5];UINT WINAPIActivation_Test(PVOID); //线程检测魔兽窗口是否激活BOOL Set_Hook(DWORD dwThreadId, DWORD dwMessageId, BOOL bInstall);//安装钩子int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){hInst = hInstance;g_bPrivilege= EnablePrivilege(SE_DEBUG_NAME, TRUE);DialogBoxParam (hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc, 0);EnablePrivilege(SE_DEBUG_NAME, FALSE);return 0;}BOOL CALLBACK DialogProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){static HMENUhMenu;//托盘菜单句柄static NOTIFYICONDATAWstIconData;//托盘API用到的数据结构static POINTp;static DWORDdwPercent ;//淡入淡出特效变量switch (message){case WM_INITDIALOG:chSETDLGICONS(hDlg, IDI_ICON);hWnd= hDlg;hWar3Stau = GetDlgItem(hDlg, IDC_STATIC1);hMenu= LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU2));hMenu= GetSubMenu(hMenu, 0);//限制字符数SendDlgItemMessage(hDlg, IDC_EDIT1, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDIT2, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDIT4, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDIT5, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDIT7, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDIT8, EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITL1,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITR1,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITL2,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITR2,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITL3,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITR3,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITL4,EM_LIMITTEXT, 1, 0);SendDlgItemMessage(hDlg, IDC_EDITR4,EM_LIMITTEXT, 1, 0);IniSetting(hDlg); //读取配置信息//可能需要限制部分功能if (!g_bPrivilege) { chMB("权限提升失败,部分功能不可用!");EnableWindow( GetDlgItem(hDlg, IDC_CHANGE), FALSE);Function_Set(hDlg, FALSE) ;} else{g_bChangeKey? Function_Set(hDlg, TRUE) : Function_Set(hDlg, FALSE) ;}if ( !Set_Hook( 0, WM_HOOK, TRUE) ){MessageBox(hDlg, TEXT("钩子安装失败,程序将自动退出"), NULL, 0);PostMessage(hDlg,WM_CLOSE, 0, 0);}_beginthreadex(NULL, 0, Activation_Test, NULL, 0, NULL);// Set WS_EX_LAYERED on this window SetWindowLong(hDlg, GWL_EXSTYLE, GetWindowLong(hDlg, GWL_EXSTYLE) | WS_EX_LAYERED);//设置扩展风格以支持透明效果// Make this window % alphadwPercent= 0;SetTimer(hDlg, TIME, 25, NULL);//SetLayeredWindowAttributes(hDlg, 0, (255 * 100) / 100, LWA_ALPHA);//ShowWindow(hDlg, SW_SHOWNA);/*dwPercent = -10;do{dwPercent += 10;SetLayeredWindowAttributes(hDlg, 0, (255 * dwPercent) / 100, LWA_ALPHA);Sleep(100);}while(dwPercent!=100);*/return TRUE;case WM_TIMER:dwPercent +=10;if (dwPercent != 110)SetLayeredWindowAttributes(hDlg, 0, (255 * dwPercent) / 100, LWA_ALPHA);elseKillTimer(hDlg, TIME);return TRUE;case WM_SIZE:if (wParam == SIZE_MINIMIZED){stIconData.cbSize= sizeof(NOTIFYICONDATAA);stIconData.hWnd= hDlg;stIconData.uID= ID;stIconData.uFlags= NIF_ICON | NIF_MESSAGE | NIF_TIP;stIconData.uCallbackMessage = WM_SHELLNOFITY;stIconData.hIcon= LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON) );lstrcpy(stIconData.szTip, TEXT("魔兽小助手^_^") );ShowWindow(hDlg,SW_HIDE);Shell_NotifyIcon(NIM_ADD, &stIconData);}return TRUE;case WM_SHELLNOFITY:if (wParam == ID){if (lParam == WM_RBUTTONDOWN){GetCursorPos(&p);SetForegroundWindow (hDlg);TrackPopupMenu (hMenu, TPM_LEFTALIGN | TPM_BOTTOMALIGN, p.x, p.y, NULL, hDlg, NULL);}else if (lParam == WM_LBUTTONDBLCLK)SendMessage(hDlg, WM_COMMAND, ID_SHOW, 0);}return TRUE;/*case WM_PAINT:HDChdc, hdcMem ;PAINTSTRUCT ps ;hBitmap= LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP) );hdc = BeginPaint(hDlg, &ps);hdcMem = CreateCompatibleDC(hdc);SelectObject(hdcMem, hBitmap);StretchBlt (hdc, 0, 0, 500, 400,hdcMem, 0, 0, 500, 400, MERGECOPY) ;DeleteDC(hdcMem);EndPaint (hDlg, &ps);return TRUE;*/case WM_HOOK://本程序未用到此消息return TRUE;case WM_COMMAND:switch (LOWORD (wParam)){case IDC_CHANGE://改键if(SendDlgItemMessage(hDlg, IDC_CHANGE, BM_GETCHECK, 0, 0) == BST_CHECKED){g_bChangeKey = TRUE;Function_Set(hDlg, TRUE);}else{g_bChangeKey = FALSE;Function_Set(hDlg, FALSE);}break;case IDC_SHOW://显血if(SendDlgItemMessage(hDlg, IDC_SHOW, BM_GETCHECK, 0, 0) == BST_CHECKED)g_bShow= TRUE;elseg_bShow = FALSE;break;case IDC_WIN://屏蔽WINif(SendDlgItemMessage(hDlg, IDC_WIN, BM_GETCHECK, 0, 0) == BST_CHECKED)g_bInvalidWin = TRUE;elseg_bInvalidWin = FALSE;break;case IDM_HELP_ABOUT:if (DialogBox (hInst, TEXT ("AboutBox"), hDlg, AboutDlgProc))InvalidateRect (hDlg, NULL, TRUE) ;return TRUE ;case IDCANCEL:Set_Hook(0, WM_HOOK, FALSE);SaveSetting(hDlg); //保存配置信息Shell_NotifyIcon(NIM_DELETE, &stIconData);dwPercent = 100;do{dwPercent -= 10;SetLayeredWindowAttributes(hDlg, 0, (255 * dwPercent) / 100, LWA_ALPHA);Sleep(50);}while(dwPercent!=10);EndDialog(hDlg,0);return TRUE;case IDC_EDIT1:GetDlgItemTextA(hDlg, IDC_EDIT1, (LPSTR)(&g_NewData[1]), 2);return TRUE;case IDC_EDIT2:GetDlgItemTextA(hDlg, IDC_EDIT2, (LPSTR)(&g_NewData[2]), 2);return TRUE;case IDC_EDIT4:GetDlgItemTextA(hDlg, IDC_EDIT4, (LPSTR)(&g_NewData[4]), 2);return TRUE;case IDC_EDIT5:GetDlgItemTextA(hDlg, IDC_EDIT5, (LPSTR)(&g_NewData[5]), 2);return TRUE;case IDC_EDIT7:GetDlgItemTextA(hDlg, IDC_EDIT7, (LPSTR)(&g_NewData[7]), 2);return TRUE;case IDC_EDIT8:GetDlgItemTextA(hDlg, IDC_EDIT8, (LPSTR)(&g_NewData[8]), 2);return TRUE;case IDC_EDITL1:GetDlgItemTextA(hDlg, IDC_EDITL1, (LPSTR)(&g_OldSkill[1]), 2);return TRUE;case IDC_EDITR1:GetDlgItemTextA(hDlg, IDC_EDITR1, (LPSTR)(&g_NewSkill[1]), 2);return TRUE;case IDC_EDITL2:GetDlgItemTextA(hDlg, IDC_EDITL2, (LPSTR)(&g_OldSkill[2]), 2);return TRUE;case IDC_EDITR2:GetDlgItemTextA(hDlg, IDC_EDITR2, (LPSTR)(&g_NewSkill[2]), 2);return TRUE;case IDC_EDITL3:GetDlgItemTextA(hDlg, IDC_EDITL3, (LPSTR)(&g_OldSkill[3]), 2);return TRUE;case IDC_EDITR3:GetDlgItemTextA(hDlg, IDC_EDITR3, (LPSTR)(&g_NewSkill[3]), 2);return TRUE;case IDC_EDITL4:GetDlgItemTextA(hDlg, IDC_EDITL4, (LPSTR)(&g_OldSkill[4]), 2);return TRUE;case IDC_EDITR4:GetDlgItemTextA(hDlg, IDC_EDITR4, (LPSTR)(&g_NewSkill[4]), 2);return TRUE;case ID_SHOW://托盘菜单Shell_NotifyIcon(NIM_DELETE, &stIconData);ShowWindow(hDlg, SW_NORMAL);SetForegroundWindow (hDlg);return TRUE;case ID_EXIT://托盘菜单Shell_NotifyIcon(NIM_DELETE, &stIconData);SaveSetting(hDlg); //保存配置信息DestroyWindow(hDlg);return TRUE;}return TRUE;}return FALSE;}BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){static HBITMAP hBitmap;switch (message){case WM_INITDIALOG :return TRUE ;case WM_PAINT:HDChdc, hdcMem ;PAINTSTRUCT ps ;hBitmap= LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP) );hdc = BeginPaint(hDlg, &ps);hdcMem = CreateCompatibleDC(hdc);SelectObject(hdcMem, hBitmap);StretchBlt (hdc, 0, 0, 260, 160,hdcMem, 0, 0, 260, 160, MERGECOPY) ;DeleteDC(hdcMem);EndPaint (hDlg, &ps);return TRUE;/*case WM_COMMAND :switch (LOWORD (wParam)){case IDOK :case IDCANCEL :EndDialog (hDlg, 0) ;return TRUE ;}break ;*/case WM_LBUTTONDOWN:EndDialog (hDlg, 0) ;return TRUE ;}return FALSE ;}//提升当前进程权限(调试权限)BOOL EnablePrivilege(PCTSTR szPrivilege, BOOL fEnable) {// Enabling the debug privilege allows the application to see// information about service applicationsBOOL fOk = FALSE; // Assume function failsHANDLE hToken;// Try to open this process's access tokenif (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) {// Attempt to modify the given privilegeTOKEN_PRIVILEGES tp;tp.PrivilegeCount = 1;LookupPrivilegeValue(NULL, szPrivilege, &tp.Privileges[0].Luid);tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);fOk = (GetLastError() == ERROR_SUCCESS);// Don't forget to close the token handleCloseHandle(hToken);}return(fOk);}VOID Function_Set(HWND hDlg, BOOL bEnable){EnableWindow( GetDlgItem(hDlg, IDC_EDIT1), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDIT2), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDIT4), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDIT5), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDIT7), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDIT8), bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITL1),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITR1),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITL2),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITR2),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITL3),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITR3),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITL4),bEnable);EnableWindow( GetDlgItem(hDlg, IDC_EDITR4),bEnable);}//用一个线程检测魔兽窗口是否激活UINT WINAPIActivation_Test(PVOID){//g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);//创建一个手动重置事件对象,初始状态未触发while (TRUE){(hWar3 = FindWindowA(NULL, "Warcraft III")) ? SetWindowTextA(hWar3Stau, "已运行"):\SetWindowTextA(hWar3Stau, "尚未运行");if ( hWar3 && (hWar3 == GetForegroundWindow() ) ){/已经进入魔兽争霸游戏,做各种设置///g_bActive = TRUE; if (g_bShow)SendMessage(hWar3, WM_KEYDOWN, VK_OEM_4, 0); //显血///}else{g_bActive = FALSE; if (g_bShow)SendMessage(hWar3, WM_KEYUP, VK_OEM_4, 0); //取消显血}Sleep(700);}return 0;}HHOOKg_hhook;//hook handlestatic LRESULT WINAPI HookProc(int code, WPARAM wParam, LPARAM lParam) {PKBDLLHOOKSTRUCT pKeyboardHookStruct = (PKBDLLHOOKSTRUCT) lParam;CallNextHookEx(g_hhook, code, wParam, lParam);///只有当游戏为当前工作的时候才进行一些工作///if (g_bActive ){if (code == HC_ACTION){DWORDdwProcessId; //war3进程IDHANDLEhProcess;BOOLbChat = FALSE;GetWindowThreadProcessId (hWar3, &dwProcessId);hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, dwProcessId) ;ReadProcessMemory(hProcess, (LPCVOID)CHAT_MOD, &bChat, 1, NULL);//处于聊天模式下直接返回if (bChat)return 0;/功能实现if ( (wParam == WM_KEYDOWN) || (wParam == WM_SYSKEYDOWN) ){//拦截WIN键if (g_bInvalidWin){if ( (pKeyboardHookStruct->vkCode == VK_LWIN) || (pKeyboardHookStruct->vkCode == VK_RWIN) ){return 1;}}if (g_bChangeKey){//改键功能实现if (pKeyboardHookStruct->vkCode == g_NewData[1]){keybd_event( (BYTE)g_OldData[1], 0, 0, 0);keybd_event( (BYTE)g_OldData[1], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewData[2]){keybd_event( (BYTE)g_OldData[2], 0, 0, 0);keybd_event( (BYTE)g_OldData[2], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewData[4]){keybd_event( (BYTE)g_OldData[4], 0, 0, 0);keybd_event( (BYTE)g_OldData[4], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewData[5]){keybd_event( (BYTE)g_OldData[5], 0, 0, 0);keybd_event( (BYTE)g_OldData[5], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewData[7]){keybd_event( (BYTE)g_OldData[7], 0, 0, 0);keybd_event( (BYTE)g_OldData[7], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewData[8]){keybd_event( (BYTE)g_OldData[8], 0, 0, 0);keybd_event( (BYTE)g_OldData[8], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewSkill[1]){keybd_event( (BYTE)g_OldSkill[1], 0, 0, 0);keybd_event( (BYTE)g_OldSkill[1], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewSkill[2]){keybd_event( (BYTE)g_OldSkill[2], 0, 0, 0);keybd_event( (BYTE)g_OldSkill[2], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewSkill[3]){keybd_event( (BYTE)g_OldSkill[3], 0, 0, 0);keybd_event( (BYTE)g_OldSkill[3], 0, 2, 0);return 1;}if (pKeyboardHookStruct->vkCode == g_NewSkill[4]){keybd_event( (BYTE)g_OldSkill[4], 0, 0, 0);keybd_event( (BYTE)g_OldSkill[4], 0, 2, 0);return 1;}}}/}}//return 0;}//HWND,dwMessageId参数为用来通信的窗口句柄和消息IDBOOL Set_Hook(DWORD dwThreadId, DWORD dwMessageId, BOOL bInstall){BOOL bOk = FALSE;//初始化全局变量dwMessage= dwMessageId; //安装或卸载hookif (bInstall){if (g_hhook == NULL){g_hhook = SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, hInst, dwThreadId);bOk= (g_hhook != NULL);}}else{if (g_hhook != NULL){bOk= UnhookWindowsHookEx(g_hhook);g_hhook= NULL;}}return bOk;}//初始化所有选项VOID IniSetting(HWND hDlg){if (GetPrivateProfileIntA( "CheckSet", "g_bShow", 0, IniFileName) == 1){g_bShow = TRUE;CheckDlgButton(hDlg, IDC_SHOW, BST_CHECKED);}if (GetPrivateProfileIntA( "CheckSet", "g_bInvalidWin", 0, IniFileName) == 1){g_bInvalidWin = TRUE;CheckDlgButton(hDlg, IDC_WIN, BST_CHECKED);}if (GetPrivateProfileIntA( "CheckSet", "g_bChangeKey", 0, IniFileName) == 1){g_bChangeKey = TRUE;CheckDlgButton(hDlg, IDC_CHANGE, BST_CHECKED);}//获得键盘设置DWORDValue=0;if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[1]", -1, IniFileName) ) ){g_NewData[1] = Value; SetDlgItemTextA(hDlg, IDC_EDIT1, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[2]", -1, IniFileName) ) ){g_NewData[2] = Value; SetDlgItemTextA(hDlg, IDC_EDIT2, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[4]", -1, IniFileName) ) ){g_NewData[4] = Value; SetDlgItemTextA(hDlg, IDC_EDIT4, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[5]", -1, IniFileName) ) ){g_NewData[5] = Value; SetDlgItemTextA(hDlg, IDC_EDIT5, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[7]", -1, IniFileName) ) ){g_NewData[7] = Value; SetDlgItemTextA(hDlg, IDC_EDIT7, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewData[8]", -1, IniFileName) ) ){g_NewData[8] = Value; SetDlgItemTextA(hDlg, IDC_EDIT8, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewSkill[1]", -1, IniFileName) ) ){g_NewSkill[1] = Value; SetDlgItemTextA(hDlg, IDC_EDITR1, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewSkill[2]", -1, IniFileName) ) ){g_NewSkill[2] = Value; SetDlgItemTextA(hDlg, IDC_EDITR2, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewSkill[3]", -1, IniFileName) ) ){g_NewSkill[3] = Value; SetDlgItemTextA(hDlg, IDC_EDITR3, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_NewSkill[4]", -1, IniFileName) ) ){g_NewSkill[4] = Value; SetDlgItemTextA(hDlg, IDC_EDITR4, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_OldSkill[1]", -1, IniFileName) ) ){g_OldSkill[1] = Value; SetDlgItemTextA(hDlg, IDC_EDITL1, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_OldSkill[2]", -1, IniFileName) ) ){g_OldSkill[2] = Value; SetDlgItemTextA(hDlg, IDC_EDITL2, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_OldSkill[3]", -1, IniFileName) ) ){g_OldSkill[3] = Value; SetDlgItemTextA(hDlg, IDC_EDITL3, (LPCSTR)&Value) ;}if ( -1 != (Value = GetPrivateProfileIntA( "KeySet", "g_OldSkill[4]", -1, IniFileName) ) ){g_OldSkill[4] = Value; SetDlgItemTextA(hDlg, IDC_EDITL4, (LPCSTR)&Value) ;}}VOID SaveSetting(HWND hDlg){charstring[32];//写入选项设置wsprintfA(string, "%d", g_bShow);WritePrivateProfileStringA( "CheckSet", "g_bShow", string, IniFileName);wsprintfA(string, "%d", g_bInvalidWin);WritePrivateProfileStringA( "CheckSet", "g_bInvalidWin", string, IniFileName);wsprintfA(string, "%d", g_bChangeKey);WritePrivateProfileStringA( "CheckSet", "g_bChangeKey", string, IniFileName);int Value;//写入小键盘设置if (GetDlgItemTextA( hDlg, IDC_EDIT1, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[1]", string, IniFileName);\}elseWritePrivateProfileStringA( "KeySet", "g_NewData[1]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDIT2, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[2]", string, IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewData[2]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDIT4, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[4]", string, IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewData[4]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDIT5, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[5]", string, IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewData[5]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDIT7, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[7]", string, IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewData[7]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDIT8, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewData[8]", string, IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewData[8]", NULL ,IniFileName);//写入技能设置if (GetDlgItemTextA( hDlg, IDC_EDITL1, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_OldSkill[1]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_OldSkill[1]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITL2, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_OldSkill[2]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_OldSkill[2]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITL3, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_OldSkill[3]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_OldSkill[3]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITL4, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_OldSkill[4]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_OldSkill[4]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITR1, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewSkill[1]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewSkill[1]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITR2, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewSkill[2]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewSkill[2]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITR3, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewSkill[3]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewSkill[3]", NULL ,IniFileName);if (GetDlgItemTextA( hDlg, IDC_EDITR4, string, 2) ){Value = (WORD)string[0];itoa(Value, string, 10);WritePrivateProfileStringA( "KeySet", "g_NewSkill[4]", string ,IniFileName);}elseWritePrivateProfileStringA( "KeySet", "g_NewSkill[4]", NULL ,IniFileName);}

如果觉得《魔兽小助手》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。