怎么让一个进程进入睡眠状态和激活它?

时间:2022-08-19 08:05:00
CreateProcess( "D:\\xxxx\\xxxxx\\xxxx.exe",NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
我用CreateProcess启动了一个外部程序,现在设一个时间达到了后把该外部进程锁起来,就是让它没法反应操作,然后达到某个条件后激活该进程操作,需要怎么做??求源代码。。

17 个解决方案

#1


NtSuspendProcess,NtResumeProcess

#2


引用 1 楼 lactoferrin 的回复:
NtSuspendProcess,NtResumeProcess

额我找不到这个函数,我用的是windows下的vc 6.0编写代码。。晕哦,是不是引用外文件的?

#3


这两个api在ntdll.dll中,如果没有ntdll.lib就使用GetModuleHandle+GetProcAddress得到


函数原形去网上查

#4


嗯嗯。2个办法我都试试,先谢了。

#5


引用 3 楼 lactoferrin 的回复:
这两个api在ntdll.dll中,如果没有ntdll.lib就使用GetModuleHandle+GetProcAddress得到


函数原形去网上查

ntdll.dll和ntdll.lib该怎么添加,汗真没用过,麻烦了。。

#6


如果你有了ntdll.lib,把它加入到连接器的库文件表中,或者在源代码文件加入#pragma comment(lib,"ntdll.lib")

#7


嗯?可以用了,刚才看了一篇文章说ntdll.lib当文件添加下去也可以试了是不行的。晕

#8


可以发到我的邮箱mindesweet@21cn.com给我吗?ntdll.lib不知道为什么用不了,#pragma comment(lib,"ntdll.lib")了

#9


GetModuleHandle+GetProcAddress成功了。ntdll.lib用不出来,闷

#10


你的ntdll.lib放在什么地方

#11


debug目录下和当前文件目录下都放了。问题是获取不了这两个参数,就好像,#pragma comment(lib,"ntdll.lib")不成功的感觉

#12


什么叫获取不了这两个参数,有什么错误信息

#13


提示是找不到没定义,助手也没任何提示。

#14


连接器错误还是编译器错误,你有没有声明函数原型

#15


函数原型怎么声明?编译就过不了啦。。应该是没声明吧?

#16


extern"C"__declspec(dllimport) ULONG __stdcall NtSuspendProcess(HANDLE ProcessHandle);
如果是c语言就不要extern"C"

#17


这样不就和GetModuleHandle+GetProcAddress使用差不多le ?

#1


NtSuspendProcess,NtResumeProcess

#2


引用 1 楼 lactoferrin 的回复:
NtSuspendProcess,NtResumeProcess

额我找不到这个函数,我用的是windows下的vc 6.0编写代码。。晕哦,是不是引用外文件的?

#3


这两个api在ntdll.dll中,如果没有ntdll.lib就使用GetModuleHandle+GetProcAddress得到


函数原形去网上查

#4


嗯嗯。2个办法我都试试,先谢了。

#5


引用 3 楼 lactoferrin 的回复:
这两个api在ntdll.dll中,如果没有ntdll.lib就使用GetModuleHandle+GetProcAddress得到


函数原形去网上查

ntdll.dll和ntdll.lib该怎么添加,汗真没用过,麻烦了。。

#6


如果你有了ntdll.lib,把它加入到连接器的库文件表中,或者在源代码文件加入#pragma comment(lib,"ntdll.lib")

#7


嗯?可以用了,刚才看了一篇文章说ntdll.lib当文件添加下去也可以试了是不行的。晕

#8


可以发到我的邮箱mindesweet@21cn.com给我吗?ntdll.lib不知道为什么用不了,#pragma comment(lib,"ntdll.lib")了

#9


GetModuleHandle+GetProcAddress成功了。ntdll.lib用不出来,闷

#10


你的ntdll.lib放在什么地方

#11


debug目录下和当前文件目录下都放了。问题是获取不了这两个参数,就好像,#pragma comment(lib,"ntdll.lib")不成功的感觉

#12


什么叫获取不了这两个参数,有什么错误信息

#13


提示是找不到没定义,助手也没任何提示。

#14


连接器错误还是编译器错误,你有没有声明函数原型

#15


函数原型怎么声明?编译就过不了啦。。应该是没声明吧?

#16


extern"C"__declspec(dllimport) ULONG __stdcall NtSuspendProcess(HANDLE ProcessHandle);
如果是c语言就不要extern"C"

#17


这样不就和GetModuleHandle+GetProcAddress使用差不多le ?