如题,而且我在关闭vb IDE环境甚至重新启动机子后运行该程序,app.hInstance 返回的值均相同,为什么?我只是想在form_unload 是将和我程序中相关的窗口和对象全部close掉,但我发现用forms集合中并没有完全包含我打开的所有窗口,特别是报表窗口(datareport设计器生成的窗口)。所以我就在Form_unload事件中用EnumWindows和GetWindowThreadProcessId结合来得到本进程的所有窗口,然后给该窗口发送WM_CLose消息,但是我发现本进程的句柄用app.hInstance 无法正确得到。请高手指点,盼回!

解决方案 »

  1.   

    When working with a project in the Visual Basic development environment, the hInstance property returns the instance handle of the Visual Basic instance.
    --------------------------------------------------------------------------------
    我也觉得奇怪
      

  2.   

    我用app.ThreadID 在vb IDE环境下,用EnumWindows和GetWindowThreadProcessId的返回值比较,如相等则认为该窗口属于本线程,那么给该窗口发WM_CLose消息,enum完毕,系统会将vb IDE也给关掉。但是更奇怪的是,我用编译后的程序执行时,系统会死机。msdn中如是说:
    ThreadID Property
          Returns the Win32 ID of the executing thread. (Used for Win32 API calls.)不知app.ThreadID用在那个Win32 API 下?上面提到的问题又该如何解决?
      

  3.   

    找到了,我将sendmessage改为postmessage就不死机了。
      

  4.   

    大家就app.hInstance 的用法或遇到的问题,发表一些自己的看法吧,要不100分我都不知该给谁加。:)
      

  5.   

    Up在推存一个VB小工具软件名称:VB代码计算器
    软件类型:编程工具
    编程环境:VB6 + SP5
    适用系统:Win9x/2k/XP■ 软件介绍本程序能显示出你编写的VB源代码一共写了多少行,同时也支持其他类型的文件计算。特点:①界面美观,操作方便,你只需拖动你保存好的VB工程(组)文件到本程序窗口就可显示出源代码的总行数。②能自动分析VB工程(组)内包含的文件(这是可选的,也可以不自动分析并把他当作普通文件计算),并分别计算出每个文件所包含源代码的行数。③能自动隔离VB文件中由VB自动生成的代码,只计算用户输入的源代码,并可选择是否要排除空行或注释行的计算。④支持计算非VB文件,如文本文件、ini文件等。计算该类文件时只能排除空行的计算,其他只要不是空行都会累加到总行数中。⑤可暂停正在计算中的任务。⑥可以保存计算结果和被计算文件列表为文本文件,方便以后查询或打印输出。
    下载地址:
    华军软件 http://www.onlinedown.net/soft/7545.htm
    天空软件 http://www.skycn.com/soft/12423.html
      

  6.   

    我在vb6.0和vb.net下得到的值不相同,还不会用。