Foxtable(狐表)用户栏目专家坐堂 → 能不能制作设计工具


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

主题:能不能制作设计工具

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 11:21:00 [只看该作者]

打开vs工具,新建一个项目,加入上面的代码先测试。

 回到顶部
美女呀,离线,留言给我吧!
cyl123
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:6382 威望:0 精华:0 注册:2014/12/21 21:01:00
  发帖心情 Post By:2016/3/3 12:05:00 [只看该作者]

错误,超出索引界限

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 12:12:00 [只看该作者]

mark 引导程序

 

vs项目的代码

 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim args() = Environment.GetCommandLineArgs
        If args.Length = 2 Then
            Dim path As String = IO.Path.GetDirectoryName(args(0))
            IO.File.WriteAllText(path & "/路径.txt", args(1), System.Text.Encoding.Default)
            Dim proc As New Process
            proc.StartInfo.FileName = path & "/2222.exe"
            proc.Start()
        ElseIf args.Length = 1 Then
            Dim path As String = IO.Path.GetDirectoryName(args(0))
            IO.File.WriteAllText(path & "/路径.txt", "", System.Text.Encoding.Default)
            Dim proc As New Process
            proc.StartInfo.FileName = path & "/2222.exe"
            proc.Start()
        End If
    End Sub

 

foxtable的afterOpenProject/beforeOpenProject事件代码


If FileSys.FileExists(ApplicationPath & "路径.txt") Then
    Dim path As String = FileSys.ReadAllText(ApplicationPath & "路径.txt", Encoding.Default)
    msgbox(path)
End If

 

------------------------------------------

 

其余的处理:

 

1、把vs生成exe放在publish文件夹下;

 

2、你修改注册表的时候,比如定义 .abc 后缀名的打开程序,要设置成vs的exe

 

3、这个是简单的事例,如果你想vs的exe适应所有的项目,你可以修改优化里面的代码。

[此贴子已经被作者于2016/3/3 12:14:58编辑过]

 回到顶部
美女呀,离线,留言给我吧!
cyl123
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:6382 威望:0 精华:0 注册:2014/12/21 21:01:00
  发帖心情 Post By:2016/3/3 14:28:00 [只看该作者]

其它没问题,就是一直都只执行args.Length = 1

自定义文件打开,获取路径一直都是空


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 14:38:00 [只看该作者]

认认真真看13楼后面的啊,在vs里调试,肯定就是只有一个参数。

 回到顶部
美女呀,离线,留言给我吧!
cyl123
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:6382 威望:0 精华:0 注册:2014/12/21 21:01:00
  发帖心情 Post By:2016/3/3 15:12:00 [只看该作者]

还不行

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        Dim args() = Environment.GetCommandLineArgs
        If args.Length = 2 Then
            Dim path As String = IO.Path.GetDirectoryName(args(0))
            IO.File.WriteAllText(path & "/路径.txt", args(1), System.Text.Encoding.Default)
            'Dim proc As New Process
            'proc.StartInfo.FileName = path & "/2222.exe"
            'proc.Start()
        ElseIf args.Length = 1 Then
            Dim path As String = IO.Path.GetDirectoryName(args(0))
            IO.File.WriteAllText(path & "/路径.txt", "", System.Text.Encoding.Default)
            MsgBox("测试")
            'Dim proc As New Process
            'proc.StartInfo.FileName = path & "/2222.exe"
            'proc.Start()
        End If
    End Sub

 

设置好注册表,用后缀文件打开这个vs生成的exe,还是打开对话框“测试”,路径.txt为空

 

是不是vs里面还有设置什么

[此贴子已经被作者于2016/3/3 15:13:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 15:50:00 [只看该作者]

测试,没问题啊

 

1、发布publish文件夹;

 

2、把exe拷贝publish文件夹里面去;

 

3、执行下面代码,红色换成你自己的exe的名称

 

全局代码
Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId As Long, ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)
Private Const SHCNE_ASSOCCHANGED = &H8000000
Private Const SHCNF_IDLIST = &H0
 
Public Sub Refresh() '立即刷新系统!!!
     SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0)
End Sub

按钮代码
Registry.SetValue("HKEY_CLASSES_ROOT\.helen", "", "helen的打开程序")  '建立 .helen 项,填入对应打开的程序
Registry.SetValue("HKEY_CLASSES_ROOT\helen的打开程序\DefaultIcon", "", ProjectPath & "test.ico")  '建立打开程序的信息(图标)
Registry.SetValue("HKEY_CLASSES_ROOT\helen的打开程序\shell\Open\Command", "", "C:\WINDOWS\notepad.exe %1")  '用记事本打开.helen文件
Refresh()

msgbox("设置成功,请建立.helen文件测试验证")
 
4、新建一个.helen的文件,双击打开,就能看到这个文件的路径啊。
 
5、如果直接运行exe,看到的,就是空白的路径啊。

 回到顶部
美女呀,离线,留言给我吧!
cyl123
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:6382 威望:0 精华:0 注册:2014/12/21 21:01:00
  发帖心情 Post By:2016/3/3 16:06:00 [只看该作者]

可以了,原来我吧%1给弄掉了

 回到顶部
美女呀,离线,留言给我吧!
cyl123
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:6382 威望:0 精华:0 注册:2014/12/21 21:01:00
  发帖心情 Post By:2016/3/3 19:58:00 [只看该作者]

测试一下win10, 注册表访问被拒绝

Registry.SetValue("HKEY_CLASSES_ROOT\.helen", "", "ltFox的打开程序")  '建立 .helen 项

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 21:09:00 [只看该作者]

 你运行项目的时候,右键->属性->勾选 管理员身份运行

 回到顶部
总数 20 上一页 1 2