標籤:
[檔案的相關操作]
[CreateFile]// 開啟或建立檔案
HANDLE CreateFile( LPCTSTR lpFileName, // 檔案名稱 DWORD dwDesiredAccess, // 檔案的訪問模式 GENERIC_READ|GENERIC_WRITE DWORD dwShareMode, // 檔案的共用模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 檔案的安全屬性 NULL DWORD dwCreationDispositon, // 檔案建立的處理方式 .... DWORD dwFlagsAndAttributes, // 檔案建立時的標誌和屬性 FILE_ATTRIBUTE_NORMAL HANDLE hTemplateFile // 檔案模板 NULL );
[CloseHandle] // 檔案使用結束 關閉檔案控制代碼以釋放資源
BOOL CloseHandle( HANDLE hObject); // 檔案的控制代碼
[DeleteFile] // 刪除檔案
BOOL DeleteFile( LPCTSTR lpFileName); // 檔案名稱
[ReadFile] // 檔案讀取
BOOL ReadFile( HANDLE hFile, // 檔案控制代碼 LPVOID lpBuffer, // 資料讀取的緩衝區 DWORD nNumberOfBytesToRead, // 計劃讀取的資料位元組數 LPDWORD lpNumberOfBytesRead, // 實際讀取的資料位元組數 LPOVERLAPPED lpOverlapped // NULL);
[WriteFile] // 檔案寫入
BOOL WriteFile( HANDLE hFile, // 檔案控制代碼 LPVOID lpBuffer, // 資料寫入的緩衝區 DWORD nNumberOfBytesToWrite, // 計劃寫入的資料位元組數 LPDWORD nNumberOfBytesWritten, // 實際寫入的資料位元組數 LPOVERLAPPED lpOverlapped // NULL);
[SetFilePointer] // 設定檔案指標位置
DWORD SetFilePointer( HANDLE hFile, // 檔案指標 LONG lDistanceToMove, // 位移量(低位) PLONG lpDistanceToMoveHigh, // 位移量(高位) 指標類型 一般為 NULL 只使用 低位位移量 DWORD dwMoveMethod // 基準位置 FILE_BEGIN(檔案開始位置) FILE_CURRENT(檔案當前位置) FILE_END(檔案結束位置));
[CreateDirectory] // 建立目錄
BOOL CreateDirectory( LPCTSTR lpPathName, // 建立的目錄名稱 LPSECURITY_ATTRIBUTES lpSecurityAttributes // NULL);
[RemoveDirectory] // 刪除目錄
BOOL RemoveDirectory( LPCTSTR lpPathName // 刪除的目錄名稱);
[進程的基本操作]
[CreateProcess]// 建立strName進程
BOOL CreateProcess( LPCTSTR lpApplicationName, // 可執行檔的名稱 LPCTSTR lpCommandLine, // 可執行檔的運行參數 NULL LPSECURITY_ATTRIBUTES lpProcessAttributes, // 進程安全屬性 NULL LPSECURITY_ATTRIBYTES lpThreadAttributes, // 安全執行緒屬性 NULL BOOL bInheritHandle, // 當前進程中的可繼承控制代碼是否可被新進程繼承 DWORD dwCreationFlags, // 新進程的優先順序和建立標誌 // DEBUG_PROCESS 父進程可對【子進程(建立的進程)及其子進程】進行調試 // DEBUG_ONLY_THIS_PROCESS 父進程可對【子進程(建立的進程)】進行調試 // CREATE_SUSPENDED 子進程(建立的進程)建立後不立即運行(被掛起) LPVOID lpEnvironment, // 新進程的環境變數 NULL LPCTSTR lpCurrentDirectory, // 新進程使用的目前的目錄 LPSTARTUPINFO lpStartupInfo, // 新進程的啟動資訊/*typedef struct _STARTUPINFO {DWORD cb;LPTSTR lpReserved;LPTSTR lpDesktop;LPTSTR lpTitle;DWORD dwX;DWORD dwY;DWORD dwXSize;DWORD dwYSize;DWORD dwXCountChars;DWORD dwYCountChars;DWORD dwFillAttribute;DWORD dwFlags;WORD wShowWindow;WORD cbReserved2;LPBYTE lpReserved2;HANDLE hStdInput;HANDLE hStdOutput;HANDLE hStdError;} STARTUPINFO, *LPSTARTUPINFO;*/ LPPROCESS_INFORMATION lpProcessInformation // 新進程中的(進程和主線程)的相關資訊參數/*typedef struct{HANDLE hProcess,HANDLE hThread,DWORD dwProcessId,DWORD dwThreadId}PROCESS_INFORMATION, *LPPROCESS_INFORMATION*/);
[egcode]:
PROCESS_INFORMATION pi = {0};STARTUPINFO si = {0};si.cb = sizeof(STARTUPINFO);BOOL bRet = CreateProcess("C:\\1.exe", NULL, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);// 如果不想佔用過多的系統資源 可以在建立好進程以後就關閉進程和主線程的控制代碼以釋放控制代碼資源CloseHandle(pi.hThread);CloseHandle(pi.hProcess);
[OpenProcess] // 開啟dwProcessId進程
HANDLE OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
[ExitProcess] // 正常退出進程
[TerminateProcess] // 強制退出進程
[CloseHandle] // 關閉進程控制代碼 當不是意味著關閉進程 只是釋放了【進程控制代碼】這個資源(控制代碼也是系統資源的一種)
[00022]-[2015-09-19]-[00]-[Windows 平台基礎知識0]