zoukankan      html  css  js  c++  java
  • 进程相关内容

    进程的创建:

    WinExec函数:

    UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);

    lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。

    uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值

    ShellExecute函数:

    ShellExecute函数原型及参数含义如下:

    ShellExecute(

    hWnd: HWND; {指定父窗口句柄}

    Operation: PChar; {指定动作, 譬如: open、print、edit、explore、find}

    FileName: PChar; {指定要打开的文件或程序}

    Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}

    Directory: PChar; {缺省目录}

    ShowCmd: Integer {打开选项}

    ): HINST;

    ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}

    SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}

    SW_NORMAL = 1; {同 SW_SHOWNORMAL}

    SW_SHOWMINIMIZED = 2; {最小化, 激活}

    SW_SHOWMAXIMIZED = 3; {最大化, 激活}

    SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}

    SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}

    SW_SHOW = 5; {同 SW_SHOWNORMAL}

    SW_MINIMIZE = 6; {最小化, 不激活}

    SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}

    SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}

    SW_RESTORE = 9; {同 SW_SHOWNORMAL}

    SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}

    SW_MAX = 10; {同 SW_SHOWNORMAL}

    CreateProcess函数:创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。该函数最重要的是最后两个参数STARTUPINFO的结构体和PROCESS_INFORMATION的结构体,该结构保存着进程或者线程的一些消息

    //进程快照,使用下面这个函数还要包含头文件#include<TlHelp32.h>

    HANDLE hProcessSnap= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);

    第一个参数的取值:

    TH32CS_INHERIT - 声明快照句柄是可继承的。

    TH32CS_SNAPALL - 在快照中包含系统中所有的进程和线程。

    TH32CS_SNAPHEAPLIST - 在快照中包含在th32ProcessID中指定的进程的所有的堆。

    TH32CS_SNAPMODULE - 在快照中包含在th32ProcessID中指定的进程的所有的模块。

    TH32CS_SNAPPROCESS - 在快照中包含系统中所有的进程。

    TH32CS_SNAPTHREAD - 在快照中包含系统中所有的线程。

    第二个参数:一个进程ID号,用来指定要获取哪一个进程的快照,当获取系统进程列表或获取当前进程快照时可以设为0

    用Process32First获取第一个进程的信息,返回值为一个BOOL类型说明是否还有其他进程,获取的进程信息放在第二个参数PROCESSENTRY32类型的变量中

    Process32Next获取下一个进程的信息,返回值为一个BOOL类型说明是否还有其他进程,获取的进程信息放在第二个参数PROCESSENTRY32类型的变量中

    OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。

    HANDLE OpenProcess(

    DWORD dwDesiredAccess, //渴望得到的访问权限(标志)

    BOOL bInheritHandle, // 是否继承句柄

    DWORD dwProcessId// 进程标示符

    );

    dwDesiredAccess取值:

    PROCESS_ALL_ACCESS 给予进程所有可能允许的权限.

    PROCESS_DUP_HANDLE允许使用DuplicateHandle函数进行进程句柄的复制操作.

    PROCESS_QUERY_INFORMATION允许函数GetExitCodeProcess 或函数GetPriorityClass functions 查询进程的信息时使用该句柄.

    PROCESS_SET_INFORMATION允许函数SetPriorityClass使用此句柄进行优先级设置.

    PROCESS_TERMINATE允许函数TerminateProcess 使用此句柄关闭进程.

    PROCESS_VM_OPERATION 允许函数VirtualProtectEx使用此句柄修改进程的虚拟内存.

    PROCESS_VM_READ or PROCESS_VM_WRITE 允许函数访问和写入权限

    SYNCHRONIZE Windows NT 专用: 允许同步函数使用此句柄.

    TerminateProcess:关闭一个进程,可以用GetExitCodeProcess函数获取一个退出码

    转载于:https://www.cnblogs.com/chaguang/p/6743087.html

  • 相关阅读:
    「2019纪中集训Day20」解题报告
    PHP基础入门
    javascript
    正则表达式
    DOM 节点
    对象
    字符串
    函数
    for循环
    jQuery
  • 原文地址:https://www.cnblogs.com/twodog/p/12140796.html
Copyright © 2011-2022 走看看