上一个内容:29.添加录入注入信息界面
以 29.添加录入注入信息界面 它的代码为基础进行修改
效果图:
首先在我们辅助程序所在目录下创建一个ini文件
文件内容
然后首先编写一个获取辅助程序路径的代码
- TCHAR FileModule[0x100]{};
- GetModuleFileName(NULL, FileModule, 0x100);
- int i;
- for (i = 0x100 - 1; FileModule[i] != '\\'; i--)
- FileModule[i] = 0;
- wAppPath.Format(L"%s", FileModule);
然后在需要路径的子页面写一个接收路径的函数
函数具体实现:
- void CWndINJ::Init(CString& _AppPath)
- {
- AppPath = _AppPath;
- GameIni.Format(L"%s\\config\\Games.ini", AppPath);
- }
要保存的游戏信息在CWndAddGame类里,所以要在CWndAddGame类中创建一个可以给父窗口返回值的函数,也就是利用父窗口对象的this调用父窗口的函数
- void CWndAddGame::Init(void* _father)
- {
- father = _father;
- }
父窗口用来保存游戏数据的地方
- void CWndINJ::AddGame(CString& GameName, CString& GamePath, CString& GameFullPath, CString& GameCmds, CString& DllPath)
- {
- int count = GetPrivateProfileInt(L"main", L"count", 0, GameIni);
- count++;
- CString key;
- key.Format(L"count_%d", count);
- WritePrivateProfileString(key, L"GameName", GameName, GameIni);
- WritePrivateProfileString(key, L"GamePath", GamePath, GameIni);
- WritePrivateProfileString(key, L"GameFullPath", GameFullPath, GameIni);
- WritePrivateProfileString(key, L"GameCmds", GameCmds, GameIni);
- WritePrivateProfileString(key, L"DllPath", DllPath, GameIni);
-
- CString wCount;
- wCount.Format(L"%d", count);
- WritePrivateProfileString(L"main", L"count", wCount, GameIni);
- }
给调用给父窗口传值的函数的地方
- void CWndAddGame::OnBnClickedButton3()
- {
- CWndINJ* p = (CWndINJ*)father;
- UpdateData(TRUE);
- p->AddGame(GameName, GamePath, GameFullPath, GameCmds, DllPath);
- CDialog::OnCancel();
- }
主窗口给子窗口传递路径的地方