使用自己写的小程序后电脑无法关机了!!!(急救!!!)

kxtm01 2008-10-12 03:05:36
使用自己写的小程序后电脑无法关机了!!!(急救!!!)

最近我自己写了一个查杀U盘病毒的小软件,现在在电脑上使用,但是近几天突然电脑不能 关机、重启、注销了,点击这三个按钮后电脑自动退出了几个进程后就停了!

后来我把我的小程序给关了,再试试关机等操作,完全恢复了正常,请问大家这是什么原因啊???同学的电脑用了我的这个小程序一段时间后电脑也不能关机等操作了!

但是这个小软件只要运行着,电脑就不能正常的关机、重启、注销啊~~~

谁能帮我找出这个原因啊???

谁要这个小程序的源代码查看,请发邮件到我的邮箱 77899022@qq.com ,我把小程序发给你们!
...全文
482 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
vc815 2012-10-16
  • 打赏
  • 举报
回复
e.Cancel = true;
MS NB BUG
lalac 2008-10-13
  • 打赏
  • 举报
回复
估计lz在Form的Closing事件里写e.Cancel=True了。这样可以做到点击关闭按钮时隐藏到托盘。


void Form_Closing(object sender, FormClosingEventArgs e)
{
if(this.Visible)
e.Cancel = true;
}


Microsoft_Sun 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhoufoxcn 的回复:]
你挂接了全局也就是系统级事件,你接管之后只对你关心的部分处理了,不关心的全部抛弃了,所以才会出现这样的情况。

这种情况一般出现在你override的方法中。

假如你override了A方法,代码应该这么写:

C# codepublic overrider void A(e)
{
//根据参数信息来判断,如果是你关心的,处理它,否则继续让上层处理
if(e)
{
//字节处理的代码
}
else
{
base(e)
}
}
[/Quote]

呵呵.楼上引用错了.这个才是对的.同意.呵呵...覆盖的好处就在这,只关心自己的一部分就可以,其余的还得交给上层处理.要不会出现N多未知的事情.
Microsoft_Sun 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Deathsign 的回复:]
退出的时候弹框出来问是否关闭?
.NET下托盘关机就是有问题···
[/Quote]

同意.呵呵...覆盖的好处就在这,只关心自己的一部分就可以,其余的还得交给上层处理.要不会出现N多未知的事情.
flylovejings 2008-10-12
  • 打赏
  • 举报
回复
把不写的东西拿出来大家看下
蚊子的 2008-10-12
  • 打赏
  • 举报
回复
很强。。。我不会做。。。呵呵
wartim 2008-10-12
  • 打赏
  • 举报
回复
可能是线程停不掉
yijianxiangde100 2008-10-12
  • 打赏
  • 举报
回复
估计是你的软件在结束的时候,没有释放资源啊,有没有做到这一点啊
riyygydxliming 2008-10-12
  • 打赏
  • 举报
回复
厉害,代码发过来,我看看,
我现在认为是卡住了,不是关不了机
另外你在看一下是不是用到托盘控件
riyygydxlongwen@qq.com

这是我的邮箱
孤剑 2008-10-12
  • 打赏
  • 举报
回复
你的软件hook 过头了吧。检查代码啊 。
NowtAngell 2008-10-12
  • 打赏
  • 举报
回复
interest.rest@163.com
给我个看看,我来改改
蓝色木 2008-10-12
  • 打赏
  • 举报
回复
看不到代码
不知道什么原因
sunnyhuang2008 2008-10-12
  • 打赏
  • 举报
回复
mark
周公 2008-10-12
  • 打赏
  • 举报
回复
你挂接了全局也就是系统级事件,你接管之后只对你关心的部分处理了,不关心的全部抛弃了,所以才会出现这样的情况。

这种情况一般出现在你override的方法中。

假如你override了A方法,代码应该这么写:
public overrider void A(e)
{
//根据参数信息来判断,如果是你关心的,处理它,否则继续让上层处理
if(e)
{
//字节处理的代码
}
else
{
base(e)
}
}
mathsfan 2008-10-12
  • 打赏
  • 举报
回复
把代码发过来吧,偶看看,呵呵
消失的尘芥 2008-10-12
  • 打赏
  • 举报
回复
厉害
hustcyb 2008-10-12
  • 打赏
  • 举报
回复

public partial class Form1 : Form
{
private bool exit;

//在FormClosing中加如下代码
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
if (!exit)
{
e.Cancel = true;
}
}
}

//在托盘控件的右键退出菜单中加如下代码
private void quickMenuExit_Click(object sender, EventArgs e)
{
exit = true;
this.Close();
}
}
liang4571231 2008-10-12
  • 打赏
  • 举报
回复
劳驾代码一并发过来吧,非常感谢~!
liang4571231@163.com
minioreo 2008-10-12
  • 打赏
  • 举报
回复
m_bexit导致FormClosing中的e.Cancel问题 呵呵 接分了
Radar2006 2008-10-12
  • 打赏
  • 举报
回复
是不是用到托盘控件?
拦截windows退出系统的消息、或者相应消息,然后处理你的事情。
WMQueryEndSession
加载更多回复(5)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧