Board logo

标题: [交流] [已解决,感谢81635631]请教高手:如何让插件按钮兼具打开和关闭的功能 [打印本页]

作者: westone    时间: 2008-6-20 18:53     标题: [已解决,感谢81635631]请教高手:如何让插件按钮兼具打开和关闭的功能

把一个自己常用的EXE做成了TW的插件,但是这个小程序只在后台运行,没有界面和托盘图标。
本来一直开着也没有什么,但最近和另一个程序有点冲突,经常需要关闭。
但每次关闭都需要到Windows任务管理器中结束进程,有点麻烦。

向高手请教:如何能让TW中的插件按钮兼具打开和关闭的功能?
也就是点击一次:打开。
再点击一次:关闭。

在此先谢谢了。

[ 本帖最后由 westone 于 2008-6-21 16:33 编辑 ]
作者: kli    时间: 2008-6-20 19:45

写个BAT,单独做个插件

内容是:

taskkill /im 进程名 /f


不过我在想应该可以有个BAT运行第一次是启动进程,第2次检查进程存在就结束进程,不过我的水平实在是不入门,只能提点偏门主意
作者: 81635631    时间: 2008-6-20 20:15

if exitst sign

del sign

echo .>sign


作者: kli    时间: 2008-6-20 22:15

楼上的写明白点呀,大家一起来学习学习

谢谢
作者: 81635631    时间: 2008-6-21 00:36

不好意思,



  1. @echo off
  2. IF EXIST sign (
  3. del sign
  4. taskkill /im cmd.exe
  5. ) ELSE (
  6. echo .>sign
  7. ipconfig /all
  8. pause
  9. )
复制代码


这样子明白了吗
作者: 81635631    时间: 2008-6-21 00:37

在cmd里输入 if /?
会有一大片的帮助 很有用的
作者: kli    时间: 2008-6-21 02:08

@echo off
IF EXIST Q-DIR.exe (
taskkill /im Q-DIR.exe
) ELSE (
echo start Q-DIR.exe
pause
)

ELSE后面该怎么写啊?? 只能结束进程不能开始进程,IF /?我也看了,按照上面的格式弄了半天还是不会。。。
作者: himmel    时间: 2008-6-21 02:13

taskkill是虾米咩?
作者: kli    时间: 2008-6-21 02:16

饿也不知道,CMD命令是那么教的
作者: himmel    时间: 2008-6-21 02:30

在cmd窗口中输入了taskkill,结果返回的是错误命令,看到很多人都这样写,不知道多少人真正用过
作者: 81635631    时间: 2008-6-21 04:28

原帖由 himmel 于 2008-6-21 02:30 发表 http://bbs.ioage.com/cn/images/common/back.gif
在cmd窗口中输入了taskkill,结果返回的是错误命令,看到很多人都这样写,不知道多少人真正用过


没有taskkill那是你系统问题.
"看到很多人都这样写,不知道多少人真正用过"看到很多人用,不认为是自己出了问题,反而认为...
作者: 81635631    时间: 2008-6-21 04:29

@echo off
IF EXIST sign (
del sign
taskkill /im 你要运行的文件.exe
) ELSE (
echo .>sign
你要运行的文件名.exe
pause
)
作者: kli    时间: 2008-6-21 05:35

终于看明白拉,原来是建立一个SIGN文件来做检查,一直以为是检查进程名字。。

有个小问题,程序运行后,CMD没有自动关闭,去掉PAUSE也不行。

该怎么解决啊?
作者: himmel    时间: 2008-6-21 07:07

原帖由 81635631 于 2008-6-21 04:28 发表 http://bbs.ioage.com/cn/images/common/back.gif


没有taskkill那是你系统问题.
"看到很多人都这样写,不知道多少人真正用过"看到很多人用,不认为是自己出了问题,反而认为...

原版Windows XP系统打了SP2补丁,也会有问题咩? 我只是想知道,这taskkill到底是内部命令还是外部命令,那么多人都这样写,从没有人真正说清楚这个命令的来由,每次看得我都一头雾水
作者: 81635631    时间: 2008-6-21 12:02

原帖由 kli 于 2008-6-21 05:35 发表 http://bbs.ioage.com/cn/images/common/back.gif
终于看明白拉,原来是建立一个SIGN文件来做检查,一直以为是检查进程名字。。

有个小问题,程序运行后,CMD没有自动关闭,去掉PAUSE也不行。

该怎么解决啊?



@echo off
IF EXIST sign (
del sign
taskkill /im 你要运行的文件.exe
) ELSE (
echo .>sign
start 你要运行的文件名.exe
)
这样子就可以了~
作者: 81635631    时间: 2008-6-21 12:04

taskkill
tasklist
是外部命令.这两文件xp中
作者: westone    时间: 2008-6-21 16:30

问题解决了,高兴。

谢谢楼上诸位,尤其是哈哈兄不厌其烦的热情相助。
刚才又就一些细节PM哈哈兄请教,比如:在我这里使用时,bat里一定要写程序路径,否则单独执行bat成功,但加到TW按钮,点击执行就提示找不到程序。

  1. @echo off
  2. IF EXIST sign (
  3. del sign
  4. taskkill /im "D:\Program Files\你要运行的文件名.exe"
  5. ) ELSE (
  6. echo .>sign
  7. start "D:\Program Files\你要运行的文件名.exe"
  8. )
复制代码


如上这样就可以了。
当然这都是哈哈兄指点的结果,留在这里,今后对有同样问题的兄弟也许会有用。

再次感谢哈哈兄和大家。
作者: kli    时间: 2008-6-21 18:24

谢谢,一起学习了,虽然现在用不到,但是至少学了几个CMD命令的用法
作者: sky5    时间: 2008-6-21 18:55     标题: 回复 17# westone 的帖子

不想写路径可以把执行的程序文件放到windows目录下




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2