首页 > 系统相关 >win32编程 -- 进程

win32编程 -- 进程

时间:2022-12-26 20:31:36浏览次数:45  
标签:pEnv putchar -- 句柄 编程 ++ win32 pText 进程


年轻的时候爱上什么都不为过,成熟了以后放弃什么都理解,我们终其一生,不过是想找一个能一起吃饭的人。。。

----  网易云热评

一、Windows进程介绍

一个容器,包含程序执行需要的代码、数据、资源等等信息。Windows是多任务操作系统,可以同时执行多个进程。 


二、Windows进程的特点:     

1、每个进程都有自己的ID号     

2、每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。    

3、每个进程都有自己的安全属性     

4、每个进程当中至少包含一个线程

 

三、环境信息获取

1、多字节格式

 

void 环境() {
LPCH pEnv = GetEnvironmentStrings();//返回一个地址,存放的环境变量首地址
LPSTR pText = (LPSTR)pEnv;//为了打印,重新定义一个,原来的需要释放
for (pText;*pText;pText++)
{
while (*pText)
{
putchar(*pText++);
}
putchar('\n');
}
FreeEnvironmentStrings(pEnv);
}
int main() {
环境();
return 0;
}

 

2、unicode格式

 

void 环境() {
LPWCH pEnv = GetEnvironmentStrings();
LPCWSTR pText = (LPCWSTR)pEnv;//为了打印重新定义一个,原来的用来释放
for (pText; *pText; pText++)
{
while (*pText)
{
putchar(*pText++);
}
putchar('\n');
}
FreeEnvironmentStrings(pEnv);
}
int main() {
环境();
return 0
}

 

3、设置和读取环境变量

 

void sz设置和读取环境() {
SetEnvironmentVariable(L"aiyou", L"bucuoo");//变量名字和路径
wchar_t s1[256] = { 0 };
GetEnvironmentVariable(L"aiyou", s1, 256);
LPCWSTR pText = s1;
for (pText; *pText; pText++)
{
while (*pText)
{
putchar(*pText++);
}
putchar('\n');
}
}

 

四、进程信息

1、进程ID

GetCurrentProcessId()

2、进程句柄,打印出来是-1,他只是内部使用的

GetCurrentProcess()

3、创建进程

 

void jc信息() {
STARTUPINFO s = { 0 };
PROCESS_INFORMATION p = { 0 };
CreateProcess(L"C:/Windows/System32/notepad.exe", (LPTSTR)"", NULL, NULL, FALSE, 0,
NULL, NULL, &s, &p);
printf("进程ID:%d,进程句柄:%d\n", (wchar_t)p.dwProcessId, (wchar_t)p.hProcess);
}

 

4、结束进程

 

void js结束进程() {
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 18332);//通过ID获取句柄
TerminateProcess(hproc, 0);//通过句柄杀死进程
}

 

5、等候函数

WaitForSingleObject(p.hProcess, INFINITE);//进程运行,进程句柄无信号,进程结束,才会执行这句话,只有进程句柄才是可等候句柄,infinite无限大时间

阻塞函数,等候句柄的信号,只在句柄有信号或超出等候时间,才会结束等候,

 

欢迎关注公众号:顺便编点程

win32编程 -- 进程_Windows

 

标签:pEnv,putchar,--,句柄,编程,++,win32,pText,进程
From: https://blog.51cto.com/u_15288375/5970890

相关文章

  • 11g rac数据库节点1启动异常,告警ORA-16188
    问题描述:11grac数据库节点1启动异常,告警ORA-16188,如下所示:环境介绍:该rac环境此前搭建过dg,将dg拆除后,一次系统重启便出现节点1数据库无法正常启动,告警ORA-16188.1、异常重现......
  • 学生成绩信息管理系统
    学生类的设计与实现学生信息管理模块中每个学生的基本信息有学号、姓名、语文成绩、数学成绩和英语成绩,设计一个学生类,包含学号、姓名、语文成绩、数学成绩和英语成绩等数......
  • do while 出口條件循環
           ......
  • 20221226关于电商平台呼叫中心相关指标的预测(cpo、订单瑕疵、客诉率、服务率等)
     一、背景: 呼叫中心的人力招聘、排班强依赖业务对服务率和订单的预测,预测的精准度直接影响成本和客户体验。1.对成本的影响:①客服招聘过多,造成人力冗余,导致服务成本......
  • Maven
    Maven核心概念:POM:一个文件pom.xml,pom(ProjectObjectModle)项目对象模型maven把一个项目当作一个模型使用,控制maven构建项目的过程,管理jar依赖,通过pom文件实现约......
  • 第四章 --------------------XAML名称空间
    好!好!好!这是我使用了WPF名称空间之后我想说的话。我为什么这么说?我想一一讲解   如上图所示我新建了一个......
  • 关于jQuery的操作
    jQuery简介 简化了JS ​ 类似于 后端JDBC(操作数据库的基本API) dbutils(封装JDBC)  xxx.jar 前端JS            jQuery   ......
  • Mysql查看连接数(连接总数、活跃数、最大并发数)
    怎么查看mysql的最大连接数showvariableslike'%max_connection%';查看最大连接数setglobalmax_connections=1000;    重新设置最大连接数怎么查看mysql的......
  • 程序员
    这个城市的所有人都在忙碌的过生活,他们行色匆匆,车水马龙,他们认为时间就是金钱。我在办公楼里俯视着他们,在这个偌大的城市里,想要生存是一件难事,忙着忙着都忘了自己的初心是......
  • hdu:火车进站问题(stl应用)
    ProblemDescription假设杭州东火车站只有一条铁路,并且所有火车都从一侧进来,从另一侧出去。那么,如果火车A先进站,然后火车B在火车A离开之前就进站,那么火车A直到火车B离开......