我说的不是这篇文章的功能
http://blog.csdn.net/kangkanglx/article/details/5692984上面这篇文章只能防止任务管理器去结束进程,其实不行,还是能结束任务。打个比方,你的QQ开启了。
C#能不能有这样一个功能,防止人为的点击X去退出,或者结束任务之类的?
就是不让他关
http://blog.csdn.net/kangkanglx/article/details/5692984上面这篇文章只能防止任务管理器去结束进程,其实不行,还是能结束任务。打个比方,你的QQ开启了。
C#能不能有这样一个功能,防止人为的点击X去退出,或者结束任务之类的?
就是不让他关
解决方案 »
- 使用SELECT * FROM Win32_PhysicalMedia 获取硬盘序列号问题
- (小白问题)怎样将textbox的最后一个字符删除
- 关于一个集成编译环境的系统
- 对比两个xml相似、差别
- [winform]我想问有没有控件能直接实现类似VS2008或VS2005中的网页编辑窗口
- DropDownList 表达式的计算结果必须为节点集的问题
- 谁给扫个盲,这该这么做?
- System.Drawing.Graphocs.DrawRectangle???
- 为什么运行没反应???高手指点。。。。。。多谢!!!
- 请问C#中这是什么意思?
- iis下的svc终极点不用配置在web.config下
- 串口数据读取缺失??
e.Cancel = true;另外你可以禁用关闭按钮,参考http://www.cnblogs.com/alexusli/archive/2009/04/14/1435758.html
2.从EPROCESS的双向链表中摘除你要保护的进程,这样用一般的方法就枚举不到该进程了,当然任务管理器里就更看不到了。以上两种方法用C写都很简单,要代码的话我可以传给你,但你若非要用C#写,那不可能防的彻底
NtUserDestroyWindow
NtUserFindWindowEx
NtUserBuildHwndList
NtUserPostMessage
NtUserMessageCall
NtUserSendInput
这些hook住就应该问题不大了,感兴趣的话你可以自己查查,这个已经是用烂了的技术,安全类软件都有
NtUserDestroyWindow
NtUserFindWindowEx
NtUserBuildHwndList
NtUserPostMessage
NtUserMessageCall
NtUserSendInput
这些hook住就应该问题不大了,感兴趣的话你可以自己查查,这个已经是用烂了的技术,安全类软件都有兄弟,能不能给个测试好的demo啊,这个资料我也看了,还是没会弄。
{
switch (m.Msg)
{
case 0x0010:
return;
default:
break;
}
base.WndProc(ref m);
}
这个该怎么弄?
这个该怎么弄?
监视其他程序就只能用钩子了
这个该怎么弄?
监视其他程序就只能用钩子了兄弟,我试了一下,你这个是关闭自己的时候,自己的程序可以return.我是用C#程序监控其他软件,我想其他软件关闭的时候,能return。
这个该怎么弄?
监视其他程序就只能用钩子了兄弟您有QQ吗?我QQ:其一思思思思留发
能否帮个忙看一下?
这个该怎么弄?
监视其他程序就只能用钩子了兄弟,我试了一下,你这个是关闭自己的时候,自己的程序可以return.我是用C#程序监控其他软件,我想其他软件关闭的时候,能return。
这个该怎么弄?
监视其他程序就只能用钩子了兄弟您有QQ吗?我QQ:其一思思思思留发
能否帮个忙看一下?
兄弟不好意思啊,公司网络不能上QQ,有QQ上我还逛毛论坛,
而且这钩子也没你想象中那么难、自己试试哈
这个该怎么弄?
监视其他程序就只能用钩子了兄弟,我试了一下,你这个是关闭自己的时候,自己的程序可以return.我是用C#程序监控其他软件,我想其他软件关闭的时候,能return。
这个该怎么弄?
监视其他程序就只能用钩子了兄弟您有QQ吗?我QQ:其一思思思思留发
能否帮个忙看一下?
兄弟不好意思啊,公司网络不能上QQ,有QQ上我还逛毛论坛,
而且这钩子也没你想象中那么难、自己试试哈我现在做法是这样的,麻烦你看下:
http://www.codeproject.com/Articles/18638/Using-Window-Messages-to-Implement-Global-System-H
上面的demo是用全局钩子去做的。
Form1的构造函数里面,我把
_GlobalHooks = new GlobalHooks(this.Handle);中this.Handle换成了我要监控的目标软件的句柄。
但是好像没起到效果,不明白,能否就具体这个问题,具体帮忙看一下?
NtUserDestroyWindow
NtUserFindWindowEx
NtUserBuildHwndList
NtUserPostMessage
NtUserMessageCall
NtUserSendInput
这些hook住就应该问题不大了,感兴趣的话你可以自己查查,这个已经是用烂了的技术,安全类软件都有兄弟,能不能给个测试好的demo啊,这个资料我也看了,还是没会弄。
写好了,C#写着麻烦所以用C写了,http://download.csdn.net/detail/bigbaldy/5647313
我晕,5分的程序,居然甩了一个null对象的错误!而且没源代码,也没效果。你弄个50分的吧,给源代码吧,最好有效果
我晕,5分的程序,居然甩了一个null对象的错误!而且没源代码,也没效果。你弄个50分的吧,给源代码吧,最好有效果--------------哦,对了源码没上传,我可以给你。
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。兄弟,编译没bug但是没有效果啊,运行的时候报错。
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。兄弟,编译没bug但是没有效果啊,运行的时候报错。----------------源码都给你了 你还搞不定 ? 自己检查一下 。我这边编译了毫无异常,运行时候 都没任何问题。到你那边为问题一堆。提醒一下 ,钩子是杀毒软件拦截和监控的目标,杀毒等东西全部要关闭,对于钩子来说。
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。兄弟,编译没bug但是没有效果啊,运行的时候报错。----------------源码都给你了 你还搞不定 ? 自己检查一下 。我这边编译了毫无异常,运行时候 都没任何问题。到你那边为问题一堆。提醒一下 ,钩子是杀毒软件拦截和监控的目标,杀毒等东西全部要关闭,对于钩子来说。开玩笑,你看你的代码。
int _hModule = DLLWrapper.LoadLibrary(@"HLL.dll");
你这个是记事本的类?
这样的代码叫OK的?
别玩炸糊好不?
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。兄弟,编译没bug但是没有效果啊,运行的时候报错。----------------源码都给你了 你还搞不定 ? 自己检查一下 。我这边编译了毫无异常,运行时候 都没任何问题。到你那边为问题一堆。提醒一下 ,钩子是杀毒软件拦截和监控的目标,杀毒等东西全部要关闭,对于钩子来说。开玩笑,你看你的代码。
int _hModule = DLLWrapper.LoadLibrary(@"HLL.dll");
你这个是记事本的类?
这样的代码叫OK的?
别玩炸糊好不?
------------------那个是调用的C++ DLL ,用WIN32编写的。C# 负责 寻址DLL模块以及函数委托调用。算了 ,浪费了大半天时间 跟你废话了半天,还不明白? 以后 不会 会你这种人了。浪费感情,牛教三遍都明白。唉.....
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));这个对象amf为什么是null啊?
我记事本的句柄已经娶到了。----------------你运行了没? 原编译代码 ,VS08上面编译 无误,系统是 XP。兄弟,编译没bug但是没有效果啊,运行的时候报错。----------------源码都给你了 你还搞不定 ? 自己检查一下 。我这边编译了毫无异常,运行时候 都没任何问题。到你那边为问题一堆。提醒一下 ,钩子是杀毒软件拦截和监控的目标,杀毒等东西全部要关闭,对于钩子来说。开玩笑,你看你的代码。
int _hModule = DLLWrapper.LoadLibrary(@"HLL.dll");
你这个是记事本的类?
这样的代码叫OK的?
别玩炸糊好不?
------------------那个是调用的C++ DLL ,用WIN32编写的。C# 负责 寻址DLL模块以及函数委托调用。算了 ,浪费了大半天时间 跟你废话了半天,还不明白? 以后 不会 会你这种人了。浪费感情,牛教三遍都明白。唉.....
我的问题是说,那不是调用WIN32的API吗?我的意思是这样吗?
故意混淆概念,咱们实事求是,本着事实说话可以吗?
int _hModule = DLLWrapper.LoadLibrary(@"HLL.dll");
你代码这段返回值是0.
然后程序返回到调用他的地方,
_amDBRSetThermoModel amf = (_amDBRSetThermoModel)DLLWrapper.GetFunctionAddress(hModule(), "Start", typeof(_amDBRSetThermoModel));
也就是上面,这样amf对象就是null,结果就报错。咱们用事实说话可以吗
我已经解决了,是用的瑞典一哥们写的代码。
中国的coder为什么都这么不务实,难道是大环境所致?
我已经解决了,是用的瑞典一哥们写的代码。
中国的coder为什么都这么不务实,难道是大环境所致?晕我用啥名词了?
刚把Ring0的搞定,想下的就下吧,还不是很稳定,WDK7编译的XP SP3版本
http://download.csdn.net/detail/bigbaldy/5651331
这个该怎么弄?
监视其他程序就只能用钩子了兄弟,我试了一下,你这个是关闭自己的时候,自己的程序可以return.我是用C#程序监控其他软件,我想其他软件关闭的时候,能return。
这个该怎么弄?
监视其他程序就只能用钩子了兄弟您有QQ吗?我QQ:其一思思思思留发
能否帮个忙看一下?
兄弟不好意思啊,公司网络不能上QQ,有QQ上我还逛毛论坛,
而且这钩子也没你想象中那么难、自己试试哈我现在做法是这样的,麻烦你看下:
http://www.codeproject.com/Articles/18638/Using-Window-Messages-to-Implement-Global-System-H
上面的demo是用全局钩子去做的。
Form1的构造函数里面,我把
_GlobalHooks = new GlobalHooks(this.Handle);中this.Handle换成了我要监控的目标软件的句柄。
但是好像没起到效果,不明白,能否就具体这个问题,具体帮忙看一下?_GlobalHooks = new GlobalHooks(this.Handle);
this.Handle是处理消息的窗口 如果你在winform中用 那么一般就是this.Handle 然后在WndProc中
protected override void WndProc(ref Message m)
{
if (_GlobalHooks != null)
_GlobalHooks.ProcessWindowMessage(ref m); base.WndProc (ref m);
}
也就是说Winform的 WndProc中可以处理系统中其他进程的消息 你看过源码中用C++写的dll了吗?
这个dll就是负责拦截windows消息 然后将其发送到this.Handle所在线程的消息队列中去(PostMessage)
1.拦截windows消息,以类似 _GlobalHooks.Shell.Start(); 这样的代码 开始;
2.处理拦截过后的消息,在WndProc中
if (_GlobalHooks != null)
_GlobalHooks.ProcessWindowMessage(ref m);你要做的就是 注册GlobalHooks中的一些事件 如
_GlobalHooks.Shell.WindowCreated +=
new GlobalHooks.WindowEventHandler(Shell_WindowCreated); //当窗口创建时发生