标签: vbscript

VBscript 的 SendKeys 是否支持 Unicode?

我发现 VBscriptSendKeys不支持 Unicode。它支持 A-65 等一些字母,但不支持希伯来字母表中的字母 Aleph (א) 等外来字母。问题超出其支持范围。对于 128+ 的十进制值,它会给出一个“?”,并且仅支持 ASCII 范围。

我可以在使用 Windows XP 的计算机上键入并查看希伯来语字母。因此,操作系统对角色的支持已经存在并已设置。我的源代码表明,由于该行

msgbox Chrw(1488)
Run Code Online (Sandbox Code Playgroud)

显示 Aleph 字符,我已在记事本和 MS Word 中显示它。

在我看来,它正在为它无法识别的字符发送问号。我认为 MS Word 或记事本如果确实在显示字符时出现问题(例如,当字体不支持字符时),它们会显示一个框而不是问号。无论如何,对于记事本来说当然是这样。所以这看起来是一个SendKeys问题。有任何想法吗?有什么解决方法吗?

Dim objShell

Set objShell = CreateObject("WScript.Shell")

objShell.Run "notepad" ''#can change to winword

Wscript.Sleep 2000

msgbox Chrw(1488)  ''#aleph

objShell.SendKeys ("abc" & ChrW(1488) & "abc")  ''#bang, it displays a ? instead of an aleph

WScript.Quit
Run Code Online (Sandbox Code Playgroud)

unicode vbscript sendkeys hebrew

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

处理来自 WinHttpRequest 的事件

我使用的程序运行 .VBS 脚本

那么,在VBScript中如何处理WinHttpRequest对象的OnResponseFinished事件呢?

Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
oHTTP.Open "GET", "http://www.google.com", True
oHTTP.Send
Run Code Online (Sandbox Code Playgroud)

vbscript events httpwebrequest

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

检查 VBScript 中是否设置了对象

假设我创建一个对象:

set newcon = Server.CreateObject("ADODB.Connection")
Run Code Online (Sandbox Code Playgroud)

在某个时候我摧毁了它:

set newcon = nothing
Run Code Online (Sandbox Code Playgroud)

我如何判断它newcon是一个物体还是什么都没有?

我努力了:

newcon is nothing
Run Code Online (Sandbox Code Playgroud)

但我明白了object required

如果我尝试isobjector isnullorisempty它不会返回trueor false

还有其他真正有效的东西吗?

vbscript object

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

如何使 vbscript 弹出消息始终在顶部?

任何人都知道如何在所有内容之上而不是在后台制作一个 vbscript 弹出消息/框“生成”......?

这是我的脚本:)

Set objShell = WScript.CreateObject("WScript.Shell")
Const wshYes = 6 
Const wshNo = 7 
Const wshYesNoDialog = 4 
Const wshQuestionMark = 32 
intReturn = objShell.Popup("Vil du annulere shutdown?", _
    20, "Shutdown om 5 minutter!", wshYesNoDialog + wshQuestionMark) 
If intReturn = wshYes Then 
    Wscript.Echo "Shutdown annuleret." 
    objShell.Run "C:\ProgramData\AutoShutdown\Annuler.bat" 
End If 
Run Code Online (Sandbox Code Playgroud)

在VBScript中糟糕,我只是用我的批处理程序这个小部分。任何帮助表示赞赏!

vbscript

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

Windows 脚本宿主的未来

Windows Script Host 的未来是什么?

微软已于 2015 年 5 月宣布在其新浏览器 Windows Edge 中终止 VBscript 和 ActiveX(顺便说一下,这对 Web 标准来说是个好消息)。但是,我无法找到有关脚本世界桌面部分的最新信息。我想知道下一个 Windows 桌面版本是否仍支持 VBscript、wscript.exe、cscript.exe 和 mshta.exe。我很担心,因为 Windows Script Host 引用日复一日地在 MSDN 库中越来越难找到。

我有很多 vbscript 和 hta 文件需要维护(在专业环境中),我需要预测是否很快需要迁移。

如果您有任何相关信息,请分享!

windows vbscript wsh hta

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

vbscript 连接到 sql server 运行查询将结果保存到 csv

我正在尝试创建一个连接到 sql server 的脚本,选择一些数据,并将结果保存到 csv。在 Sql Server 中启用了 Windows 身份验证。

这是我到目前为止所拥有的:

Dim connect, sql, resultSet, pth, txt

Set connect = CreateObject("ADODB.Connection")
connect.ConnectionString = "Provider=SQLOLEDB;Server=server\instance;Database=pm;Trusted_Connection=True;"
connect.Open

sql="SELECT col1, col2 FROM tbl1 order by col1, col2"

Set resultSet = connect.Execute(sql)

pth = "d:\test.csv"
Set txt = fs.CreateTextFile(pth, True)

On Error Resume Next
resultSet.MoveFirst
Do While Not resultSet.eof
  txt.WriteLine(resultSet(0) & "," & resultSet(1))
  resultSet.MoveNext
Loop

resultSet.Close
connect.Close
Set connect = Nothing
Run Code Online (Sandbox Code Playgroud)

我得到错误:

d:\vbs_test.vbs(5, 1) Microsoft OLE DB Provider for SQL Server: Invalid authorization …
Run Code Online (Sandbox Code Playgroud)

sql-server vbscript

5
推荐指数
0
解决办法
7869
查看次数

无法等待进程

我有一个类似这样的 Visual Basic 脚本:

Set WshShell = CreateObject("Wscript.Shell")
WshShell.Run " cmd.exe", 8, True
Run Code Online (Sandbox Code Playgroud)

运行它给出了这个错误:

---------------------------
Windows 脚本宿主
---------------------------
脚本:D:\Folder\MyScript.vbs
线路:2
字符:1
错误:无法等待进程。
代码:80020009
来源:WshShell.Run

---------------------------
好的   
---------------------------

我确实打开了一个资源管理器窗口。

为什么是这样?

windows vbscript

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

在 VBScript 中解析 XML 字符串

我有一个 Web 服务,它返回类似于下面的 XML 字符串:

<?xml version="1.0"?>
<Result>
    <PersonID>991166187</PersonID>
    <AddressID>1303836</AddressID>
</Result>
Run Code Online (Sandbox Code Playgroud)

我需要一个VBScript代码,让我来检索值PersonIDAddressID。我的具体问题是如何PersonID991166187从原始帖子中的 XML 字符串中检索, 即 的

就我的尝试而言,我有以下代码:

Dim doc
Dim xmlString
Dim nodes
Dim idArray

xmlString = "<?xml version="1.0"?><Result><PersonID>991166187</PersonID><AddressID>1303836</Address&#8204;&#8203;ID></Result>"

Set doc = CreateObject("MSXML2.DOMDocument")
doc.loadXML(xmlString)

'Set nodes = doc.selectNodes("Result/PersonID/AddressID")
nodes = doc.getElementsByTagName("PersonID")

For Each node In nodes
  WScript.Echo "Person ID: " & node.text
Run Code Online (Sandbox Code Playgroud)

xml string vbscript

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

ASP Classic 中的 If Not IsNull

我对asp还很陌生,我有一个语法错误,如果可以的话,我希望得到帮助。

我有一个 ASP 页面,它显示了一个从 sql 中提取数据的表。大多数数据尚未填充,因此返回 NULL。有问题的数据类型是数字。我需要FormatNumberrs时候它不为空,如果它不填充。

这就是我所拥有的

<%=If Not IsNull(rs("ContractValue")) Then FormatNumber(rs("ContractValue"),0) end if%>
Run Code Online (Sandbox Code Playgroud)

但如前所述,我收到语法错误。

我究竟做错了什么?

vbscript asp-classic

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

如何通过给定的项目值显示 Motobit Multi.Dictionary 中的键?

我是编程新手,所以如果我的问题看起来很愚蠢,我很抱歉。我想问一下,Multi.Dictionary当我有值时,是否有任何方法可以返回键?

这是我的代码:

Dim myDict
Set myDict= Server.CreateObject("Multi.Dictionary")
myDict.UniqueKeys = False 

'Fill dictionary with some data
myDict("param1") = "value1"
myDict.Add "param2", "value2"
myDict.Add "param2", "value2.2"

'Get dictionary Keys
Keys = myDict.Keys
Items = myDict.Items

For Z = 0 To UBound(Items)
  Response.Write(Keys(Z) & " " & Items(Z) & "<br>")
Next
Run Code Online (Sandbox Code Playgroud)

现在返回

下标超出范围:'2'

这是正常的,因为我循环了 3 次而我只有 2 个键。

那么是否有可能得到这样的结果:

参数 1:“值 1”
参数 2:“值 2” 
参数 2:“value2.2”

vbscript dictionary asp-classic

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