欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在Vista上使用工行U盾 VmwareVBScript浏览器XPF# 

程序员文章站 2024-03-02 21:38:22
...

原来我在Vista上使用U盾付款总有问题,所以都用装XP的电脑付款。最近在外面出差,身边只有Vista,就研究了一下,发现在Vista上也可以使用U盾。我的U盾型号是金邦达2006。

PKCS11初始化失败的问题

如果电脑上安装了VMWare或VMware Player,在Vista上插入U盾后,点击运行工具箱,会出现:

PKCS11初始化失败!

这是USB驱动程序冲突造成的U盾加载证书失败。通过“管理工具”->“服务”将服务“VMware USB Arbitration Service”停止后,U盾就可以正常加载证书了。使用过U盾后,如果需要使用VMware,可以重新启动这项服务。

必须用管理员方式运行浏览器

在Vista在使用U盾时一定要用管理员方式运行浏览器。否则点击付款按钮后,浏览器就没有响应了。在正常情况下,这时应该弹出一个输入支付密码的对话框。

解决VMWare冲突的批处理程序

我经常使用VMware Player,也经常用U盾。通过“管理工具”->“服务”去停止或启动“VMware USB Arbitration Service”比较繁琐,要点击很多次鼠标。

写个小程序实现这个功能虽然简单,但我也花不起时间。于是就写了一个批处理文件:

@echo off
@for /f "tokens=4" %%i in ('sc query VMUSBArbService^|find /i "state"') do (
if "%%i"=="STOPPED" (
sc start VMUSBArbService
mshta vbscript:msgbox^("服务启动,可以用VMware了",0,"U盾助手"^)^(window.close^)
) else (
sc stop VMUSBArbService
mshta vbscript:msgbox^("服务停止,可以用U盾了",0,"U盾助手"^)^(window.close^)
)
)
将这个批处理文件保存到uu.bat。运行时一定要用管理员方式运行,因为停止或启动服务需要管理员身份。
这个小程序自动判断服务是否打开。如果打开的就关闭它,如果关闭的就打开它。需要使用U盾时执行一次。使用过U盾后再执行一次。