找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: wzehu

[文件操作] 如何用 BAT VBS 静默运行 EXE,自动关闭 EXE 已知确认类弹窗

[复制链接]
发表于 5 天前 | 显示全部楼层
czjt1234 发表于 2026-5-9 15:59
js在winxp中测成功

但是我删除第三行,再把 表程序 全部替换为 表应用,一样运行成功

我画蛇添足了。
 楼主| 发表于 5 天前 | 显示全部楼层
cutebe 发表于 2026-5-9 10:43
以下已测试环境 Win7/Win10

我 XP 系统老旧,有个思路:
         以 VBS 作为主控,调用 JS 脚本,自动抓取包含「立即清理」「清理完毕」的弹窗,定位并模拟点击【确定】按钮。
     求大佬编写兼容 XP、不依赖更高系统的 JS 代码,配合 VBS 即可正常运行。





发表于 5 天前 | 显示全部楼层
本帖最后由 cutebe 于 2026-5-9 17:31 编辑
wzehu 发表于 2026-5-9 16:54
我 XP 系统老旧,有个思路:
         以 VBS 作为主控,调用 JS 脚本,自动抓取包含「立即清理」「清理 ...


我这边没有XP系统了。

JS的代码是能在XP运行的。只是上面那个没办法测试,你自己测试一下

一般正确装了WPS 或 Office 都能使用 new ActiveXObject("Excel.Application") 组件对象。
发表于 5 天前 | 显示全部楼层

根据 czjt1234 实测,去除多余的.Application

并把文件存在判断放在开头:
  1. //自动清理.JS        //执行宏调用ExecuteExcel4Macro
  2. var 清理程序文件="D:\\自动清理\\CleanZ.exe";
  3. var 文件环境 = new ActiveXObject("Scripting.FileSystemObject");
  4. if(!文件环境.FileExists(清理程序文件)){WScript.Echo("文件不存在:\n"+清理程序文件);WScript.Quit();}

  5. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象

  6. 自动运行清理武器测试(清理程序文件);

  7. 表应用.Quit();        //退出环境
  8. WScript.Quit();        //结束脚本


  9. //-----函数-----//
  10. function 自动运行清理武器测试(清理程序){
  11.         //console.clear();
  12.         var 标题="清理武器 V1.3 www.zwuqi.com",类="TFormCleanZ";        //程序窗口信息
  13.         var 窗口句柄=0;
  14.         while(!窗口句柄){
  15.                 打开程序(清理程序);        //===打开程序===//
  16.                 延时(500);
  17.                 窗口句柄=查找窗口(标题,类);        //===找到软件窗口===//
  18.         }
  19.         if(窗口句柄){
  20.                 //WScript.Echo("窗口句柄:"+窗口句柄);
  21.                 //显示窗口信息(窗口句柄);        //===句柄标题类===//
  22.                 var 扫描按钮文字="扫描",按钮类="TButton";
  23.                 var 扫描按钮句柄=下一个子窗口(窗口句柄,0,扫描按钮文字,按钮类);
  24.                 投送点击按钮消息(扫描按钮句柄);
  25.         }
  26.         var 毫秒=500,关闭=0x10;
  27.         while(1){
  28.                 延时(毫秒);
  29.                 var 对话框句柄=查找对话框窗口("清理武器");
  30.                 if(对话框句柄){
  31.                         var 浏览器未关=清理武器对话框检测("清理武器","正在运行中,无法",关闭);
  32.                         if(浏览器未关){毫秒=300;/*WScript.Echo("关闭了浏览器提示对话框。");*/}
  33.                         //var 清理确认=清理武器对话框检测("清理武器","要立即清理这些项目",关闭);
  34.                         //if(清理确认){毫秒=500;/*WScript.Echo("关闭了清理确认对话框。");*/}
  35.                         var 清理确认=清理武器对话框检测("清理武器","要立即清理这些项目","确定");
  36.                         if(清理确认){毫秒=200;/*WScript.Echo("清理确认对话框:确定开始清理!");*/}
  37.                         var 完成清理=清理武器对话框检测("清理武器","清理完毕","确定");
  38.                         if(完成清理){/*WScript.Echo("确认完成清理对话框。");*/}
  39.                 }
  40.                 窗口句柄=查找窗口(标题,类);
  41.                 if(完成清理 || (!窗口句柄)){break;}
  42.                 //对话框句柄=0;
  43.         }
  44.         窗口句柄=查找窗口(标题,类);        //===找到软件窗口===//
  45.         if(窗口句柄){
  46.                 //WScript.Echo("窗口句柄:"+窗口句柄);
  47.                 //显示窗口信息(窗口句柄);        //===句柄标题类===//
  48.                 var 退出按钮文字="退出",按钮类="TButton";
  49.                 var 退出按钮句柄=下一个子窗口(窗口句柄,0,退出按钮文字,按钮类);
  50.                 投送点击按钮消息(退出按钮句柄);
  51.                 投送关闭窗口消息(窗口句柄);
  52.         }
  53. }

  54. function 清理武器对话框检测(标题,部分提示内容,按钮动作){        //显示窗口及子窗口信息
  55.         var 对话框句柄=查找对话框窗口(标题);
  56.         //WScript.Echo("对话框句柄:"+对话框句柄);
  57.         if(!对话框句柄){/*WScript.Echo(标题+"对话框未找到!");*/return 0;}
  58.         var 子窗口基本信息=找子窗口基本信息(对话框句柄,0,0);
  59.         //WScript.Echo("子窗口基本信息("+子窗口基本信息.length+"):"+子窗口基本信息);
  60.         var 子窗口数=子窗口基本信息.length;
  61.         for(var i=0;i<子窗口数;i++){
  62.                 if(子窗口基本信息[i][1]==按钮动作 && 子窗口基本信息[i][2]=='Button'){
  63.                         var 确定按钮句柄=子窗口基本信息[i][0];
  64.                 }else{if(子窗口基本信息[i][1].indexOf(部分提示内容)!=-1 && 子窗口基本信息[i][2]=='Static'){
  65.                         var 确认提示句柄=子窗口基本信息[i][0];
  66.                 }}
  67.         }
  68.         while(确认提示句柄 && 对话框句柄){
  69.                 if(按钮动作==0x10){投送关闭窗口消息(对话框句柄);}        //关闭对话框
  70.                 else{投送点击按钮消息(确定按钮句柄);}        //发送点击按钮消息(确定按钮);
  71.                 对话框句柄=查找对话框窗口(标题);
  72.         }
  73.         if(!对话框句柄 && 确认提示句柄){return 1;}
  74. }
  75. function 打开程序(文件路径){
  76.         var 进程句柄=表应用.ExecuteExcel4Macro('CALL("Shell32","ShellExecuteA","JJFFJJJ",0,"open","'+文件路径+'",0,0,1)');
  77.         //if(进程句柄>32){WScript.Echo("程序运行成功。");}else{WScript.Echo("程序打开失败!");}
  78. }
  79. function 延时(毫秒){
  80.         表应用.ExecuteExcel4Macro('CALL("kernel32","Sleep","JJ",'+毫秒+')');
  81. }
  82. function 查找窗口(标题,类){        //返回句柄
  83.         var 窗口句柄;
  84.         if(!标题){        //标题为0
  85.                 if(!类){窗口句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowA","JJJ",0,0)');}        //类为0       
  86.                 else{窗口句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowA","JFJ","'+类+'",0)');}
  87.         }else{
  88.                 if(!类){窗口句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowA","JJF",0,"'+标题+'")');}        //类为0       
  89.                 else{窗口句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowA","JFF","'+类+'","'+标题+'")');}
  90.         }
  91.         return 窗口句柄;
  92. }
  93. function 下一个子窗口(父句柄,上个子句柄,标题,类){
  94.         var 子句柄;
  95.         if(标题==0){        //标题为0               
  96.                 if(类==0){子句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowExA","JJJJJ",'+父句柄+','+上个子句柄+',0,0)');        //类为0
  97.                 }else{子句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowExA","JJJFJ",'+父句柄+','+上个子句柄+',"'+类+'",0)');}
  98.         }else{        //有标题
  99.                 if(类==0){子句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowExA","JJJJF",'+父句柄+','+上个子句柄+',0,"'+标题+'")');
  100.                 }else{子句柄=表应用.ExecuteExcel4Macro('CALL("User32","FindWindowExA","JJJFF",'+父句柄+','+上个子句柄+',"'+类+'","'+标题+'")');}
  101.         }
  102.         return 子句柄;
  103. }
  104. function 投送点击按钮消息(按钮句柄){
  105.         var 点击=0xF5;
  106.         表应用.ExecuteExcel4Macro('CALL("User32","PostMessageA","JJJJJ",'+按钮句柄+','+点击+',0,0)');
  107. }
  108. function 投送关闭窗口消息(窗口句柄){
  109.         var 关闭=0x10;
  110.         表应用.ExecuteExcel4Macro('CALL("User32","PostMessageA","JJJJJ",'+窗口句柄+','+关闭+',0,0)');
  111. }
  112. function 查找对话框窗口(标题){
  113.         var 对话框句柄=查找窗口(标题,"#32770");        //对话框类#32770
  114.         return 对话框句柄;
  115. }
  116. function 找子窗口基本信息(父句柄,标题,类){        //显示句柄、标题、类
  117.         var 第一个子句柄=下一个子窗口(父句柄,0,标题,类);
  118.         var 子句柄=第一个子句柄,子窗口基本信息=[];
  119.         while(子句柄){
  120.                 var 子标题=获取窗口标题(子句柄);
  121.                 var 子类名=获取类名(子句柄);
  122.                 子窗口基本信息.push([子句柄,子标题,子类名]);
  123.                 子句柄=下一个子窗口(父句柄,子句柄,标题,类);
  124.         }
  125.         return 子窗口基本信息;
  126. }
  127. function 获取窗口标题(窗口句柄){
  128.         var 窗口标题长度=表应用.ExecuteExcel4Macro('CALL("User32","GetWindowTextLengthA","JJ",'+窗口句柄+')');
  129.         var 缓冲区大小=窗口标题长度+1,窗口标题="";
  130.         var 内存地址 = 表应用.ExecuteExcel4Macro('CALL("Kernel32", "VirtualAlloc", "JJJJJ", 0, '+缓冲区大小+', '+0x3000+', 4)');        //申请内存
  131.         var 标题长度=表应用.ExecuteExcel4Macro('CALL("User32", "GetWindowTextA", "JJJJ", '+窗口句柄+','+内存地址+','+窗口标题长度+1+')');
  132.         if(标题长度){窗口标题=内存读取字符串(内存地址);}
  133.         表应用.ExecuteExcel4Macro('CALL("Kernel32", "VirtualFree", "JJJJ", '+内存地址+', 0, '+0x8000+')');        //释放内存
  134.         return 窗口标题;
  135. }
  136. function 获取类名(窗口句柄){
  137.         var 缓冲区大小=256,类名="";        //类名最长255
  138.         var 内存地址=表应用.ExecuteExcel4Macro('CALL("Kernel32","VirtualAlloc","JJJJJ",0,'+缓冲区大小+','+0x3000+',4)');        //申请内存
  139.         var 类名长度=表应用.ExecuteExcel4Macro('CALL("User32","GetClassNameA","JJJJ",'+窗口句柄+','+内存地址+','+缓冲区大小+')');
  140.         if(类名长度){类名=内存读取字符串(内存地址);}
  141.         表应用.ExecuteExcel4Macro('CALL("Kernel32","VirtualFree","JJJJ",'+内存地址+',0,'+0x8000+')');        //释放内存
  142.         return 类名;
  143. }
  144. function 内存读取字符串(内存地址){        //返回字符串
  145.         var 段长度=127;
  146.         var 总字节=表应用.ExecuteExcel4Macro('CALL("Kernel32","lstrlenA","JJ",'+内存地址+')');        //内存文本字节数
  147.         var 偏移字节=0,文本字符串=分段文本='';
  148.         while(偏移字节<总字节){        //返回字符串F。        //返回超255字节时,也需要分段操作
  149.                 分段文本=表应用.ExecuteExcel4Macro('CALL("Kernel32","lstrcpynW","FFJJ","",'+(内存地址+偏移字节)+','+段长度+')');
  150.                 偏移字节+=分段文本.replace(/[^\x00-\xff]/g,'xx').length;        //计算字符串字节数
  151.                 文本字符串+=分段文本;
  152.         }
  153.         return 文本字符串;
  154. }
复制代码

环境系统为 XP 时,需要自行测试!

评分

参与人数 1技术 +1 收起 理由
wzehu + 1 感谢分享

查看全部评分

 楼主| 发表于 5 天前 | 显示全部楼层
本帖最后由 wzehu 于 2026-5-9 23:17 编辑
cutebe 发表于 2026-5-9 17:23
我这边没有XP系统了。

JS的代码是能在XP运行的。只是上面那个没办法测试,你自己测试一下。


一直是:new ActiveXObject("Excel.Application找不到文件.
我Office12是便携版的,又下载office2007_10130 安装了.还是new ActiveXObject找不到文件
不会是要安装全部660 MB吧? 现在246mb
最近几天才接触JS,一眼黑屏啊! :'(
 楼主| 发表于 前天 00:24 | 显示全部楼层
czjt1234 发表于 2026-5-8 16:17
winxpsp3测试通过
最后不使用tasjkill结束程序,否则%temp%里面会残留一个.###文件 ...

我又有了个新思路:
因为 CleanZ.exe 主窗口和所有弹出的提示弹窗位置都是固定不变的。
只要提取到提示弹窗中【确定】的 TOP 位置
就能用循环 + 延时 Sleep 300 毫秒 +在TOP 位置  SendKeys 回车,完成所有自动操作。
发表于 前天 11:25 | 显示全部楼层
wzehu 发表于 2026-5-12 00:24
我又有了个新思路:
因为 CleanZ.exe 主窗口和所有弹出的提示弹窗位置都是固定不变的。
只要提取到提示弹 ...

前面已述,vbs本身获取不到子窗口的数据。
25楼代码已经尝试用 cleanZ.exe 产生的文件和子窗口出现前后的内存占用差值来间接捕获子窗口。
如果获取 ComputerZ.set 文件变化被实测此路不通,可改用抓取几个子窗口弹出前后的内存占用差值来捕获,方法已如前述。
楼主做些功课,以便大家拿到真实准确数据才可帮到你...
发表于 前天 16:48 | 显示全部楼层
  1. Dim oWshShell, oFSO, winAPI, s

  2. Set oWshShell = CreateObject("WScript.Shell")
  3. s = RePlace(WScript.ScriptFullName, WScript.ScriptName, "")
  4. Set oFSO = CreateObject("Scripting.FileSystemObject")
  5. oWshShelL.Run "cmd /c copy """ & s & "dynwrap.dll"" %windir%\system32", 0, True
  6. oWshShelL.Run "regsvr32 /s %windir%\system32\dynwrap.dll", 0, True
  7. Set winAPI = CreateObject("DynamicWrapper")
  8. winAPI.Register "user32.dll", "FindWindow", "i=ss", "f=s", "r=l"
  9. s = "ComputerZ.set"
  10. If oFSO.FileExists(s) Then oFSO.DeleteFile s, True
  11. oWshShell.Run "CleanZ.exe"
  12. While oWshShell.AppActivate("清理武器") = False
  13.     WScript.Sleep 200
  14. Wend
  15. oWshShell.SendKeys "{ENTER}"    '开始扫描
  16. Do
  17.     s = winAPI.FindWindow(vbNullString, "清理武器")
  18.     If CBool(s) Then Exit Do
  19.     WScript.Sleep 200
  20. Loop
  21. While oWshShell.AppActivate("清理武器") = False
  22.     WScript.Sleep 200
  23. Wend
  24. oWshShell.SendKeys "{ENTER}"    '开始清理
  25. While oFSO.FileExists("ComputerZ.set") = False
  26.     WScript.Sleep 200
  27. Wend
  28. While oWshShell.AppActivate("清理武器") = False
  29.     WScript.Sleep 200
  30. Wend
  31. oWshShell.SendKeys "%{F4}"
  32. WScript.Sleep 200
  33. oWshShell.SendKeys "%{F4}"    '退出程序
  34. oFSO.DeleteFile "ComputerZ.set", True
复制代码
网盘
https://pan.baidu.com/s/1nvDKz1n
下载文件
公开分享\vbs\DynamicWrapper\dynwrap.dll

把文件和vbs和CleanZ.exe放一起

winxp测试通过

评分

参与人数 1技术 +1 收起 理由
wzehu + 1 感谢分享

查看全部评分

发表于 前天 20:40 | 显示全部楼层

如果是提示:Excel.Application 的问题

wzehu 发表于 2026-5-9 23:09
一直是:new ActiveXObject("Excel.Application找不到文件.
我Office12是便携版的,又下载office2007_10130 ...

尝试检查组件是否安装。看看是否有类似如下注册表:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\Excel.Application]
  3. @="Microsoft Office Excel 应用程序"

  4. [HKEY_CLASSES_ROOT\Excel.Application\CLSID]
  5. @="{00024500-0000-0000-C000-000000000046}"

  6. [HKEY_CLASSES_ROOT\Excel.Application\CurVer]
  7. @="Excel.Application.12"
  8. ".ksobak"="Excel.Application.12"

  9. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}]
  10. @="Microsoft Office Excel 应用程序"

  11. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}\InprocHandler32]
  12. @="ole32.dll"

  13. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32]
  14. @="D:\\PROGRA~1\\WPSOFF~1\\office6\\et.exe /Automation"
  15. ".ksobak"=""
  16. "LocalServer32"=hex(7):44,00,3a,00,5c,00,50,00,52,00,4f,00,47,00,52,00,41,00,\
  17.   7e,00,31,00,5c,00,57,00,50,00,53,00,4f,00,46,00,46,00,7e,00,31,00,5c,00,6f,\
  18.   00,66,00,66,00,69,00,63,00,65,00,36,00,5c,00,65,00,74,00,2e,00,65,00,78,00,\
  19.   65,00,20,00,2f,00,41,00,75,00,74,00,6f,00,6d,00,61,00,74,00,69,00,6f,00,6e,\
  20.   00,00,00,00,00

  21. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}\ProgID]
  22. @="Excel.Application.12"
  23. ".ksobak"="Excel.Application.12"

  24. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{00024500-0000-0000-C000-000000000046}\VersionIndependentProgID]
  25. @="Excel.Application"

  26. [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024500-0000-0000-C000-000000000046}]
  27. @="Microsoft Office Excel 应用程序"

  28. [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024500-0000-0000-C000-000000000046}\InprocHandler32]
  29. @="ole32.dll"

  30. [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32]
  31. @="D:\\PROGRA~1\\WPSOFF~1\\office6\\et.exe /Automation"
  32. ".ksobak"=""
  33. "LocalServer32"=hex(7):44,00,3a,00,5c,00,50,00,52,00,4f,00,47,00,52,00,41,00,\
  34.   7e,00,31,00,5c,00,57,00,50,00,53,00,4f,00,46,00,46,00,7e,00,31,00,5c,00,6f,\
  35.   00,66,00,66,00,69,00,63,00,65,00,36,00,5c,00,65,00,74,00,2e,00,65,00,78,00,\
  36.   65,00,20,00,2f,00,41,00,75,00,74,00,6f,00,6d,00,61,00,74,00,69,00,6f,00,6e,\
  37.   00,00,00,00,00

  38. [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024500-0000-0000-C000-000000000046}\ProgID]
  39. @="Excel.Application.12"
  40. ".ksobak"="Excel.Application.12"

  41. [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00024500-0000-0000-C000-000000000046}\VersionIndependentProgID]
  42. @="Excel.Application"
复制代码
发表于 前天 20:55 | 显示全部楼层

WPS配置工具:

本帖最后由 cutebe 于 2026-5-12 21:01 编辑

D:\Program Files\WPS\office6\ksomisc.exe

WPS Office 综合修复/配置工具》高级(A)…
WPS Office 配置工具》重置修复》重新注册组件(R)

中间“重新注册WPS组件”

中间“重新注册WPS组件”


绿色版 WPS 2016 v10.1
链接:https://pan.baidu.com/s/1vR3lHqPu8HGPHtZomFl6LA
提取码:vvwb
 楼主| 发表于 前天 22:23 | 显示全部楼层
我, 删除了office2007_10130,把Office12换了个文件夹,重启电脑:内存不能为读,一键内存清理,显卡.dll 不过....
全删注册表[office,EXCEL,WINWORD," WORD  "] XP 总算正常了.
其实当初也有WPS的,也删了,一直是...
这回都删干净了,再装office应该没问题吧.
 楼主| 发表于 前天 22:35 | 显示全部楼层
aloha20200628 发表于 2026-5-12 11:25
前面已述,vbs本身获取不到子窗口的数据。
25楼代码已经尝试用 cleanZ.exe 产生的文件和子窗口出现前后的 ...

CleanZ在弹窗时会有一声"嘀"。如果能扑获"嘀"声的时机也就可以在准确时间里回车确定了....
 楼主| 发表于 昨天 02:29 | 显示全部楼层
czjt1234 发表于 2026-5-12 16:48
网盘
https://pan.baidu.com/s/1nvDKz1n
下载文件

谢谢你的  DLL     
终于搞定了:


  1. Dim oWshShell,oFSO,winAPI,s
  2. Set oWshShell=CreateObject("WScript.Shell")
  3. Set oFSO=CreateObject("Scripting.FileSystemObject")
  4. Set winAPI=CreateObject("DynamicWrapper")
  5. winAPI.Register "user32.dll","FindWindow","i=ss","f=s","r=l"

  6. s="ComputerZ.set"
  7. If oFSO.FileExists(s) Then oFSO.DeleteFile s, True

  8. oWshShell.Run "CleanZ.exe"  

  9. Call SendKey   ' 开始扫描 :    WScript.Sleep 800
  10.   
  11. Do
  12.     s = winAPI.FindWindow(vbNullString, "清理武器")
  13.     If CBool(s) Then Exit Do
  14.     WScript.Sleep 200
  15. Loop

  16. Call SendKey   ' 开始清理 :    WScript.Sleep 800

  17. While oFSO.FileExists("ComputerZ.set") = False:WScript.Sleep 200:Wend

  18.     oFSO.DeleteFile "ComputerZ.set", True
  19.     oWshShell.SendKeys "{ENTER}"    '清理完成
  20.     oWshShell.Run "taskkill /f /im CleanZ.exe", 0
  21. WScript.Quit

  22. Sub SendKey
  23.     While oWshShell.AppActivate("清理武器") = False:WScript.Sleep 200:Wend
  24.     oWshShell.SendKeys "{ENTER}"
  25. End Sub
复制代码


这里代码行不能再少了.
必须留WScript.Sleep 800,不然ComputerZ.set也删除不了.跟本反应不过来

    再一次      感谢!        
 楼主| 发表于 昨天 22:17 | 显示全部楼层
cutebe 发表于 2026-5-9 17:41
并把文件存在判断放在开头:

环境系统为 XP 时,需要自行测试!

    我刚才安装了以前的W.P.S__10.1.0.7468.exe
    你编写的 JS 运行正常,只代码预留等待时间过短,
    主页面关闭后才生成  ComputerZ.set.

    前两天Excel.Application 的问题很可能是系统有WPS与Office12并存的原故.
    感谢网友不吝赐教,让我受益匪浅。。。   
发表于 7 小时前 | 显示全部楼层
DynamicWrapper 在 winXP 系统可正常注册使用,win7 系统也许也可以,但到了 win10 高版本以后,会被系统视为高危对象自动删除,被建议用 powershell 平替,阻断了 vbs/jscript 借此调用 win32 系统功能的一个选项,有些可惜了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-5-14 22:34

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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