Time of Update: 2018-12-03
簡單對下面3 個訊息處理 就可實現菜單自繪, 其他控制項類似; //WM_DRAWITEM:繪製菜單的樣式//WM_MEASUREITEM:指定要繪製菜單的大小//WM_INITMENU:把架構菜單全部改成帶MF_OWNERDRAW標誌void CTestRgnDlg::OnInitMenu(CMenu* pMenu){ //CDialog::OnInitMenu(pMenu); CMenu *pSubMenu; UINT nCount,nSubCount,nID; CString
Time of Update: 2018-12-03
網際網路共用資源也是按樹狀組織的,非分葉節點稱為容器(container),對容器需要進一步搜尋直到到達葉子節點為止,葉子節點才是共用資源的根路徑。共用資源一般分成兩種:共用列印裝置和共用資料夾。對於網際網路共用檔案的搜尋,採用WNetOpenEnum和WNetEnumResource(由mpr.dll匯出)進行遞迴枚舉。其函數原型及參數含義請參閱MSDN,使用如下代碼enumshare.cpp將顯示所有的網路磁碟機共用資料夾的路徑: #include #include
Time of Update: 2018-12-03
DrawImage函數在繪製圖片時,如果有展開會導致自動漸層的問題。具體描述如下。 假設我們要做一個進度條,用自己的png格式圖片作為背景和前景進行繪製,此時必然要展開圖片,一是我們在橫向上要通過展開量來表示不同的進度,二是為了力求節省資源檔體積,我們只要求圖片橫向上有幾個像素表示即可(甚至一個像素)。我們用下面的代碼進行繪製。 Graphics
Time of Update: 2018-12-03
三極體目錄 1 三極體 2 晶體三極體的結構和類型 3 三極體的材料 4 三極體的封裝形式和管腳識別 5 晶體三極體的電流放大作用 6 使用多用電錶檢測三極體 7 半導體三極體的參數 8 半導體三極體的型號 9 三極體的選用 10 三極體的其他應用 11 中、小功率三極體的檢測 12 大功率晶體三極體的檢測 三極體
Time of Update: 2018-12-03
映像旋轉和展開 映像的旋轉和展開通常是通過在DrawImage中指定destPoints參數來實現,destPoints包含對新的座標系定義的點的資料。圖7.18說明了座標系定義的方法。 可以看出,destPoints中的第一個點是用來定義座標原點的,第二點用來定義X軸的方法和映像X方向的大小,第三個是用來定義Y軸的方法和映像Y方向的大小。若destPoints定義的新座標系中兩軸方向不垂直,就能達到映像展開的效果。 下面的代碼就是映像旋轉和展開的一個樣本,其結果7.19所示。
Time of Update: 2018-12-03
topdesk 沒有呼出 本身設定視窗的熱鍵, 一旦 設定了隱藏表徵圖, 就再也無法對其進行設定。花了1個多小時,用windbg終於找到瞭解決方法。 再這汗自己一下,用的工具不對,用filemon 資訊設定過濾後也資訊太多,沒法辨別有用的資訊。在topdesk啟動後 windbg 斷在程式開始, 下一個檔案或註冊表斷點 觀察到我的機器 系統在C 盤 :在下面路徑C:/Documents and Settings/sina/Application
Time of Update: 2018-12-03
繪製控制項位元影像背景,在控制項存在捲軸的情形下,需要格外的主意: 捲軸使控制項視窗滾動了,當前DC的原點的也滾動了, 必須考慮DC滾動帶來的偏差,否則 如果始終把一個位元影像從DC的(0,0)點繪製,那麼位元影像會變得亂七八糟。 下面的代碼是在 OnPaint 中考慮了捲軸帶來的影響 執行個體代碼:捲軸的位置 就是 視窗位移的大小。void VividTree::OnPaint(){CPaintDC dc(this);CDC dc_ff;CBitmap bm_ff;CBitmap
Time of Update: 2018-12-03
1.顯示的圖形為什麼會閃爍[/B] 我們的繪圖過程大多放在OnDraw或者OnPaint函數中,OnDraw在進行螢幕顯示時是由OnPaint進行調用的。當視窗由於任何原因需要重繪時,總是先用背景色將顯示區清除,然後才調用OnPaint,而背景色往往與繪圖內容反差很大,這樣在短時間內背景色與顯示圖形的交替出現,使[/B]得顯示視窗看起來在閃。如果將背景刷設定成NULL,這樣無論怎樣重繪圖形都不[/B]會閃了。當然,這樣做會使[/B]得視窗的顯示亂成一團,因為重繪時沒有背景色對原來繪製[/B]
Time of Update: 2018-12-03
截獲API是個很有用的東西,比如你想分析一下別人的程式是怎樣工作的。這裡我介紹一下一種我自己實驗通過的方法。 首先,我們必須設法把自己的代碼放到目標程式的進程空間裡去。Windows Hook 可以幫我們實現這一點。SetWindowsHookEx的聲明如下:HHOOK SetWindowsHookEx( int idHook, // hook type HOOKPROC lpfn, // hook procedure HINSTANCE hMod, // handle
Time of Update: 2018-12-03
//################################################// 必須要注意的是:// (1) 必須要用 #import "XXXX/HelloWorld.dll", 此時彼編譯,編譯器會產生// helloworld.tlh, helloworld.tli//// (2) 必須要設定命名空間 using namespace HelloWorldLib;//##############################################
Time of Update: 2018-12-03
用到了一個結構體和一個函數:LOGFONT和SetTextCharacterEXtra,但是LOGFONT好像也可以不需要特別的進行使用來使SetTextCharacterExtra起作用。SetTextCharacter函數:This function sets the intercharacter spacing. Intercharacter spacing is added to each character, including break characters, when the
Time of Update: 2018-12-03
在MFC中實現 EventSink 。(1) 在MFC中,添加ATL簡單對象 CFileMonitorSink(2) 添加繼承父類別識別碼ispEventImplpublic IDispEventImpl<0, CFileMonitorSink, &__uuidof(_IFun1Events), &__uuidof(__ATLEventLib), 1, 0>(1)0 唯一識別碼, 用於區別 串連到 事件來源的多個用戶端CFileMonitorSink,
Time of Update: 2018-12-03
{//臨時映像Bitmap* lpImage = Bitmap::FromFile(_T("E://work//src//MiniVideo//final//Skin//setting_btn2.png"));Bitmap * lpImage_real = Bitmap::FromFile(_T("E://work//src//MiniVideo//final//Skin//setting_btn.png"));Graphics * lpGraphics =
Time of Update: 2018-12-03
* API函數地址的擷取 在能夠正確重定位之後,病毒就可以運行自己代碼了。但是這還遠遠不夠,要搜尋檔案、讀寫檔案、進行進程枚舉等操作總不能在有Win32 API的情況下自己用彙編完全重新實現一套吧,那樣的編碼量過大而且相容性很差。Win9X/NT/2000/XP/2003系統都實現了同一套在各個不同的版本上都高度相容的Win32 API,因此調用系統提供的Win32 API實現各種功能對病毒而言就是自然而然的事情了。 所以接下來要解決的問題就是如何動態擷取Win32
Time of Update: 2018-12-03
解析PE檔案的匯出函數表 PE檔案的函數匯出機制是進行模組間動態調用的重要機制,對於正常的程式,相關操作是由系統載入器在程式載入前自動完成的,對使用者程式是透明的。但要想在病毒代碼中實現函數地址的動態解析以取代載入器,那就有必要瞭解函數匯出表的結構了。在圖1中可以看到在PE頭結構IMAGE_OPTIONAL_HEADER32結構中包含一個DataDirectory數組結構,該結構包含16個成員,每個成員都是一個IMAGE_DATA_DIRECTORY結構: typedef struct _
Time of Update: 2018-12-03
//////////////////////////////////////////////////////////////////////////////////////////// 作者 beiyu http://beiyu.bokee.com// 核心態實現進程和連接埠關聯,在WINDOWS2000.xp,2003下可以用。// 感謝Leven公布了他的代碼,增加了區分tcp,udp,增加了作業系統的相容性// 可以在Windows 2000, xp,
Time of Update: 2018-12-03
DDOS防禦,註冊表設定大全Windows Registry Editor Version
Time of Update: 2018-12-03
技術要點: 1。通過NTQuerySystemInforamtion函數獲得系統所有控制代碼,來獲得SOCKET控制代碼。 2.通過CreateToolhelp32Snapshot函數獲得系統進程快照,獲得進程詳細資料。 實現細節1
Time of Update: 2018-12-03
字串轉 大寫 char *_strupr( char *str );wchar_t *_wcsupr( wchar_t *str );unsigned char *_mbsupr( unsigned char *str );char *_strupr_l( char *str, _locale_t locale);wchar_t *_wcsupr_l( wchar_t *str, _locale_t locale); 字串轉 小寫char *_strlwr(
Time of Update: 2018-12-03
ViewPort 轉換矩陣是把投影視窗顯示的2D映像轉換為視口顯示(螢幕座標),即從投影視窗到視口縮放變換。 已知: 通常, 使用者座標中需要顯示的圖形(矩形地區)稱為視窗。(這裡是投影視窗)在裝置(螢幕)上,顯示(或繪製)圖形的地區(矩形地區)稱為視口。(這裡是螢幕) 投影視窗的大小為x= (-1,1) , y= (-1 ,1), z=(0, 1)視窗到視口的縮放變換:另外: Width = Vxr-Vxl, Height = Vyt-Vyb (使用者可以設定) Wxr-Wxl