VB自带的csystray控件InTray值为true时,执行END命令为什么会产生非法操作?
求解,谢谢!

解决方案 »

  1.   

    TIMED 在 016f:6602479d 的模块 MSVBVM60.DLL 中导致例外 10H。
    Registers:
    EAX=0063f9ec CS=016f EIP=6602479d EFLGS=00000202
    EBX=0051077c SS=0177 ESP=0063f9ec EBP=0063f9f4
    ECX=00510000 DS=0177 ESI=0051077c FS=4db7
    EDX=819b3d50 ES=0177 EDI=0051077c GS=0000
    Bytes at CS:EIP:
    e9 3b 28 02 00 55 8b ec 51 8b 45 08 53 8b 1d ac 
    Stack dump:
    deadcafe deadcafe 00510704 66024752 0051077c 800a9c68 0063fa50 00410e9c 66025016 0051077c 00000000 0063fa6c 6604578e 00009c68 00000000 00410ed0
      

  2.   

    什么东西?
    但肯定不执行end的问题
      

  3.   

    就是托盘图标控件啦
    systray
    程序窗体没有被最小化时,单击窗体上“退出”按钮,能正常退出程序
    当程序窗体隐藏时,右击托盘图标在弹出菜单里退择“退出”,产生非法操作"退出"就一条"end"语句
      

  4.   

    在“状态栏”中建立图标  Win95中如“音量”、“日期”、“屏幕”等可以在Win95的状态栏(Tray)上建立图标。如果鼠标停留在图标上,则会显示出相应的工具提示(ToolTip),当用户在图标上单击(或双击)鼠标左键时程序便会被激活,单击右键时会实现其简捷的功能菜单。   Tray编程比较特殊,主要包括三个主要方面:图标、工具提示和消息。它属于Shell编程的一部分,主要是利用Shell API中的Shell_NotifyIcon函数完成的。Shell_NotifyIcon函数是这样声明的:   Type NOTIFYICONDATA    cbSize As Long 结构所占的字节数    hwnd As Long 接受TRAY托盘图标消息的窗口句柄    uID As Long 由应用程序定义的图标识别符    uFlags As Long 标志    uCallbackMessage As Long 由应用程序定义的消息    hIcon As Long TRAY 图标句柄    szTip As String * 64 工具提示字符串   End Type   Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long   这个结构中的uFlags很重要,它有三种取值:NIF_ICON、NIF_MESSAGE和NIF_TIP,分别表示hIcon、uCallbackMessage和szTip参数有效,用来修改图标、消息和工具提示。这三个取值可以同时使用(三个参数相或),也可以单独使用。为了实现对用户鼠标操作的响应,需要在程序中处理uCallbackMessage所定义的消息,该消息的长参数lParam包含Win32所定义的鼠标消息,如果有多个图标,则短参数wParam表示图标识别符。   在vb光盘中\TOOLS\UNSUPPRT\SYSTRAY目录下有SYSTRAY的工程,经编译后生成SYSTRAY.OCX控件。   现在我们应用SYSTRAY.OCX控件进行Tray编程。   首先建立一个“工程”,依次选择“工程”、“部件”(或者在“工具箱”上单击鼠标右键选择“部件”),再复选SYSTEM TRAY CONTROL CSYSTRAY,CSYSTRAY控件即出现在“工具箱”中。   SYSTRAY.OCX控件拥有MouseDblClick、MouseDown、MouseMove、MouseUp四个事件,响应先后顺序为MouseMove、MouseDown、MouseUp、MouseDblClick。程序6很清楚地说明了他们的响应时间次序。   Private Sub cSysTray1_MouseDblClick(Button As Integer, Id As Long)   MsgBox "Hei!You have DblClick the mouse!"   End Sub   Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long)   If Button = 2 Then   MsgBox "Hei!You have clicked me in right button!"   End If   End Sub   Private Sub cSysTray1_MouseMove(Id As Long)   MsgBox "Hello!I am here!"   End Sub   Private Sub cSysTray1_MouseUp(Button As Integer, Id As Long)   MsgBox "Hei!You clicked me just now!"   End Sub   Private Sub Form_Load()   cSysTray1.TrayTip = "Hello! I am the King of the world!"   cSysTray1.InTray = True   cSysTray1.TrayIcon = "c:\fittings\FACE.ico"   End Sub   SYSTRAY控件还拥有InTray、Name、TrayIcon、TrayTip、Parent、Index、Object、Tag属性。InTray设置是否在Win95的状态栏Tray上建立一个快捷图标;Name设置SYSTRAY控件的名称;TrayIcon设置在Tray上所建立的快捷图标的外观;TrayTip设置了鼠标停留在图标上时所显示的工具提示(ToolTip)内容;Tag储存程序所需要的附加数据。 
      

  5.   

    先试一下执行其它的语句是否有问题再试一下在其它事件中执行end是否有问题估计是系统的问题
      

  6.   

    几台机子都是这样,在没有编译前怎样测试怎样退出都没有问题,编译成EXE后面运行就产生上面问题了
      

  7.   

    如果你確認是在運行END時出問題。你可以用unload me 試試。
    注:end 不引發 from_queryunload事件。