标签: vbscript

Vbscript检测UAC是否升高

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

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

vbscript uac windows-vista windows-server-2008

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

如何使用VBScript从文本文件中读取?

我希望看到一种使用VBScript读取和写入文本文件的简单方法.

我认为这是一种可以接受的写入文件的方法.

 Dim f, 
 Dim fso

 Set fso = CreateObject("Scripting.FileSystemObject")
 Set f = fso.CreateTextFile("C:\test.txt", True, True)

 f.WriteLine("Data to Add to file.")
 f.Close
Run Code Online (Sandbox Code Playgroud)

但是,我想知道如何以类似的方式从文件中读取.

windows vbscript scripting

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

禁用Internet Explorer快捷键

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

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

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

javascript vb6 vbscript internet-explorer activex

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

如何从作为msi安装后任务运行的VBScript读取64位注册表值?

我需要从使用Visual Studio 2008部署项目创建的安装程序中的VBScript中读取Temporary ASP.NET Files文件夹的位置,作为安装后任务的一部分.

我以为我会这样做:

Set oShell = CreateObject("Wscript.Shell")
strPath = oShell.RegRead("HKLM\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\Path")
Run Code Online (Sandbox Code Playgroud)

然后将strPath与"\ Temporary ASP.NET Files"连接起来并完成它.

但是,在x64系统上,我从WOW6432Node(HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\2.0.50727.0)获取值,它为我提供了32位框架路径(C:\ Windows\Microsoft. NET\Framework\v2.0.50727),但在x64系统上,我实际上需要64位路径,即C:\ Windows\Microsoft.NET\Framework64\v2.0.50727.

我知道这是因为.vbs文件是使用32位脚本主机运行的,因为父进程(安装程序)本身就是32位.

如何使用64位脚本主机运行脚本 - 或者 - 即使脚本使用32位脚本主机运行,如何读取64位值?

registry vbscript 64-bit windows-installer

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

经典的asp中<%%>和<script language ="vbscript"runat ="server">有什么区别?

我在网上找不到太多文档

到目前为止,显而易见的差异似乎是你不能使用"script"标签混合html和vbscript

例如,这没关系

<% public sub display_literal() %>
  literal
<% end sub %>

但是你应该使用脚本标签


<script language="vbscript" runat="server">
public sub display_literal2()
    response.write "literal2</br>"
end sub
</script>

在本页面

http://www.newobjects.com/pages/ndl/alp/asp-structure.htm

它说

在经典ASP中,以页面的默认脚本语言(即<%%>标签所假定的语言)编写的脚本被执行第二 - 例如,<%%>标签中的所有脚本代码在所有<SCRIPT RUNAT之后被初始化= SERVER ...>脚本.

但我做了几个测试,无法验证它......

我问,因为我有一个脚本(我现在没有它),使用<%%>给了我一个错误,将其更改为<script>标签解决了问题,但我想知道为什么....

无论如何,我想我们应该使用<script>标签来处理从<%%>标签调用的函数和程序......对吗?

vbscript runatserver asp-classic

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

JScriptTypeInfo定义

我在VBScript中有以下代码:

 Dim control
 set control = CreateObject("MSScriptControl.ScriptControl")
 control.language = "jscript"
 control.addCode("function test() { return {property: 'test'}; };")
 Dim result
 set result = control.Eval("test();")
Run Code Online (Sandbox Code Playgroud)

我知道返回的对象result属于该类型JScriptTypeInfo但我无法找到有关此类型定义的任何信息,并且在Visual Studio C#中执行类似的代码仅{System.__ComObject}在本地窗格中显示此内容.

有谁知道该JScriptTypeInfo类型的接口是什么?

javascript vbscript scriptcontrol

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

从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
查看次数

有任何方法可以将vbscript直接运行到wscript或cscript命令行

我想从命令行运行一个vbs命令,就像批量调用一样

cmd.exe /c "echo.Hello World! & pause"
Run Code Online (Sandbox Code Playgroud)

显然这不起作用

wscript /C MsgBox("Hello world")
Run Code Online (Sandbox Code Playgroud)

我可以打印vbs然后调用临时文件然后删除它

cmd.exe /c "echo. [VBSCODE] > temp.vbs & wscript temp.vbs & del temp.vbs"
Run Code Online (Sandbox Code Playgroud)

但这太乱了,我不希望弹出提示.

vbscript command-line wsh batch-file

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

在VBScript中以多行拆分IF语句

我想知道在VBScript中我是否可以在多行中打破IF语句.喜欢 -

If (UCase(Trim(objSheet.Cells(i, a).Value)) = "YES") Or _
(UCase(Trim(objSheet.Cells(i, b).Value)) = "NO") Then

' Do something

End If
Run Code Online (Sandbox Code Playgroud)

我尝试了这个并得到一个语法错误,因为在同一行If期望If:(

vbscript excel vba excel-vba

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

如何以编程方式按键与键盘上按键完全相同?

有没有人知道如何以编程方式按键,就像在键盘上按下键一样?PostMessage失败,SendInput失败,keybd_event失败,SendMessage失败,我甚至尝试使用Vcl.Touch.Keyboard模仿按键的不寻常方式.我甚至写了一个快速的vb脚本文件调用sendkeys也失败了.我在一个名为Sellerdeck http://www.sellerdeck.com/的程序中尝试这样做时遇到了麻烦

我已经尝试了以下所有内容,它们都与记事本配合使用,但在此程序中失败了.窗口成功地被带到了forground

procedure bringToForegroung;
Var
findhandle1 : cardinal;
begin
findhandle1 := FindWindow(NIL, 'Business Plus - Test site: Online Catalogue');
ShowWindow(findhandle1,SW_SHOW);
SetForegroundWindow(findhandle1);
end;
Run Code Online (Sandbox Code Playgroud)

1.

procedure SendF10;
Var
findhandle1 : cardinal;
begin
findhandle1 := FindWindow(NIL, 'Business Plus - Test site: Online Catalogue');
ShowWindow(findhandle1,SW_SHOW);
SetForegroundWindow(findhandle1);
PostMessage(findhandle1, WM_KEYDOWN, VK_F10, 0);
PostMessage(findhandle1, WM_KEYUP, VK_F10, 0);
end;
Run Code Online (Sandbox Code Playgroud)

2.

 procedure SendAltF;
var
  KeyInputs: array of TInput;
  //--------------------------------------------
  procedure KeybdInput(VKey: Byte; Flags: DWORD);
  begin
    SetLength(KeyInputs, Length(KeyInputs)+1);
    KeyInputs[high(KeyInputs)].Itype := INPUT_KEYBOARD;
    with  KeyInputs[high(KeyInputs)].ki do
    begin
      wVk := VKey; …
Run Code Online (Sandbox Code Playgroud)

delphi vbscript

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