搜索
查看: 1547|回复: 6

重启Windows系统打印服务

[复制链接]

3

主题

9

帖子

82

积分

一级会员

Rank: 2

积分
82
发表于 2017-9-25 11:52:50 | 显示全部楼层 |阅读模式
本帖最后由 zhuzhuhawk 于 2017-9-25 11:57 编辑

前段时间遇到一个问题,
电脑打印机忽然不打印了,老是挂起
打印机本身是没问题的。
于是就重启了一下打印服务就好了。
考虑到手动重启有点麻烦,就做了个小工具

不能上传图片,就将代码粘贴如下:

  1. import win.ui;
  2. import win.ui.menu;
  3. import service;
  4. /*DSG{{*/
  5. var winform = win.form(text="打印机服务管理器";right=548;bottom=224;topmost=1)
  6. winform.add(
  7. button1={cls="button";text="重启打印服务";left=131;top=42;right=325;bottom=95;z=1};
  8. static={cls="static";text="点击后等待5~10秒。。。";left=133;top=125;right=329;bottom=154;notify=1;transparent=1;z=2}
  9. )
  10. /*}}*/

  11. winform.static.oncommand = function(id,event){
  12.         //winform.msgbox( winform.static.text );
  13.        
  14.        
  15. }


  16. winform.button1.oncommand = function(id,event){
  17.         //winform.msgbox( winform.button.text );
  18.     //console.open();
  19.     // 停止打印服务
  20.         service.stop("spooler");
  21.     // 停止中,等待2秒左右
  22.     sleep(2000);
  23.     // 提示
  24.     winform.msgbox("打印服务停止","提示");
  25.     // 重启服务中,大概2秒
  26.     service.start("spooler");
  27.     // 等待3秒
  28.     sleep(3000);
  29.     // 提示消息
  30.         winform.msgbox("打印服务重启完成","提示");
  31.        
  32. }
  33. winform.show()
  34. win.loopMessage();
复制代码
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-9-26 19:20:14 | 显示全部楼层
laniv 发表于 2017-9-26 17:25
老大,请教个问题:
比如控制某个 服务  禁用,延时,自动,手动 的类型,要怎么写?
我看了下函数说明 ...

修改服务配置用API ChangeServiceConfig,
服务类型里写 _SERVICE_AUTO_START 就是自动,
库函数说明里没有,可以查询微软相关的MSDN文档。

我已经添加了几个你所说的函数:
import service

var srv  = service.manager()

//设为手动启动
srv.startManual("W3SVC")

//设为自动启动
srv.startAutomatic("W3SVC");

//设为延时启动
srv.startDelayed("W3SVC");

//设为禁用
srv.startDisabled("W3SVC");

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-9-26 03:00:03 | 显示全部楼层
这个重启服务其实还要考虑挺多事情,进程是不是卡死了,检测状态,超时设置等等,
今天我在标准库里加了一个函数,可以简单一些重启服务:
service.restart("spooler")
你可以试试好不好用。
回复

使用道具 举报

3

主题

9

帖子

82

积分

一级会员

Rank: 2

积分
82
 楼主| 发表于 2017-9-26 16:39:28 | 显示全部楼层
本帖最后由 zhuzhuhawk 于 2017-9-26 16:46 编辑
Jacen.He 发表于 2017-9-26 03:00
这个重启服务其实还要考虑挺多事情,进程是不是卡死了,检测状态,超时设置等等,
今天我在标准库里加了一 ...


[ s ] 老大,win8 64位亲测,用restart,貌似没反应 [ /s ]
额。。不对
刚刚是我少写了导入sys.service

现在试试,非常好用
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-9-26 17:19:27 | 显示全部楼层
zhuzhuhawk 发表于 2017-9-26 16:39
[ s ] 老大,win8 64位亲测,用restart,貌似没反应 [ /s ]
额。。不对
刚刚是我少写了导入sys.serv ...

好的了解了,谢谢
回复

使用道具 举报

0

主题

3

帖子

74

积分

荣誉会员

Rank: 8Rank: 8

积分
74
发表于 2017-9-26 17:25:34 | 显示全部楼层
Jacen.He 发表于 2017-9-26 03:00
这个重启服务其实还要考虑挺多事情,进程是不是卡死了,检测状态,超时设置等等,
今天我在标准库里加了一 ...

老大,请教个问题:
比如控制某个 服务  禁用,延时,自动,手动 的类型,要怎么写?
我看了下函数说明,具体用法没看懂。。。
回复

使用道具 举报

0

主题

3

帖子

74

积分

荣誉会员

Rank: 8Rank: 8

积分
74
发表于 2017-9-27 10:37:52 | 显示全部楼层
Jacen.He 发表于 2017-9-26 19:20
修改服务配置用API ChangeServiceConfig,
服务类型里写 _SERVICE_AUTO_START 就是自动,
库函数说明里 ...

谢谢老大,又搞定一个事情。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 16:51 , Processed in 0.109375 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表