跪求!只让程序启动一次的脚本怎么写?

fever1343 2011-12-28 05:27:30
系统是2003企业,用户在登录系统后,脚本会让用户启动一个软件程序(用户不会登录到桌面,没有权限)。但现在用户想添加一个词库,我在脚本中添加了一条语句后,词库可以运行了,但软件程序却无法运行,我不会编程,请大虾们指教啊。。。下面是我的脚本程序:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="LDAPUser" value="dmsap"/>
<add key="LDAPPassword" value="Abc@123"/>
<add key="DomainName" value="lexusedu-dms\"/>
<add key="NavisionProcess" value="C:\Program Files\Microsoft Dynamics NAV\CSIDE Client\finsql.exe"/>
<add key="NavisionProcess" value="C:\cidian.dctxc"/>
</appSettings>
<connectionStrings>
其实用户登录后,点一个按钮,那么这个软件会运行:C:\Program Files\Microsoft Dynamics NAV\CSIDE Client\finsql.exe"/>,但我添加<add key="NavisionProcess" value="C:\cidian.dctxc"/>后(cidian.dctxc就是词库),点了按钮词库的安装程序会执行,但finsql.exe程序就不会运行了,在我按完词库后再点按钮,词库又出来了,这样的话,词库一直弹出,软件却无法运行了。我就是想,如何让词库只运行一次,或是在词库安装过后,就不再弹出词库安装程序了,能让finsql.exe程序启动起来。
因为不是学编程的,所以希望能给个编号的语句。
...全文
230 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fever1343 2011-12-30
  • 打赏
  • 举报
回复
哈哈,太感谢你啦大哥,终于成功啊,了不起呀。就是有点小小的遗憾,就是每次点完按钮,这两个程序都能出来了,但是C:\cidian.dctxc这个(词库安装插件)每次都出来,我在想,怎么能让他只出来一次,以后我安装完了,就不再出来了,不然每次都要点取消。。。我有种想法,是按时间检测,就设定到某个时间段内可以运行出C:\cidian.dctxc,比如就今天和明天可以,以后就直接启动finsql.exe。这个逻辑可以么?因为我觉得让它只运行一次的话,应该需要程序去判断,这个的话肯能工作要的就大了。
已经非常感谢了。
gqqnb 2011-12-29
  • 打赏
  • 举报
回复
修正
我的程序启动finsql.execidian.dctxc。
你应该把if "%%a"=="cidian.dctxc"中的cidian.dctxc替换为真正运行的程序的名字。
gqqnb 2011-12-29
  • 打赏
  • 举报
回复
看来你那边的程序根据NavisionProcess指定的路径来执行程序,且只能用NavisionProcess指定一个程序。这就解释了为什么
<add key="NavisionProcess" value="C:\Program Files\Microsoft Dynamics NAV\CSIDE Client\finsql.exe"/>
<add key="NavisionProcess" value="C:\cidian.dctxc"/>
只会执行C:\cidian.dctxc。

所以我们要自行编写一个程序。你的程序启动我的程序,我的程序启动finsql.exe的cidian.dctxc。

简单起见,我用batch脚本给你写了个程序,并进行了简单的测试。

start "" "C:\Program Files\Microsoft Dynamics NAV\CSIDE Client\finsql.exe"
set run=true
for /f %%a in ('tasklist /fo table /nh') do if "%%a"=="cidian.dctxc" (set run=false)

echo %run%

if "%run%"=="true" (start "" C:\cidian.dctxc)

把以上代码存为a.bat,放到C:\。
然后删除
<add key="NavisionProcess" value="C:\Program Files\Microsoft Dynamics NAV\CSIDE Client\finsql.exe"/>
<add key="NavisionProcess" value="C:\cidian.dctxc"/
添加
<add key="NavisionProcess" value="C:\a.dctxc"/>

最后我想提醒你注意,cidian.dctxc不像是个可执行程序,应该是另一个软件运行它的。就像你双击txt文件,其实运行的是记事本(notepad.exe)。这样的话,你应该把if "%%a"=="cidian.dctxc"中的cidian.dctxc真正运行的程序的名字。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧