在开机时执行我可以将程序放入"启动"菜单等,
在关机时要自动执行一个程序该怎么办呢?

解决方案 »

  1.   

    只要一个form,设为不可见的,在开机时执行,把关机时要自动执行的程序放在
    form.unload事件里
      

  2.   

    > viena(晓琴) 
    你的想法很不错,不过不知道在关闭时会不会发生unload 事件?
      

  3.   

    刚刚测试了一下,果然管用,
    关闭系统,注销,以及在任务管理器中关闭程序,都会发生unload 事件,  多谢 viena(晓琴) 了.顺便还想问一个,如何让程序只在任务管理器的"进程"栏中显示,而不在"应用程序"栏中显示?
      

  4.   

    如果没有form就不显示在应用程序栏了吧?
      

  5.   

    ShowInTaskbar=False?还有注意:Unload事件里面的代码执行速度一定要快。原因不言自明。
      

  6.   

    有一个隐藏着的窗体,如果没有的话怎么用unload 事件呢?
      

  7.   

    ShowInTaskbar=False 无法阻止程序在任务管理器的"应用程序"栏中显示.
    用什么方法呢?
      

  8.   

    ShowInTaskbar=False只是不在任务栏显示,阻止程序在任务管理器的"应用程序"栏中显示,可以调用WIN API函数中的RegisterviceProcess。
    Public Declare Function GetCurrentProcessId Lib “kernel32” () As Long  
      '获得当前进程ID函数的声明  
    Public Declare Function RegisterServiceProcess Lib “kernel32” (ByVal ProcessId As Long, ByVal  ServiceFlags As Long) As Long  
      '在系统中注册当前进程ID函数的声明  
    Private Sub Form_Load()
        …… 
        RegisterServiceProcess GetCurrentProcessId, 1  '从系统中取消当前进程
        ……
    End Sub
      

  9.   

    Private Sub Form_Unload(Cancel As Integer)  
        RegisterServiceProcess GetCurrentProcessId, 0 
    End Sub
      

  10.   

    好像不行那, 出错提示说"找不到DLL入口点, 是什么意思?
      

  11.   

    没有Alias子句。Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessId" () As Long
    Declare Function RegisterServiceProcess Lib "kernel32" Alias "RegisterServiceProcessA" (ByVal ProcessId As Long, ByVal  ServiceFlags As Long) As Long  
      

  12.   

    >pigpag(噼里啪啦) :
    请问为什么要加alias子句?加了Alias后, 仍然错误提示说"找不到函数 RegisterServiceProcessA 的入口点"
    还有我在VB提供的API Viewer 中怎么没有找到这个函数? (只找到GetCurrentProcessId)