setupfactory好象没这个函数。 我想是不是可以这样。 先用VB的函数App.EXEName获取文件名。把setupfactory做的安装包添加到VB的资源文件里,用的时候用VB生成一个临时文本文件,把路径写进去,在setupfactory中调用这个文本文件。 这里有个例子,是调用资源文件中的EXE文件的。 Option Explicit Dim vDataFileName As StringPrivate Sub Form_Load() '程序启动时生成文件 Dim DataFile() As Byte vDataFileName = App.Path & "\华容道.exe" '要解出的数据文件名,这里的路径没必要这么张扬,可以找个隐蔽点的地方 DataFile = LoadResData(101, "CUSTOM") '从资源文件读入文件内容 Open vDataFileName For Binary As #1 '建立数据文件,以二进制方式打开 Put #1, , DataFile Close #1 '写完后关闭文件 Shell vDataFileName, vbNormalFocus End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim Hkey As Long, i As Integer '得到华容道的句柄 Hkey = FindWindow(vbNullString, "华容道") '向华容道发送消息,使之关闭 SendMessage Hkey, WM_CLOSE, 0&, 0& Sleep 100 '此功能是等待SendMessage Hkey, WM_CLOSE, 0&, 0&执行完成 Kill vDataFileName End Sub程序所需的api,在模块中建立 ' FindWindow函数声明 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String _ ) As Long 'SendMessage的作用是使华容道自动关闭 Public Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long '关闭程序需要的常量 Public Const WM_CLOSE = &H10 '延时 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
然后把它传到下载站上让网友下载
但不只一个下载站 为了区分不同的下载站 每个下载站上传的安装包的文件名都不一样
比如(这里用中文做个例子) setup_天空.exe setup_0472.exe ....
网友下载安装后 我想让安装包获得自己的文件名 例:setup_天空.exe
得到文件名后就可以传给里面的程序 A 来统计安装量了
可以得到不同的下载站的安装情况.
我想是不是可以这样。
先用VB的函数App.EXEName获取文件名。把setupfactory做的安装包添加到VB的资源文件里,用的时候用VB生成一个临时文本文件,把路径写进去,在setupfactory中调用这个文本文件。
这里有个例子,是调用资源文件中的EXE文件的。
Option Explicit
Dim vDataFileName As StringPrivate Sub Form_Load() '程序启动时生成文件
Dim DataFile() As Byte
vDataFileName = App.Path & "\华容道.exe" '要解出的数据文件名,这里的路径没必要这么张扬,可以找个隐蔽点的地方
DataFile = LoadResData(101, "CUSTOM") '从资源文件读入文件内容
Open vDataFileName For Binary As #1 '建立数据文件,以二进制方式打开
Put #1, , DataFile
Close #1 '写完后关闭文件
Shell vDataFileName, vbNormalFocus
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim Hkey As Long, i As Integer
'得到华容道的句柄
Hkey = FindWindow(vbNullString, "华容道")
'向华容道发送消息,使之关闭
SendMessage Hkey, WM_CLOSE, 0&, 0&
Sleep 100 '此功能是等待SendMessage Hkey, WM_CLOSE, 0&, 0&执行完成
Kill vDataFileName
End Sub程序所需的api,在模块中建立
' FindWindow函数声明
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long
'SendMessage的作用是使华容道自动关闭
Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
'关闭程序需要的常量
Public Const WM_CLOSE = &H10
'延时
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)