[2022]通过资源管理器选择文件 huoji 工具代码 2022-10-16 355 次浏览 0 次点赞 懂得都懂 ```cpp _Result_nullonfailure_ LPTSTR SelectTargetFileByExplorer(VOID) { OPENFILENAME ofn; // common dialog box structure TCHAR szFile[MAX_PATH] = { 0 }; // if using TCHAR macros LPTSTR Output = NULL; // Initialize OPENFILENAME /* if (0 == _RtlZeroMemory) { _RtlZeroMemory = (__RtlZeroMemory)GetProcAddress(hNtDll, "RtlZeroMemory"); if (0 == _RtlZeroMemory) { TprintfC(Red, _T("[-] Error RtlZeroMemory() %d"), GetLastError()); return NULL; } } _RtlZeroMemory(&ofn, sizeof(OPENFILENAME));*/ if (SecureZeroMemory(&ofn, sizeof(OPENFILENAME)) == NULL) { TprintfC(Red, _T("[-] Error SecureZeroMemory() %d"), GetLastError()); return NULL; } ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = GetActiveWindow(); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = _T('\0'); ofn.nMaxFile = MAX_PATH; ofn.lpstrFilter = _T("All\0*.*\0Text\0*.pf\0*.db\0"); ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileNameW(&ofn) == TRUE) { TprintfC(Green, _T("\n[+] Selected file: \"%s\".\n"), ofn.lpstrFile); } else { TprintfC(Red, _T("[-] Error: GetOpenFileName has failed %d.\n"), GetLastError()); } Output = CopyBuffer(ofn.lpstrFile, 0); return Output; } ``` 本文由 huoji 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。 点赞 0
还不快抢沙发