在VB编程中,我常遇到程序不能完全退出的苦恼,明明执行完了所有程序,窗体也unload掉了,但程序进程仍然在系统中,即使我在退出程序的地方调用了API函数杀自己所对应进程,再加上一个end语句,在2000下跑是无任何问题了,但在98下却仍然常有问题,这是怎么回事,难道真的没有彻底退出VB应用程序的方法吗?

解决方案 »

  1.   

    应该还有窗体没有完全UNLOAD吧
      

  2.   

    没有这个必要吧,程序无法退出一般出去系统的bug,都是有原因的,建议你仔细跟跟。一般有可能导致的地方主要是:
    1,调用了其他对象、控件无法完全卸载,比如excel对象如果不进行设置的话,做了有些操作后他实际上会在后台提示保存;
    2,是否有timer事件,并且在timer事件中又有对界面的改动,比如你在timer中每秒去改变一下标题的名称,如果有类似的操作,相当于有一个线程在不断的加载form,那你unload是unload不调的;
    3,是不是有类似winsock、mscomm等控件在不断接收信息,并且在处理的时候也是对form的显示发生了作用;
    4,有没有潜在的过程重入,比如在一些焦点离开的地方又对form的可见性进行了操作;
      

  3.   

    谢谢各位给的提示,已查明原因,原来是用new实例化的窗体变量必须unload才能正常完全退出,用窗体.show vbmodal也可以避免该问题(但无法把窗口放在任务栏上)。我写的杀进程的方法有一些问题,WIN98和WIN2000的进程名是不同的,WIN2000不带路径,WIN98带路径且全部为大写,我改进了杀进程的方法就一切OK了。