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

[问题求助] 【已解决】-求助VBS代码为何有的窗口能用代码关闭,有的不能?

本帖最后由 liupeiji03 于 2024-9-10 16:30 编辑
  1. Set oShell = CreateObject("WScript.Shell")
  2. If oShell.AppActivate("Untitled - Notepad") Then
  3.    WScript.Sleep 500
  4.    oShell.SendKeys "%{F4}"
  5. End If
复制代码
以上是本人网上搜索得来的代码,根据测试,有的窗口能关闭,有的不能。比如窗口标题设置为本地连接,打开本地连接的状态窗口时可以用该代码关闭,

而打开本地连接的属性窗口时却无法用该代码关闭。

不知道这是什么原因?还是窗口也有很多种属性?
另外这段代码如何修改可以让它一直在后台运行,检测到对应的窗口标题就关闭?

只对当前活动窗口有效,其它应用程序可能会抢占活动窗口

QQ 20147578

TOP

回复 1# liupeiji03


如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# czjt1234


    应该不是吧,运行这个代码后它就会把含这个标题的窗口放到最前了。我测试了一下,打开一个窗口后再在这个软件菜单操作打开的窗口就关不了了。

TOP

回复 3# Batcher


    如图,打开本地连接状态后,在任务栏可以看到有一个本地连接状态的窗口。在本地连接状态窗口点击属性打开本地连接属性的窗口,可以看到任务栏还是只有一个本地连接状态的窗口。第一个能用代码关闭,第二个就不能了。

TOP

  1. ' 脚本必须以管理员身份运行
  2. Set oShell = CreateObject("WScript.Shell")
  3. Do
  4.   If oShell.AppActivate("本地连接 ",True) Then ' 窗口标题 前缀
  5.     ' WScript.Echo "Closing window:" & Timer
  6.      WScript.Sleep 500
  7.      oShell.SendKeys "%{F4}"
  8.      WScript.Sleep 1000 ' 避免重复关闭窗口
  9.   End If
  10.   WScript.Sleep 1000 ' 延迟,避免CPU占用过高
  11. Loop
复制代码
两个窗口都能关闭
1

评分人数

微信:flashercs
QQ:49908356

TOP

回复 6# flashercs


    测试过了还是不能关闭本地连接的属性窗口。

TOP

回复 7# liupeiji03


    必须以管理员身份运行vbs,win7,win10,wi11我都测试通过,完美.
微信:flashercs
QQ:49908356

TOP

回复 8# flashercs


    你好,我在win7下以administrator账户测试成功了,但在其他账户下我还没找到方法怎样以管理员身份运行vbs文件。还有个问题就是我想以这段代码关闭“本地连接 属性”窗口,我将标题改为了“本地连接 属性”,但是无法关闭窗口。不知道是否是本地连接与属性之间填的空格问题导致不匹配

TOP

回复 9# liupeiji03


    目的是 不让用户修改 本地连接 属性吗?用关闭窗口的方式不适用,即使创建计划任务以Administrators用户执行也不能关闭 其他用户的窗口.
最好的方式是通过权限设置 禁止任何人读取 netshell.dll,这样本地连接 属性就 任何人无法访问了.
微信:flashercs
QQ:49908356

TOP

回复 10# flashercs


    是的,主要是针对有管理员权限的域用户,禁止其修改IP。你说的这个netshell.dll我还没试过,我先测试一下。

TOP

回复 10# flashercs


    经过测试,修改netshell.dll文件为只有读取权限,会导致本地连接打叉,本地连接的状态窗口也打不开,跟禁用服务network connections的效果差不多,不推荐这样子搞。
但是经过你的提示,我发现修改netcfgx.dll文件为只有读取权限,就可以达到用户无法打开属性窗口的效果,如图:


现在的问题就是如何通过域策略来控制修改该文件的权限?否则在每台机这样设置也不现实。

TOP

回复 12# liupeiji03


   组策略 开机/关机脚本
微信:flashercs
QQ:49908356

TOP

回复 13# flashercs


    脚本我不会写,大佬可否赐教?首先要获取该文件的所有权,然后再将文件的administrators组修改为只读权限。

TOP

回复 14# liupeiji03
  1. @echo off
  2. takeown /f %windir%\system32\netcfgx.dll
  3. icacls %windir%\system32\netcfgx.dll /deny Everyone:R
  4. icacls %windir%\system32\netcfgx.dll /setowner "NT SERVICE\TrustedInstaller"
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

返回列表