破解教程入門篇3—Windows程序參考模板_第1頁
破解教程入門篇3—Windows程序參考模板_第2頁
破解教程入門篇3—Windows程序參考模板_第3頁
破解教程入門篇3—Windows程序參考模板_第4頁
破解教程入門篇3—Windows程序參考模板_第5頁
已閱讀5頁,還剩5頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第三章Windows程序 這一章我都不知道該如何寫了,呵呵 畢竟,Win32是一個非常深奧的系統,目前還容不得我這種小輩在這兒說三道四,不過,我既然是要寫給那些入門階段的朋友們看的,又不是寫給那些搞程序設計老鳥看的,所以,我也犯不著怕被人背后指著罵 本章的名字就叫Windows程序而不是Windows程序設計所以,我只是講一些關于Windows程序運作的原理: Windows為什么叫Windows,相信所有用過的朋友都可以明白,那桌面上一個一個的窗口,就是它名字的由來。也就是這一個又一個窗口的出現,使計算機的使用一下子簡單了巨多。幾年前接觸過電腦的朋友一定知道DOS吧,不知道的話,去問加解密工

2、具下載版的版主老哥,讓他跟你解釋 你還記的DOS下那黑乎乎的窗口吧,沒見過的哥們兒可以在開始菜單中找出來看看。DOS通過一系列的命令來進行相應的操作,如進入一個目錄,刪除一個目錄等等等等。那種工作方式就叫做命令提示符方式,也即命令行。 現在國內不懂電腦的人還老愛說要想學電腦,必須要英語過關。(就是這個,嚇跑了多少僅僅是想學習一些基本操作的朋友)可能也就是源自DOS的原因吧。 后來,隨著硬件的支持以及技術上的提高,當然還有為了使電腦更方便的服務與人,慢慢的就有了所謂的視圖操作系統,從此,你不用再記憶那些大堆的指令了,而且操作上,也有了相大的提高,可以說操作系統發展到今天的份兒上,操作已經夠簡單了

3、,去看看那些在網吧里一把鼻涕的小孩子們吧 2 / 10當然,就像當年DOS之于命令提示行一樣,今天的Windows仍和當年一樣,占據著大部分的用戶群。 (場外:一觀眾扔來一爛柿餅,你是唐僧啊,這么多廢話) 馬上轉入正題,Windows之所以好用,除了不用背N多的命令外,一個原因就是因為它本身提供了大量的標準Windows GUI函數。所以對于用戶,面對的是同一套標準的窗口,對這些窗口的操作都是一樣的,所以使用不同的應用程序時無須重新學習操作。不用像當年在DOS下面那樣一安裝新程序,就要馬上看幫助,看說明。 而Windows GUI函數,只不過是微軟提供給程序開發人員的API(Applicati

4、on Programming Interface 應用編程接口)中的一小部分而以。Windows API是一大組功能強大的函數,它們本身駐扎在 Windows 中供人們隨時調用。這些函數的大部分被包含在幾個動態鏈接庫(DLL)中,譬如:kernel32.dll、 user32.dll 和 gdi32.dll。 Kernel32.dll中的函數主要處理內存管理和進程調度;user32.dll中的函數主要控制用戶界面;gdi32.dll中的函數則負責圖形方面的操作等等。 你可能多多少少聽說過API函數,如果你不太清楚到底是怎么一回事的話,我盡量給你解釋的清楚一點。 不知道你有沒有想過,Window

5、s中的那一個又一個窗口是怎么畫出來的呢?呵呵,你可能用VB、Delphi編過程序,你有沒有想過你寫的程序中的那些窗口是怎么形成的?是控件變成的。倒.呵呵,相信你當初學VB或Delphi的時候,所看的書上一定對可視化編程環境大肆贊揚了一番吧,是不是也提到過比VC+怎么怎么方便?怎么怎么不用再為生成程序的界面而花費大量無用時間了等等。 (臺下上來一東北民工:小子,你找抽啊,還講不講了) 馬上開說,其實我只是想告訴你,所有你用的Windows下的程序,都是通過調用一個又一個的Windows API來執行相應任務的,沒有API,你的程序什么也做不了。用VB、Delphi以及MFC的朋友也許會說我根本沒

6、有調用什么API?。∑鋵嵾@些API都是由你所用的開發環境自動進行相應的轉換的。比如說你用Delphi新建一程序,什么也不用動就直接按F9來運行它,是不是出現一個空白的窗體?這就是個標準的Windows程序,它有Windows程序所具有的一切特征,如最大化按鈕、最小化按鈕、關閉按鈕你可以通過鼠標來移動它。 但是如果你想用VC+或MASM32來寫這樣一個程序,那么你有兩種方法,在VC+中,你可以用MFC或直接調用API,而在MASM32中,你就只有直接調用API這一種方法。所謂直接調用API,就是指所有的操作都通過最原始的API來完成。通過直接調用API來生成這樣一個程序,你必須要先注冊窗口類(除

7、非您使用 Windows 預定義的窗口類,如 MessageBox 或 dialog box);然后產生窗口;然后在桌面顯示窗口(除非您不想立即顯示它); 然后刷新窗口客戶區; 麻煩吧,如果你想真正的讓這個程序能正常地運行下來,還要再加入以下步驟: 1.你要得到您應用程序的句柄。2.窗體顯示后就進入無限的獲取窗口消息的循環。3. 如果有消息到達,由負責該窗口的窗口回調函數處理。4. 如果用戶關閉窗口,進行退出處理。 上面這此步驟,都需要調用相應的API來完成。比如說得到程序的句柄用GetModuleHandle注冊窗口類用RegisterClass或RegisterClassEx;注冊后,還要

8、用CreateWindowEx函數來生成相應窗口,而后用ShowWindow來顯示它,之后還會用UpdateWindow 來更新客戶區等等等等。這些還都不算呢,如果你真通過直接調用API去寫一個稍大一點兒的程序的話,你會發現那是一個多么不令人愉快的事情。 上面說的這些,只不過是API中的一小小小小小小小小小小.部分,這才幾個,真正的API有成百上千個,包括對系統各個方面進行的操作。沒有API,你的程序什么也干不了。比如說你的程序中有一個Edit控件,VB中應該叫做Text控件吧,你想將用戶輸入到里面的信息放到一個變量中去,那么Delphi中可以用Str:=Edit1.text來實現。VB中應該

9、是Str=Text1.Text;但是如果你用API,想要得到Edit輸入框里的文本內容,就要調用GetDlgItemInt(Edit中輸入的值當做數值來用)GetDlgItemText、GetDlgItemTextA(Edit中輸入的值當做字符串來用)。而上面我說的VB、Delphi得到編輯框中輸入的內容的方法,最終在編譯成可執行文件的時候,也會由編譯器自動對其進行相應的轉換。你只要明白一件事就好了,那就是你所用的程序,無時無刻都在調用著系統中的各種各樣的API函數。 其實Windows中的API,就相當于當年DOS系統中的系統功能調用,及中斷21。只不過在數量上和功能上,都是DOS系統功能調

10、用所不及的。 如果你還是看不明白,那我不怪你,可能是我講的不清楚,所以,還是給你推薦老牛寫的書吧。力推Windows程序設計,看過之后你會內力大增的,那時候你所知道的知識就不止是API而以了。 其實話說回來,我這篇文章不是教你編程的,所以關于Windows程序的原理,沒有必要說那么多,我之所以跟你講API,是想讓你知道Windows程序的運行機制。免的到時候用調試器下斷點的時候問什么是API。(眾人(十分憤怒地)沖上臺來:“拉下去PK!把我們當什么了!”) (我再次來到臺上,鏡頭切向臉的一側,來個特寫。只見上面有若干處大小不同的傷口)可能還有些重點的地方我沒有提到,歡迎指正。如果你有什么不明白

11、的地方,歡迎跟貼提問。只要別太那個,比如說“你能把所有的API給我列出來讓我回去背背好嗎?” 附上幾個常用的API函數吧。相信你此時因該以經對API有個大概的了解了。 MessageBox 顯示一信息對話框 MessageBoxEx 顯示一信息對話框 MessageBoxIndirect 顯示一定制信息對話框 (以上這三個,可以用來中斷那些錯誤提示,比如說你注冊碼輸入錯誤了,程序就可能通過這幾個函數中的一個,來提示你錯誤) GetDlgItemInt 得指定輸入框整數值 GetDlgItemText 得指定輸入框輸入字符串 GetDlgItemTextA 得指定輸入框輸入字符串 (軟件可以用這

12、三個來得到用戶輸入的注冊碼) GetLocalTime 得當前本地時間 GetSystemTime 得當前系統時間 (軟件可以用這兩個來判斷軟件是否過期) RegQueryvalueA 獲取一個項的設置值 RegQueryvalueExA 獲取一個項的設置值 RegSetvalueA 設置指定項或子項的值 RegSetvalueExA 設置指定項的值 (如果軟件用注冊表存儲注冊信息的話,那么這幾個也許會有用) 上面講的,只是幾個平時比較常見的,更多請參見看雪以前的教程或Windows開發人員手冊。 最后,我們還要隆重介紹一個重量級函數,你可能不知道API是什么,但你只要用過調試器,就一定知道它的名字。你可以不知道美國現任的總統是誰,但是你一定要知道這個函數。我雖然知道現任美國總統是鮑威爾 但我同時也知道這個函數是誰。 它就是-吳孟達?。▽а荩篘G)重新說。它就是hmemcpy。 這個函數是干什么的? 它是一個非常簡單的函數。只完成一項非常非?;镜娜蝿?,就是把數據從一個地方復制到另一個地方。應用程序本身并不調用它,理由很簡單,它很低級(匯編:誰敢說跟我一樣?)。但是大部分API函數卻非常頻繁地調用它。所以,它也叫萬能函數。平時你可能都不知道有這么個東西,但是斷起程序來卻非常管用。但目前到了2K跟Xp下,卻沒有這個函數了,與之相應的是一個叫memcpy的函數,雖然功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論