Foxtable(狐表)用户栏目专家坐堂 → [原创]winrar自解压后运行程序


  共有6335人关注过本帖树形打印复制链接

主题:[原创]winrar自解压后运行程序

帅哥哟,离线,有人找我吗?
洮沙
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
[原创]winrar自解压后运行程序  发帖心情 Post By:2022/8/20 15:07:00 [只看该作者]

用WinRAR制作自解压安装程序挺方便的,尤其是FB这种免安装的程序,但是遇到提取文件后运行程序的问题,如果将发布的项目文件.exe关联,能够自动启动,但是启动后连接数据库报错(用的是本地ACCESS数据源,感觉用ProjectPath获取的路径在自动启动时不一样),手动用桌面快捷方式启动又正常。


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220820145825.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220820145843.png
图片点击可在新窗口打开查看

 
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220820150537.png
图片点击可在新窗口打开查看

有什么办法,将图一生成的快捷方式,在图二自动启动?

貌似图三能够用命令设置,这方面纯粹不懂,麻烦老师帮忙看一下。



 

[此贴子已经被作者于2022/8/20 15:10:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 15:19:00 [只看该作者]

ProjectPath不应该有问题,因为是项目文件foxex的路径,不是exe的路径。测试弹出ProjectPath的值看看。

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/8/20 15:27:00 [只看该作者]

项目BeforeConnectOuterDataSource事件全部代码:

Dim fl As String = ProjectPath & "data\基础账套.mdb"
Dim fl2 As String = ProjectPath & "project\data\基础账套.mdb"
Dim Err As String
Dim s As String
If e.name = "Access数据源1" Then
    If FileSys.FileExists(fl) Then '如果指定的文件存在
        s = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fl & ";Persist Security Info=False;Jet OLEDB:Database Password=******"
    Else
        If FileSys.FileExists(fl2) Then '如果指定的文件存在
            s = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fl2 & ";Persist Security Info=False;Jet OLEDB:Database Password=******"
        Else
            Messagebox.Show("【基础账套】连接失败,请检查【" & fl & "】数据库文件是否存在?", "提示")
            Return
        End If
    End If
    If Connections.TryConnect(s, Err) = True Then
        e.ConnectionString = s
    Else
        MessageBox.Show("【基础账套】无法连通,原因:" & Err)
    End If 
End If

如果用自解压提取文后自动执行弹出以下错误信息:


此主题相关图片如下:微信截图_20220820152635.png
按此在新窗口浏览图片


  ProjectPath 好像没有起作用?

[此贴子已经被作者于2022/8/20 15:27:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 15:30:00 [只看该作者]

BeforeConnectOuterDataSource应该使用e.ProjectPath 

对于发布后的程序e.ProjectPath已经包含了project目录,不需要再加

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/8/20 15:45:00 [只看该作者]

一个“e”解决问题了,感谢蓝版!

 回到顶部