Foxtable(狐表)用户栏目专家坐堂 → 怎么实现在项目启动的时候就默认用管理员身份运行呢?


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

主题:怎么实现在项目启动的时候就默认用管理员身份运行呢?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)使用专业的打包软件打包程序,如:ht...  发帖心情 Post By:2020/11/5 14:03:00 [只看该作者]

这个打包工具刚刚我试过了  不能直接为bat文件进行创建快捷方式
只能就项目主体文件exe进行创建快捷方式
我明白了老师的意思  直接在安装包生成时就授权管理员权限进行使用  对吧

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/5 14:04:00 [只看该作者]

杀跌。使用打包工具就完全不需要bat文件了,在打包工具里直接设置即可

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)杀跌。使用打包工具就完全不需要bat文...  发帖心情 Post By:2020/11/5 14:27:00 [只看该作者]

有点蓝老师 经过实际生成项目文件  并且利用安装包制作软件授予管理员权限运行  结果还是不能实现office相关权限内容的使用

现附上bat文件  项目文件  麻烦老师指导下    谢谢!


以下内容是专门发给有点蓝浏览


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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/5 14:48:00 [只看该作者]

使用代码直接写注册表:http://www.foxtable.com/webhelp/topics/2051.htm

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)使用代码直接写注册表:http://www.f...  发帖心情 Post By:2020/11/5 16:06:00 [只看该作者]

有点蓝 老师  参照你提供的帮助 写入注册表方式

运用如下代码  项目会默认打开依旧没有获得管理员权限 怎么修正一下  项目默认打开 直接运行11.bat获得管理员权限并打开项目主体文件
经显示查看count不为零  项目没有运行bat文件
请教一下  在哪里可以写上当项目运行一次之后就默认把count清零   便于下一次启动时候  项目只运行一次bat文件

试了一下  命令窗口清零count
然后项目会自动连续运行两次   第一次打开的窗体是没有以管理员权限运行的   第二次打开的窗体是以管理员权限运行的   两个窗体都显示出来了
有没有办法只显示一个窗体  也就是项目只运行一次  并且是以管理员权限运行的

想实现的是:项目模拟点击或者直接运行11.bat文件一次  直接获得管理员权限运行项目文件


BeforeOpenProject事件代码如下:
Dim Count As Integer
Count = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",0)

If Count=0 Then
Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",Count + 1)
    Dim Proc As New Process '定义一个新的Process
    Dim batPath As String  = projectpath & "11.bat" '指定要打开的bat文件
    Proc.StartInfo.WorkingDirectory = FileSys.GetParentPath(batPath)
    Proc.StartInfo.FileName = batPath
    Proc.StartInfo.CreateNoWindow = False
    Proc.Start()

End If

[此贴子已经被作者于2020/11/5 16:17:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/5 16:18:00 [只看该作者]

分析注册表文件Office.reg的内容,看是写注册表的那些键值的,改为使用代码写,不是让你照抄帮助的代码,比如
Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8","","Microsoft Office Excel 97-2003 工作表")
Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8","EditFlags",65536)

调用Process的代码全部去掉

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)分析注册表文件Office.reg的内容,看...  发帖心情 Post By:2020/11/5 18:03:00 [只看该作者]

没有理解有点蓝老师的意思
把老师直接写注册表的意思理解为利用注册表来判断运行bat文件
按照老师这个做法  解决了office文件在窗体中显示
但是如果需要打开外部文件的话  还是一样会提示找不到文件  如果用管理员权限就可以打开
比如  我发给老师的项目文件中  注册office就是应用外部文件  在没有授权管理员权限运行的情况下就不能打开  授权后就可以打开

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/5 20:16:00 [只看该作者]

直接写注册表就不需要调用office.reg这个外部文件了

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