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
Private Sub Form_Unload(Cancel As Integer) RegisterServiceProcess GetCurrentProcessId, 0 End Sub
好像不行那, 出错提示说"找不到DLL入口点, 是什么意思?
没有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
form.unload事件里
你的想法很不错,不过不知道在关闭时会不会发生unload 事件?
关闭系统,注销,以及在任务管理器中关闭程序,都会发生unload 事件, 多谢 viena(晓琴) 了.顺便还想问一个,如何让程序只在任务管理器的"进程"栏中显示,而不在"应用程序"栏中显示?
用什么方法呢?
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
RegisterServiceProcess GetCurrentProcessId, 0
End Sub
Declare Function RegisterServiceProcess Lib "kernel32" Alias "RegisterServiceProcessA" (ByVal ProcessId As Long, ByVal ServiceFlags As Long) As Long
请问为什么要加alias子句?加了Alias后, 仍然错误提示说"找不到函数 RegisterServiceProcessA 的入口点"
还有我在VB提供的API Viewer 中怎么没有找到这个函数? (只找到GetCurrentProcessId)