以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎么实现在项目启动的时候就默认用管理员身份运行呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158012) |
-- 作者:李孝春 -- 发布时间:2020/11/5 9:23:00 -- 怎么实现在项目启动的时候就默认用管理员身份运行呢? 论坛有点蓝老师 提供了一个打开完毕程序,以管理员身份运行 代码如下: Dim p As new Process() p.StartInfo.FileName = "c:\\xxx.bat" p.StartInfo.Verb = "runas" p.StartInfo.WorkingDirectory = "c:\\" p.Start() 怎么实现在项目启动的时候就默认用管理员身份运行呢?
|
-- 作者:有点蓝 -- 发布时间:2020/11/5 9:24:00 -- foxtable项目?在Windows的桌面上右击Foxtable的快捷方式,在快捷菜单中的单击属性命令,然后在兼容性页面中勾选“以管理员身份运行此程序” 如果是发布后的项目,设置”可执行文件.exe“
[此贴子已经被作者于2020/11/5 9:25:02编辑过]
|
-- 作者:李孝春 -- 发布时间:2020/11/5 9:36:00 -- 回复:(有点蓝)foxtable项目?在Windows的桌面上右击... 有没有代码可以直接在运行项目时 就默认管理员启动呢? 前提是不在运行之前手动进行设置管理员权限启动项目
|
-- 作者:有点蓝 -- 发布时间:2020/11/5 9:50:00 -- 这是一个悖论。以管理员启动,就是启动前就是管理员身份。既然都启动了,再设置管理员就没有意义了。 就好比想先上飞机再买票一样,是不可行的,因果倒置了!
|
-- 作者:李孝春 -- 发布时间:2020/11/5 10:26:00 -- 回复:(有点蓝)这是一个悖论。以管理员启动,就是启... 有点蓝老师 主要是解决有时候忘记手动设置管理员权限运行的情况 项目发布后 不是每个用户都会注意这个细节 @echo off setlocal EnableDelayedExpansion color 3e title 添加服务配置 PUSHD %~DP0 & cd /d "%~dp0" %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas start C:\\Users\\jcy\\Documents\\Foxtable项目\\公文助手20201104\\Publish\\公文助手.exe 下面有两个问题 第一个 怎么确保这个bat静默运行,不需要显示bat运行时的窗口 第二个 红色部分相对路劲 怎么修改为项目文件动态路劲呢?也就是不管这个文件我放在任何目录下 都可以用这个批处理文件一键运行项目 |
-- 作者:有点蓝 -- 发布时间:2020/11/5 10:35:00 -- 1、 Dim Proc As New Process \'定义一个新的Process Dim batPath As String = projectpath & "xxx.bat" \'指定要打开的bat文件 Proc.StartInfo.WorkingDirectory = FileSys.GetParentPath(batPath) Proc.StartInfo.FileName = batPath Proc.StartInfo.CreateNoWindow = False Proc.Start() 把bat文件添加到发布窗口附件中 start ..\\公文助手.exe |
-- 作者:李孝春 -- 发布时间:2020/11/5 13:13:00 -- 回复:(有点蓝)1、Dim Proc As New Process '定义一... 有点蓝老师 再麻烦你一下 我把如下代码加入了项目启动前的事件里面 项目会不断重启 重新再次打开项目文件 有没有办法将如下代码做一下修正 让项目启动时,只运行一次,运行一次之后 就不再运行了 下载重新打开项目时也依旧只运行一次 If FileSys.FileExists(projectpath & "112.bat") Then \'如果指定的文件存在 Dim Proc As New Process \'定义一个新的Process Dim batPath As String = projectpath & "112.bat" \'指定要打开的bat文件 Proc.StartInfo.WorkingDirectory = FileSys.GetParentPath(batPath) Proc.StartInfo.FileName = batPath Proc.StartInfo.CreateNoWindow = False Proc.Start() Else FileSys.CopyFile(projectpath & "11.bat", projectpath & "112.bat",True) Dim Proc As New Process \'定义一个新的Process Dim batPath As String = projectpath & "112.bat" \'指定要打开的bat文件 Proc.StartInfo.WorkingDirectory = FileSys.GetParentPath(batPath) Proc.StartInfo.FileName = batPath Proc.StartInfo.CreateNoWindow = False Proc.Start() End If
|
-- 作者:有点蓝 -- 发布时间:2020/11/5 13:48:00 -- 原因看4楼。 不用写代码执行了,把bat文件作为程序的启动文件,直接执行bat文件 |
-- 作者:李孝春 -- 发布时间:2020/11/5 13:56:00 -- 回复:(有点蓝)原因看4楼。不用写代码执行了,把bat... 有点蓝 老师 直接双击bat文件 运行 对吧 直接点击是可以启动并且以超级管理员权限运行的 直接双击bat文件有些不友好 还麻烦老师看看有没有更加友好的方式进行操作呢? Dim Proc As New Process \'定义一个新的Process Dim batPath As String = projectpath & "112.bat" \'指定要打开的bat文件 Proc.StartInfo.WorkingDirectory = FileSys.GetParentPath(batPath) Proc.StartInfo.FileName = batPath Proc.StartInfo.CreateNoWindow = False Proc.Start() 这样的代码如果放在项目启动前事件代码里 会一直重复启动项目 就想只实现一次启动 启动成功了就不要再启动了 [此贴子已经被作者于2020/11/5 14:00:43编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/5 14:01:00 -- 使用专业的打包软件打包程序,如:http://www.foxtable.com/webhelp/topics/2207.htm,然后在安装包里设置以管理员运行程序 |