獲得當前目錄:
dword getfullpathname(pctstr pszfile,dword cchpath,ptstr pszpath,ptstr *ppszfilepart);
獲取c盤的當前目錄
tchar szcurdir[max_path];
getfullpathname("c",max_path,szcurdir,null);
獲得系統版本:
bool getversion(posversioninfo pversioninformation);
成功返回true //注意,如果建立程序找不到相關的dll也會返回true;
pszcommandline最好不要傳入常量,vc會把傳入的字串放入唯讀記憶體,例如:
createprocess(null,_t("notepad"),null,null,false,0,null,null,&si,&pi);
將會執行錯誤(經過自己測試,gcc不會執行錯誤,vs2005會,書上說早期的vc也不會錯誤)
最好是:
tchar szcommandline=_t("notepad");
createprocess(null,szcommandline,null,null,false,0,null,null,&si,&pi);
將會開啟notepad程式
tchar szpath="wordpad readme.txt";
createprocess("c:\\windows\\system32\\notepad.exe",szpath,null,null,false,0,null,null,&si,&pi);
開啟notepad程式,並傳入szpaht的命令
fdwcreate 用於規定如何來建立新程序,也可以設定優先順序.
ebug_process:當子程序發生某些事情,要告訴父程序
debug_only_this_process:和ebug_process類似,不過只告訴發生的某些特定時間,比如子程序再建立子程序就不告訴
create_suspended:子程序建立,父程序掛起
detached_process:組織基於gui程序對他的父程序console的訪問,並將輸出傳送到新的console視窗
create_new_console:建立新程序同時為新程序建立控制台,不可和deta_process同時使用,否則產生乙個錯誤
create_no_window:不要為新程序建立控制台視窗
create_new_process_group:當建立多個程序後,如果使用者按下ctrl+c,那麼將會同時告訴所有程序使用者按下ctrl+c;
create_default_error_mode:新程序不繼承父程序的錯誤使用模式
create_separate_wow_vdm:當在windows 2000執行16位的時候,建立單獨的dos虛擬機器
create_shared_wow_vdm:當在windows 2000執行16位的時候,除非設定create_shparate_wow_vdm,否則所有16位程式都在單獨的dos虛擬機器執行,但是可以改變登錄檔共享
create_forcedos:強制系統執行嵌入16位os/2應用程式的mos-dos應用程式
create_breakaway_from_job:使用作業中的金衡生成乙個與作業相關聯的新程序
終止執行程序:
1.主線程函式返回(最好的方法)
2.程序中的執行緒呼叫exitprocess(最好不要);
3.另外乙個程序中的執行緒(最好也不要);
4.所有執行緒自行終止
bool terminateprocess(handle hprocess,uint fuexitcode);
與eixtprocess差別:任何執行緒都可以呼叫terminateprocess
獲得目前已經撤銷程序的退出**
bool getexitcodeprocess(handle hprocess,pdword pdwexitcode);
closehandle(handle hprocess);關閉不用的控制代碼,很重要
dword waitforsingleobject(handle hobject,dword dwtimeout);
等待hobject終止執行
pvoid getmodulepreferredbaseaddr(dword dwprocessid,pvoid pvmoduleremote);
接受乙個程序id和程序模組的位址
WINDOWS 核心程式設計第四章
程序 4.1.0 程序是乙個正在執行的程式的例項,有兩部分組成 1 作業系統用來管理程序的核心物件,存放程序的統計資訊 2 位址空間,包含程序可執行模組的 和資料,和動態分配的記憶體空間 建立乙個程序後系統會自動建立乙個執行緒 成為主線程 window應用程式的進入點函式 1 int winapi ...
第四章 程序
程序由兩部分組成 載入到程序位址空間的每個可執行檔案或dll檔案均被賦予乙個獨一無二的示例控制代碼。可執行檔案的示例控制代碼作為winmain的第乙個引數hinstexe來傳遞。載入資源的函式都需要該控制代碼的值。hicon loadicon hinstance hinst,pctstr pszic...
第四章 程序(1)
程序一a 程序通常被定義為乙個正在執行的程式的例項,它由兩個部分組成 os用來管理程序的核心物件 核心物件也是系統用來存放關於程序的統計資訊的地方 位址空間 它包含所有可執行模組或 dll模組的 和資料 它還包含動態記憶體分配的空間 當建立乙個程序時,系統會自動建立它的第乙個執行緒,稱為主線程。然後...