TOPIC DISCUSSION

欠扁貼關於QQ和360

· · 1591 次阅读 · 125 条回复

第一:

这里已经说明得很清楚了,(CloseMainWindow其实就是先判断句柄是否为空,不为空就PostMe ...
九十九个夜 发表于 2010-11-11 12:58 历史图片暂不可用



咳咳...跟你说话还真累,closemainwindow是先判断是否为空没错,但是这里不出错不是这个原因啊,先问我为什么kill不调试不报错,调试才报错,而closemainwindow就不报,然后我答了,你说我错,我问你有什么高见,你说原因好简单,然后就说一堆跟原因没关系的话,不过可能是你认为跟问题有关系,我理解错了。

这里我先说明一下,我没有说closemainwindow不是先判断是否为空再执行,我说不报错不是因为这个原因,至于原因,我已经在上面说得好清楚了,你要有什么异议就说,别跟问题脱离了,等下话题又扯开了还说是跟着我的回复来回复的,这样没什么意义。

思想是好软件的基础,但是我并没有说,思想好软件就好,框架搭好了还需要有人添砖加瓦,但是添砖加瓦的人并不一定是我
wcg,99個夜你們誰是360誰是QQ啊?
Anonymous 发表于 2010-11-10 23:33 历史图片暂不可用


wcg跟我是一国的,360黑

99夜是360青
咳咳...跟你说话还真累,closemainwindow是先判断是否为空没错,但是这里不出错不是这个原因啊, ...
wcg 发表于 2010-11-11 13:48 历史图片暂不可用


第一:
我说的是:CLOSEMAINWINDOW会首先做判断,为空则不会执行。并不是说KILL
我没有说你KILL方法的解释有误,我也没说KILL方法要判断空否,可能这是你对我文字上理解错误。
第二:closemainwindow是返回是否成功发送关闭信息,如果有错返回FALSE,CLOSEMAINWINDOW不会报错的问题上我的确错了,同时我也想给你一个问题(这并非骂战,纯疑问),这个我的确不明白,问了很多人都给了很含糊的答案
Process[] aa=Process.GetProcessesByName("notepad");
aa[0].Kill();
MessageBox.Show(Convert.ToString(aa[0].CloseMainWindow()));
这样会显示FALSE,但是
Process[] aa=Process.GetProcessesByName("notepad");
aa[0].CloseMainWindow();
Thread.sleep(100);
MessageBox.Show(Convert.ToString(aa[0].CloseMainWindow()));
则显示TRUE?
既然发出第一个KILL后核心线程还没来得及干掉进程,那为什么会返回false;既然第一次用CloseMainWindow关了进程,却为什么第二次又能返回true?
这两个函数我是设了断点,结果都是一样
第一:
我说的是:CLOSEMAINWINDOW会首先做判断,为空则不会执行。并不是说KILL
我没有说你KILL方法的 ...
九十九个夜 发表于 2010-11-11 15:55 历史图片暂不可用



我我不十分肯定,就跟你之前说的CLOSEMAINWINDOW会先判断再执行,你留意下进程的MainWindowHandle属性,当你kill或者自己关闭程序后,MainWindowHandle都为0,所以就直接返回false了,当你CLOSEMAINWINDOW后,MainWindowHandle是不变的,至于为什么该句柄的窗口已经不存在了还返回true我就不太清楚了,没什么时间,等我有空了我自己调用sendmessage看看是不是sendmessage这个API的问题。当你CLOSEMAINWINDOW后再用Refresh刷新一下进程信息,MainWindowHandle会出现异常,在用CLOSEMAINWINDOW就也会出现异常
我我不十分肯定,就跟你之前说的CLOSEMAINWINDOW会先判断再执行,你留意下进程的MainWindowHandle属性 ...
wcg 发表于 2010-11-12 12:03 历史图片暂不可用


可能是我前面没有说清楚吧,我说那个复杂原因就是因为我无意中在把KILL方法替换成CLOSEMAINWINDOWS方法时无意中发现的问题,所以我感觉里面可能有复杂的运行机制。
还有CLOSEMAINWINDOW执行后 Thread.sleep后执行KILL也会报错,但是少了Thread.sleep就不会,这也证明了CLOSEMAINWINDOW也不是瞬间干掉进程,但为什么两次执行CLOSEMAINWINDOW都为真,就的确不知道原因了
登录后回复