我创建了如QQ一样的网络聊天程序,发现运行了客户端的机器无法正常从[开始]菜单关机,每次都要先退出QQ客户端,才能关机,这是为什么啊?
谁能告诉我解决方法,拜托了!

解决方案 »

  1.   

    你所说的现象比较奇怪没有见过 又没有你的源代码,只能进行推测了
    你是怎么处理程序退出的?有没有类似 在Form_QueryUnload()里 加入 Cancel=True之类
    的语句?   如有,那么先将他注掉在Form_QueryUnload() 里加入 类似这样的语句   Winsock1.close
    最后主窗体退出时是否完全退出? 有可能在内存里没有清理干净 ,建议加上End 语句 强制退出
    你先回去看看有没有这方面的问题,如果仍有,那么将代码贴上
      

  2.   

    确实我在Form_QueryUnload加了Cancel=True,这是因为我为了实现当我点关闭窗口的X时不是退出窗口,而是将此窗口隐藏而显示在任务栏中,不然我将如何处理?
      

  3.   

    和unload里面的东西关系不大吧?你把代码贴出来,大家给你看看。
      

  4.   

    首先QQ点X就退出了如果你在Form_QueryUnload加了Cancel=True 那么当窗体收到 退出消息时 总是被你
    取消Windows在关机时向各大窗体发送关闭消息 ,而你的程序就“卡”在这里了由于退出事件是重复的,所以得靠其他方法实现 最好不要用 X ,因为那个东西不是
    用来干这个得,一般用来提示存盘,然后在退出
    把你的邮箱写下来,我写一个给你发过去
      

  5.   

    a11s(不得其解)兄:
      我试了一下,果然是Form_QueryUnload加了Cancel=True 出了问题.
    Email:[email protected],谢谢了!
      

  6.   

    其实 queryunload有个UnloadMode, 点x的unloadmode 和 关机时的关闭消息是不同的
    可以用这个做下判断
    点x unloadmode= 0
    unload me   unloadmode= 1
    系统消息     unloadmode= 2
    所以你只要在queryunload里面,最前面加上一行
    private sub form1_queryunload(cancel as boolean , unloadmode as integer)
       if unloadmode = 2 then exit sub 
       'put your code here
    end sub
    就ok了!
      

  7.   

    谢谢 pigsanddogs(我爱吃猪肉,但是长不胖,为什么?? 和a11s(不得其解) !