原创 C++判斷進程是否存在

判斷進程是否存在 一 方法 CreateToolhelp32Snapshot -> 獲取進程列表 Process32First -> 獲取列表第一個實體 Process32Next -> 獲取列表下一個實體 二 實現 bool

原创 MFC加載ICON圖標

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));

原创 獲取U盤的邏輯序列號(卷序列號)

一 概念 U盤的邏輯序列號,就是卷序列號。當U盤格式化時,會發生變化。 二 查詢 1 打開cmd窗口 快捷鍵"win + r",打開運行窗口,鍵入"cmd",然後點擊"運行"。 2 查詢U盤的卷序列號 1)查看U盤的盤符 打開

原创 zlib開源庫(官方下載)

一 zlib開源庫官網 zlib 二 zlib官網下載 三 github上的zlib源碼 zlib(github)

原创 無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用

#這個問題表明你新建的是一個main類型函數(控制檯程序),而你的程序中有窗口程序,顯然是個win32函數 #解決方法: #項目-屬性-鏈接器-系統-子系統-把控制檯該爲windows

原创 基於windows的逆向反破解研究

一 資料查詢 IDA反彙編工具 Github網絡安全

原创 單擊窗口任何位置,都能拖動窗口

一 代碼 PostMessage (WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM (point.x, point.y)) 二 解釋 HTCAPTION 點擊標題 模擬鼠標點在標題欄上,單擊窗

原创 MFC的TAB控件應用

解決方案 MFC的對話框中,添加TAB控件。新增對話框,作爲TAB控件子窗口。處理TAB頁面切換,顯示子窗口。 //1: MFC對話框,添加TAB控件 //2: TAB控件關聯變量 //(方法爲:爲控件添加變量) CTabC

原创 PE格式區段表學習

1 網址 PE格式解析-區段表及導入表結構詳解 2 區段結構圖

原创 MFC設置控件焦點

解決方法 在OnInitDialog()方法中,設置焦點到指定控件,並返回FALSE。 BOOL CToolDlg::OnInitDialog() { ... GetDlgItem(IDC_BTN1)->SetFocus();

原创 MFC對話框,去掉邊框

一 代碼 ModifyStyle (WS_CAPTION, WS_MINIMIZEBOX, SWP_DRAWFRAME);

原创 CreateCompatibleDC()和GetDC()區別

示例代表 // 需要通過設備兼容DC,才能把位圖通過SelectObject加載到屏幕DC HDC hdc = GetDC(hWnd); g_hdc = CreateCompatibleDC(hdc); g_hbmp = Load

原创 win32點擊右上角的叉叉,窗口關閉,但進程未關閉

解決方法: // 但點擊叉叉時,會產生WM_DESTROY消息。需要關閉消息循環。 case WM_DESTROY: PostQuitMessage(0); break;

原创 獲取MFC文本框字符串

解決方法: 使用窗口類的GetWindowText方法,進行獲取。 //方法1 GetDlgItem(IDC_EDIT1)->GetWindowText() //方法2 //控件與對應類關聯,如IDC_EDIT1,關聯的變量未C

原创 處理WM_PAINT消息,爲什麼一定要調用BeginPaint

一 示例代碼 case WM_PAINT: RECT rect2; hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect2); ShowRect(hdc, &rect