VBS:选择文件夹中的一个文件

VBS:选择文件夹中的一个文件

以下代码在 Windows 资源管理器文件夹中选择 arg1:

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("""" & WScript.Arguments(0) & """")
WScript.Sleep 400

' objShell.SendKeys("^a{F5}")       ' Deslect All.

Set objShellAPP = CreateObject("Shell.Application")
On Error Resume Next        ' For new unsaved files.
With objShellAPP.Windows(objShellAPP.Windows.Count - 1).document
.SelectItem .Folder.Items.Item(WScript.Arguments(1)), 17
End With

Set objShell = Nothing
Set objShellAPP = Nothing

如果已经在文件夹中选择了 fileA,并且将 fileB 作为 arg1 传递,则两个文件都会被选中。

我怎样才能取消选择文件 A 而只选择文件 B?注释行objShell.SendKeys("^a{F5}")是一种解决方法,但一定有更好的方法。

谢谢。

答案1

您为参数传递了 17 的值标志位。该值是一个整数,代表您想要设置的标志的组合。

OR您可以使用标志值通过按位运算得出此值。我认为 17 可能是16 OR 1(给予项目焦点;选择项目)标志值为 4 表示“取消选择除指定项目之外的所有项目。” 17 OR 4= 21。

用于OR组合标志;用于AND测试特定标志是否已设置 (21 AND 4 = 4);用于AND not关闭一个标志 (21 AND not(4) = 17)

SelectItem 文档

随机链接:Stackoverflow - 整数标志如何工作?

相关内容