你正在 VB 加油站!

最近更新

加油站台

下载区域

文档资料收集

写流言

瞧瞧流言

友情连接

写信给俺啦

 

J  程序应用

A 启动&安装

004  修改安装向导生成的缺省安装目录 98-9-12

使用安装向导生成程序, 缺省安装目录是在 Program File 下的,
要修改该缺省安装目录, 只要打开已经生成的安装文件 Setup.1st:
[Setup] 中的:
DefaultDir=$(ProgramFiles)\XXXXXX
把 $(ProgramFiles) 换成 $(WinSysPath)或自定义的目录。到页首

003 自动开始上次关机时关闭的应用 98-8-03

两点关键:
1 检测是 Windows 关闭引起的 QueryUnload   事件。
2 改写 Software\Microsoft\Windows\CurrentVersion\RunOnce

声明:
Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.

在主 Form 中增加:

Public Const REG_SZ = 1
Public Const HKEY_CURRENT_USER = &H80000001

Private Sub Form_QueryUnload (Cancel as Integer, UnloadMode as Integer)
Dim hKey As Long
Dim strRunCmd As String
If UnloadMode = vbAppWindows Then
  strRunCmd = App.Path & "\" & App.EXEName & ".EXE"
  Call RegCreateKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\RunOnce", hKey)
  Call RegSetValueEx(hKey, "MyApp", 0&, REG_SZ, ByVal strRunCmd, Len(strRunCmd)+1)
  Call RegCloseKey(hKey)
Endif
End Sub
到页首

002 安装向导生成程序组并建立多个程序项 98-7-28

1 在使用安装向导时,加入相应的文件:如Readme, 帮助文件等。
2 生成安装程序后,修改 Setup.lst 文件中的[Files],  例如要把 File1 放到程序组中, 修改 File1 的最后两项:
  File1 = .... "",""  改为 ->
    File1 = .... "程序项名称","应用全路径"
例如:
  File1 = .... "工程说明","$(AppPath)\Readme.hlp"
3 [Setup] 中的 DefProgramGroup 为组名。
注意:如果只有一个 File 要求安装,不会建立程序组。到页首

001 防止打开同个VB应用多个实例 98-8-20

使用 App 对象的 PrevInstance 属性,可以阻止用户打开程序的多个实例。

If App.PrevInstance Then
MsgBox "该程序已经运行!"
Unload me
End If

用该种方法也可阻止多用户使用单用户的应用。
98-8-20: 以下代码可以直接打开已经存在的应用。(在最小化时好象有问题。)
If App.PrevInstance Then
  sAppTitle = App.Title
  App.Title = "DUMMY_"
  AppActivate sAppTitle
  SendKeys "%{ }{Enter}", True
End If到页首

 

知/的/更/多 做/的/更/好