码迷,mamicode.com
首页 > Windows程序 > 详细

[00022]-[2015-09-19]-[00]-[Windows 平台基础知识0]

时间:2015-09-19 12:10:03      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

[文件的相关操作]
[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]

标签:

原文地址:http://www.cnblogs.com/Auris/p/4821215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!