在用 SetupFactory 进行打包的时候,如何获得当前安装包的文件名呢?
比如生成了 Setup001.exe  运行 Setup001.exe 的时候如何得到 Setup001.exe 这个文件名呢?
在此先谢过大家了~ 

解决方案 »

  1.   

    不知所云打包时扫描工程,并自己添加要打包的文件,添加哪一个你说了算,怎会不知文件名,要分发成单个文件时,就是setup
      

  2.   

    这么说吧  比如我把 程序 A 打包成了 setup.exe
    然后把它传到下载站上让网友下载
    但不只一个下载站 为了区分不同的下载站 每个下载站上传的安装包的文件名都不一样
    比如(这里用中文做个例子)  setup_天空.exe  setup_0472.exe  ....
    网友下载安装后 我想让安装包获得自己的文件名   例:setup_天空.exe
    得到文件名后就可以传给里面的程序 A 来统计安装量了
    可以得到不同的下载站的安装情况.
      

  3.   

    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)