社区
进程/线程/DLL
帖子详情
如何在Windows中的禁止我的线程不被发现
whongshu
2000-06-30 10:53:00
我想在Windows中按下CTRL+ALT+DEL时的任务管理器中把我的线程去掉不知怎么实现?
...全文
225
5
打赏
收藏
如何在Windows中的禁止我的线程不被发现
我想在Windows中按下CTRL+ALT+DEL时的任务管理器中把我的线程去掉不知怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
solitudestar
2000-07-03
打赏
举报
回复
在Head File里加入如下代码:
typedef DWORD(__stdcall *PRegFunction)(DWORD,DWORD);
在private:里加入如下代码:
HINSTANCE hKernelLib;
PRegFunction RegisterServiceProcess;
在public:里加入如下代码:
__fastcall ~TForm1();
在其cpp文件里加入如下代码:
__fastcall TForm1::TForm1(TComponent *Owner)
:TForm(Owner)
{
hKernelLib=LoadLibrary("kernel32.dll");
if(hKernelLib){
RegisterServiceProcess=(PRegFunction)GetProcAddress(hKernelLib,"RegisterServiceProcess);
if(RegisterServiceProcess) RegisterServiceProcess(GetCurrentProcessId(),1);
}
}
__fastcall TForm1::~TForm1()
{
if(hKernelLib){
if(RegisterServiceProcess) RegisterServiceProcess(GetCurrentProcessId(),0);
FreeLibrary(hKernelLib);
}
}
上面的TForm1即为你程序的主窗体的名字.
whongshu
2000-07-01
打赏
举报
回复
我用的是2000,有没有别的办法。
先谢谢你,给你加分了
qbhua
2000-07-01
打赏
举报
回复
如果你用的是WIN98/95系统是应该可以的,
我试过。但如果你用的是NT/2000这样肯定不行。
whongshu
2000-07-01
打赏
举报
回复
没有成功
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"RegisterServiceProcess");
返回NULL。
bzjbest
2000-06-30
打赏
举报
回复
用下面程序即可,从此不用再问.
在InitInstance()中加入:
typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
HINSTANCE hDLL; // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer
DWORD dwParam1;
UINT uParam2, uReturnVal;
hDLL = LoadLibrary("KERNEL32");
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"RegisterServiceProcess");
if (!lpfnDllFunc1)
{
// handle the error
FreeLibrary(hDLL);
return 0;
}
else
{
// call the function
uReturnVal = lpfnDllFunc1(GetCurrentProcessId(),1);
}
}
在Dll
中
创建
线程
?No,大错特错
前几天的时候,遇到一个面试 ,问我在Dll
中
的忌讳有什么?我回答的是不能在dll main函数
中
创建
线程
和加载动态库,然后下一个问题也接着来了,为什么不能?我说会造成死锁,但是具体的是什么原因造成的死锁,当时只记得看过《
Windows
核心编程》,书
中
有过介绍,但是忘记了,无非就是因为同步问题,
线程
间会造成互相阻塞状态。具体是什么,今天回来分析一下。
Windows
核心编程
中
的原话是这...
Windows
线程
优先级提升策略
Windows
线程
优先级提升策略
Windows
实现了一个基于优先级的抢先式多处理及调度系统。通常
线程
可在任何可用处理机上运行,但可限制某
线程
只能在某处理机上运行。要了解
线程
优先级的变化,首先我们应该清楚
Windows
对
线程
优先级的设置。
Windows
的每个
线程
都有自己的状态,包括实际优先级、处理器亲和和帐号信息。调度程序采用了32级优先权方案以确定
线程
执行顺序。优先级分成两类:可变类和实时类。可变类包括0到15优先级的
线程
,实时类包括16到31优
C++
线程
同步的四种方式(
Windows
)
一、为什么要进行
线程
同步? 在程序
中
使用多
线程
时,一般很少有多个
线程
能在其生命期内进行完全独立的操作。更多的情况是一些
线程
进行某些处理操作,而其他的
线程
必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。如果不采取适当的措施,其他
线程
往往会在
线程
处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个
线程
同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个
线程
负责改变此变量的值,而其他
线程
负责同时读取变量内容,则不能保证读取到的数据是
Windows
线程
的创建和终止
线程
的创建 CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别 CreateThread是
Windows
的API函数,提供操作系统级别的创建
线程
的操作,且仅限于工作者
线程
。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程
中
要考虑到进程的同步与互斥的关系(防止死锁)
c++ 网络编程(九)TCP/IP LINUX/
windows
下 多
线程
超详细教程 以及 多
线程
实现服务端
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9661012.html 先讲Linux下(
windows
下在后面可以直接跳到后面看): 一.
线程
基本概念 前面我们讲过多进程服务器,但我们知道它开销很大,因此我们才引入
线程
,我们可以把它看成是一种轻量级进程。它相比进程有如下几个优点:
线程
的创建和上下文切换开销更小且速度...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章