进程基础知识

<msdn 查找关键字>  Process and Thread Functions 

1.WinExec()
https://msdn.microsoft.com/zh-cn/library/windows/desktop/cc144191(v=vs.85).aspx

UINT WinExec(
            LPCSTR lpCmdLine,  // command line
            UINT uCmdShow);    // window style
WinExec("control.exe", SW_NORMAL);
WinExec("c:\windows\system32\control.exe", SW_NORMAL);
WinExec("c:\windows\system32\control.exe MyCpl.cpl", SW_NORMAL);

2.ShellExecute()
https://msdn.microsoft.com/zh-cn/vstudio/bb762153

HINSTANCE ShellExecute(
    HWND hwnd, //与窗口联系起来
    LPCTSTR lpOperation,
    LPCTSTR lpFile, 
    LPCTSTR lpParameters, 
    LPCTSTR lpDirectory,
    INT nShowCmd
);

打开文档

ShellExecute(
    NULL"Edit",
    "C:\\test\\xxx.txt", 
    NULL, 
    NULL,
    SW_SHOWNORMAL
);

打开文件夹

ShellExecute(
    NULL,
    "explore",
    "C:\\test\\xxx.txt", 
    NULL, 
    NULL,
    SW_SHOWNORMAL
);

3.CreateProcess()
https://msdn.microsoft.com/zh-cn/office/ms682425(v=vs.80).aspx

CREATE_SUSPENDED //创建的进程设置为挂起,等待命令到来才执行;

GetCurrentDirectory();//获得程序当前目录
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si, 0,sizeof(STARTUPINFO));
memset(&pi, 0,sizeof(PROCESS_INFORMATION));
si.cb = sizeof(STARTUPINFO);
TerminateProcess(pi.Process, 0);//结束进程

4

//获取计算器程序的窗口句柄
HWND hWnd = Findwindow("NULL", "计算器");
//计算器程序PID获取:
DWORD dwPID = 0;
dwPID = GetWindowsThreadProcessId(hWnd , &dwPID);
//获取进程的句柄
HANDLE hProcess;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
//结束目标进程
TerminateProcess(hProcess, 0);

5 CreateProcess()子进程继承,pi.Process 进程内部Index,在子进程可以当进程句柄使用,用其来关闭自身。

6.TerminateProcess属于暴力方法,失去了释放资源的机会,尽量不要使用这个API。

7.遍历任务管理器

//3个api
CreateToolhelp32Snapshot();//创建系统进程状态的快照,在调用API的那瞬间
Process32First(hSnapshot, &ww);
Process32Next()

8遍历窗口
EnumWindows();
GetDesktopWindow
GetWindow();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值