标签: vbscript

Vbscript检测UAC是否升高

我的vbscript如何检测它是否在UAC高架环境中运行?

我没有问题检测用户,并查看用户是否在Administrators组中.但是,当在Vista或Windows 2008下运行时,这仍然无法解决该进程是否提升了私有性的问题.请注意,我只需要检测这种状态; 不要试图提升或(错误地)降低.

vbscript uac windows-vista windows-server-2008

7
推荐指数
2
解决办法
9002
查看次数

禁用Internet Explorer快捷键

编辑:等了一会儿后还没有得到任何东西,我决定现在只为IE做快捷禁用.是否有可能通过vbscript禁用IE快捷键来访问菜单/打印等?

是否可以禁用浏览器快捷键?

因为他们中的许多人正在申请中使用.例如,Ctrl+ p正在使用,我不希望浏览器弹出打印窗口.

javascript vb6 vbscript internet-explorer activex

7
推荐指数
1
解决办法
3万
查看次数

如何在visual basic脚本上引用home文件夹

首先让我说我是一个Linux人员,并不熟悉VBS甚至Windows全局变量.

我被要求更新VBS脚本,该脚本基本上将访问表单的最新版本复制到计算机.目前,它将此访问形式放在C:\ MedMaint中.问题是我们不在此位置以管理员身份运行.因此,当新用户尝试访问vbs脚本时,原始用户必须删除该文件夹.我需要将此脚本更改为〜/ MedMaint的linux等效项,或"C:\ Documents and Settings\MyUserName\Application Data\MedMaint"

这是代码示例

    If Not FSO.FileExists("c:\MedMaint\" & File.Name) Then
        FSO.CopyFile File.Path, "c:\MedMaint\"          ' copy the missing file
    Else 
        Set RPFile = FSO.GetFile("c:\MedMaint\" & File.Name)    ' Get the file object from the local object
        If (File.DateLastModified >= RPFile.DateLastModified) Then
            FSO.CopyFile File.Path, "c:\MedMaint\" 
Run Code Online (Sandbox Code Playgroud)

我想知道如何将c:\ MedMaint \引用更改为用户的主目录

vbscript

7
推荐指数
1
解决办法
3万
查看次数

从VBScript调用.NET COM对象

我使用VS 2008和Windows 7.
获得了一个.NET C#类,它作为COM对象公开.

[Guid("E5014B85-FCB2-4F0D-95EC-F741395A7923")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]

public interface DSystem
{

    [DispId(1610809354)]
    void setProperties(IDictionary propertymap);

}
Run Code Online (Sandbox Code Playgroud)

从VBScript调用COM对象

dim dSystem
set dSystem = CreateObject("MYCOMOBJECT")

Dim objDictionary
Set objDictionary = CreateObject("System.Collections.Hashtable")
objDictionary.Add "PROP1", "abc"
objDictionary.Add "PROP2", "zyx"

dSystem.setProperties(objDictionary)
Run Code Online (Sandbox Code Playgroud)

一切正常......但是,返回类型从改变voidbool

    [DispId(1610809354)]
    bool setProperties(IDictionary propertymap);
Run Code Online (Sandbox Code Playgroud)

 success = dSystem.setProperties(objDictionary)
Run Code Online (Sandbox Code Playgroud)

导致错误

Microsoft VBScript运行时错误"800a0005"
无效的过程调用或参数


.tlb文件似乎没问题

[id(0x6003000a)]
HRESULT setProperties(
[in] IDictionary* propertymap, 
[out, retval] VARIANT_BOOL* pRetVal);
Run Code Online (Sandbox Code Playgroud)


我究竟做错了什么?
任何人都可以给我一个提示吗?

c# com vbscript interop

7
推荐指数
1
解决办法
3367
查看次数

如何检查Windows中的vbs脚本是否正在运行?

我在Windows中创建了一个VBS脚本.我将运行此脚本来获取文件的大小.

我让它永远奔跑.(即使这是我的要求).

我怎么知道它是在运行还是停止?

------ Exact Script starts here ----- 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set FSO_check=CreateObject("Scripting.FileSystemObject") 
do while infiniteLoop=0     
----- This code is lasting for ever ----
Loop
Run Code Online (Sandbox Code Playgroud)

我的问题清楚了吗?

windows vbscript

7
推荐指数
1
解决办法
2万
查看次数

vbs如何从命令行命令获取结果

我想使用Windows脚本(.vbs)从命令行(cmd.exe)获取简单命令的结果.这是怎么做到的?我无法找到一个好的/简单的例子或解释.您可以使用"日期"或"时间"命令来提供示例.如:

在此输入图像描述

PS我能够编写打开cmd.exe并发送命令的脚本代码.

谢谢!

windows vbscript get

7
推荐指数
1
解决办法
9345
查看次数

VBScript - 如何生成随机数,然后使用If-Statement来使用此数字来选择一个选项

我想知道如何(在VBScript中)生成一个在不同计算机上不一样的随机数,然后使用该数字和一些If-Statements,以便激活10个可能选项中的一个,例如.

If (A random number between 1 - 10, eg. 2) then (Continue on part of script then wscript.quit)
Else if (A different number, eg. 7) then (continue on to different part of script then wscript.quit)
Run Code Online (Sandbox Code Playgroud)

等等

因此,我将有10个不同的选项供脚本随机选择.

这可能吗?如果是这样,那么有人能够编译一个这样的例子,所以我可以将自己的脚本放入并使用它吗?感谢任何答案!

random vbscript if-statement compilation

7
推荐指数
2
解决办法
4万
查看次数

Failproof等待IE加载

是否有一种万无一失的方式让脚本等到Internet Explorer完全加载?

两者oIE.Busy和/或oIE.ReadyState都没有按照他们应该的方式工作:

Set oIE = CreateObject("InternetExplorer.application")

    oIE.Visible = True
    oIE.navigate ("http://technopedia.com")

    Do While oIE.Busy Or oIE.ReadyState <> 4: WScript.Sleep 100: Loop  

    ' <<<<< OR >>>>>>

    Do While oIE.ReadyState <> 4: WScript.Sleep 100: Loop
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

vbscript internet-explorer wsh readystate web-scraping

7
推荐指数
1
解决办法
5万
查看次数

VBScript创建excel 2016对象

我的机器上安装了两个版本的excels(2010和2016).我想在excel 2016上运行一个vbscript.

然而

CreateObject("Excel.Application") 
Run Code Online (Sandbox Code Playgroud)

只创建excel 2010.如何将此更改为2016?

vbscript excel createobject

7
推荐指数
1
解决办法
1041
查看次数

我的代码如何知道它是以VBScript,.HTA还是VBA运行?

编辑:到目前为止,大多数响应都涉及检查可能不存在的对象,这些对象在使用Option Explicit on的VBA中完全不起作用(它会抛出编译时错误,因此On Error不起作用,并且关闭Option Explicit不是一个选项).还有其他一些环形/开箱即用的方法来找出这里需要什么吗?

我正在尝试编写通用的复制粘贴代码,这些代码可以在独立的VBScript(.vbs文件),.hta文件和VBA(例如,在Excel文件中)中使用.要做到这一点,我需要一些方法让代码本身告诉它运行的引擎.

到目前为止我听到的最好的想法是测试某些对象是否存在,但在VBA中,在编译时失败(因此我无法绕过On Error),因此无法解决问题.试图找出它运行的文件的名称并不是最终可行的; 根据代码运行的三个脚本引擎中的哪一个,这是不同的事情之一.我希望有这样简单的东西,但我不确定要填写什么:

Option Explicit

'--- Returns a string containing which script engine this is running in,
'--- either "VBScript", "VBA", or "HTA".

Function ScriptEngine()

    If {what goes here?} Then ScriptEngine="VBS"
    If {what goes here?} Then ScriptEngine="VBA"
    If {what goes here?} Then ScriptEngine="HTA"
    End Function
Run Code Online (Sandbox Code Playgroud)

如果填写正确,您应该能够将该功能复制并粘贴到任何VBA,VBS或HTA文件中而无需修改,调用它,并获得结果而不是错误,即使启用了Option Explicit也是如此.最好的方法是什么?

vbscript excel vba hta identification

7
推荐指数
3
解决办法
571
查看次数