;
UnhookWindowsHookEx(g_hMouse);當退出時將鉤子卸掉。
UnhookWindowsHookEx(g_hKeyboard);
}
return 1;
}void SetHook(HWND hwnd)此函數設置了鉤子。
{
g_hWnd=hwnd;注意這種傳遞調用它的進程的句柄的方法,比較巧妙!
g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle("Hook"),0);
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);
}Hook.DEF的代碼如下:
LIBRARY Hook
EXPORTS
SetHook @2
SEGMENTS
MySec READ WRITE SHARED 也可以設置節的屬性。
4.新建一個工程調用此鉤子函數。工程名為HookTest,基於對話框的。在OnInitDialog()中調用SetHook(),要事先聲明_declspec(dllimport) void SetHook(HWND hwnd);
然後在Project->Setting->Link->加入..\Hook\Debug\Hook.lib,並將Hook.Dll拷貝到當前目錄。
int cxScreen,cyScreen;
cxScreen=GetSystemMetrics(S·Μ_CXSCREEN);
cyScreen=GetSystemMetrics(S·Μ_CYSCREEN);
SetWindowPos(&wndTopMost,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW);將窗口保持在最前麵。
SetHook(m_hWnd);
5.DLL的調試方法,設置斷點,然後運行時斷點時,step into即可。
4.數據庫編程
1.ODBC,ADO簡介:ADO可以認為是建立在ODBC上的。
ADO的三個核心對象
Connection對象
Connection對象表示了到數據庫的連接,它管理應用程序和數據庫之間的通信。 Recordset和Command對象都有一個ActiveConnection屬性,該屬性用來引用Connection對象。
Command對象
Command對象被用來處理重複執行的查詢,或處理需要檢查在存儲過程調用中的輸出或返回參數的值的查詢。
Recordset對象
Recordset對象被用來獲取數據。 Recordset對象存放查詢的結果,這些結果由數據的行(稱為記錄)和列(稱為字段)組成。每一列都存放在Recordset的Fields集合中的一個Field對象中。
2.演示在VB中使用ADO的方法,方法比較簡單,使用方便。另外在VB中演示了Connection和Command和Recordset的方法,用這三種方法都可以執行SQL語句。