标签: vbscript

ASP Classic中的UTF-8 Server.UrlEncode问题

我有些麻烦的URL编码为UTF-8编码的文本字符串以通过HTTP传递。我在经典ASP(vbscript)中使用Server.URlEncode对“é”字符进行编码。

它产生以下字符串,

%C3%83%C2%A9

我通过HTTP与之交谈的系统是PHP,但是无法解码此字符串。使用http://www.albionresearch.com/misc/urlencode.php上的PHP编码器,出现了使用PHP URL编码方法编码的相同字符,

%E9

有谁知道我如何在ASP中成功编码UTF-8编码的字符串,以便PHP系统可以成功对其进行解码?

php vbscript asp-classic

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

VB脚本:如何判断程序是否已经运行?

我正在编写一个脚本来打开RDP会话,但我想检查一下RDP会话是否已经在运行.我最初的想法是检查在内存中运行的MSTSC.EXE.知道怎么做吗?

也可以开放替代解决方案.试图阻止客户端两次登录RDS服务器.允许多次登录,因为同一用户可以从不同的客户端登录.

vbscript rds

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

如何将退出状态从HTA(vbscript)返回到调用批处理文件

如何将退出状态从HTA(vbscript)返回到调用批处理文件?

我的批处理文件代码

@echo OFF
echo Configuring Test...
call AppConfigurationEditor.hta
call TestConfigurationEditor.hta
Run Code Online (Sandbox Code Playgroud)

1.如果用户点击第一个HTA上的CANCEL按钮,我不想运行第二个HTA.

2.Batch脚本调用/立即显示第二个HTA,而不是等到第一个HTA关闭.

vbscript batch-file hta

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

VBS播放没有对话的声音

有没有办法在VBS中打开声音而没有对话?

这是我的代码......

intAnswer = _
    Msgbox("Do you want to play welcome.mp3?", _
        vbYesNo, "Play Song?")

If intAnswer = vbYes Then
    Msgbox "Opening..."
    `play %userprofile%/directory/welcome.mp3 with no dialogue`
Else
    Msgbox "Not opening..."
End If
Run Code Online (Sandbox Code Playgroud)

vbscript

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

VBScript - 参考自编程序

有没有办法引用在VBScript中运行的当前文件?我可以使用文件的名称,但它需要可操作,尽管目录更改和重命名.这样做的目的是在文件I/O操作中使用该文件.如果不可能,是否有任何可能的替代方案,例如使文件不可重命名或不可移动?

vbscript

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

如何使用UFT自动化Chrome扩展程序

在Web内容方面,新版本的UFT 12.01支持Chrome 36.

那么Chrome的扩展呢?

我在某处读到他们无法实现自动化.

另一方面,当我使用开发者工具(12)时,我可以识别按钮,文本框等.

是否可以使用UFT测试Chrome扩展程序?

PS:我特意尝试自动化一个名为POSTMAN的扩展 - Rest Client(https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en)

vbscript google-chrome qtp google-chrome-extension hp-uft

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

如何将数组从VBScript传递给JavaScript?

我有一个网页,我将文件夹中的文件名称提取到数组中VBScript,然后我将该数组传递给JavaScript变量,以便我可以在屏幕上显示名称.

VBScript代码:

Function allFiles()
    Dim arr, arr2, oTargetFolder
    arr = array()

    set oFSO = CreateObject("Scripting.FileSystemObject")
    oTargetFolder = "C:\Users\msiddiq1\Documents\WSDLs"

    set objFolder = oFSO.GetFolder(oTargetFolder)

    set oFiles = objFolder.Files

    For Each files in oFiles
        ReDim Preserve arr(UBound(arr) + 1)
        arr(UBound(arr)) = files.Name       
    Next

    allFiles = arr
End Function
Run Code Online (Sandbox Code Playgroud)

JS:

var folderFiles = allFiles();
alert(folderFiles.length); // alerts `undefined`
Run Code Online (Sandbox Code Playgroud)

我可以将硬编码值从vbscript传递给javascript,但不能传递给这个数组.

请建议.

javascript arrays vbscript

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

强制vbscript以64位而不是32位打开命令提示符

我一直试图让这个脚本全天工作!

以下是关于我的情况的一些事实......

  • 我的"C:\ Windows\System32 \"文件夹中有一个名为"ffmpeg.exe"的程序.
  • 我在"C:\ Windows\SysWOW64 \"文件夹中没有该程序.

目前这是我的剧本......

Option Explicit

Dim oFSO, oShell, sCommand
Dim sFilePath, sTempFilePath

Set oFSO = CreateObject("Scripting.FileSystemObject")

sFilePath = "C:\test\in_video.mkv"
sTempFilePath = "C:\test\out_video.mp4"

sCommand = "%comspec% /k ffmpeg -n -i """ + sFilePath + """ -c:v copy -c:a copy """ + sTempFilePath + """"
WScript.Echo sCommand
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run sCommand, 1, True
Set oShell = Nothing

Set oFSO = Nothing
Run Code Online (Sandbox Code Playgroud)

如果我在命令提示符下手动运行此脚本,那么它似乎工作正常.但是,如果我让另一个应用程序运行它(例如在这种情况下为uTorrent),它会按预期运行脚本,但是当它尝试处理oShell.Run命令时,它会在32位环境中运行它!然后我明白了...... 不存在

如果我尝试打开一个新的命令提示符(没什么特别的)我似乎默认为64位环境,然后我可以输入"ffmpeg",它会按预期显示帮助内容.

因此,由于某种原因,我无法让脚本在64位环境中运行应用程序(特别是CMD).谁知道我怎么能做到这一点?


更新

似乎我的脚本实际上是在32位模式下运行!即使脚本标题栏显示"C:\ Windows\System32\cscript.exe",这是一个64位环境!!

我使用以下脚本来确定它是在32位环境中运行的...

Dim WshShell
Dim WshProcEnv
Dim system_architecture …
Run Code Online (Sandbox Code Playgroud)

vbscript ffmpeg windows-server-2008-r2

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

如何创建具有"To"属性的ASP类(如CDONTS.NewMail)?

CDONTS.NewMail类让我发送这样的电子邮件:

Set MailObj = Server.CreateObject("CDONTS.NewMail")
MailObj.To = someone@example.com
' set other properties of MailObj
MailObj.Send
Run Code Online (Sandbox Code Playgroud)

我可以在ASP中创建自己的类,但它不会让我定义名为"To"的属性.

有没有办法在我定义的类中创建一个名为"To"的属性的类?

class MyMail
  Public To          ' this doesn't work!
  Public From        ' this works great!
end class
Run Code Online (Sandbox Code Playgroud)

vbscript asp-classic

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

VBScript中的Regex Positive Lookbehind替代方案

所以,VBScript显然根本不支持Lookbehind.

我正在寻找一个可以与VBScript一起使用的替代有效正则表达式.

仅供参考,我将在HP UFT中使用它,所以我别无选择,只能使用VBScript(如果没有其他最简单的方法,我可能需要查看其他选项,例如从VBS执行Java(或其他语言)代码) .

我想要实现的目标:
从给定的一堆文本中,我想提取某些字母数字字符串.此字符串可能包括-,_,.,/,//,等.

我所知道的只是,这个字符串后面跟着一个特定的单词(例如DIA),这个字符串后面会有一个空格.

这里我可以使用VBS代码片段作为替代方案:
此示例代码仅检索第一个匹配项.如果我找不到其他选择,我可以修改它.

serviceType = "DIA"

tempTxt = obj.GetROProperty("innertext")

If InStr(1, tempTxt, serviceType, 0) > 0 Then
    iStartPoint = InStr(1, tempTxt, serviceType, 0) + Len(serviceType)
End If

tempTxt = LTrim(Mid(tempTxt, iStartPoint))

iStartPoint = InStr(1, tempTxt, " ", 1)

MsgBox Left(tempTxt, iStartPoint)
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的正则表达式:

(?<=DIA\s).*?(?=\s)
Run Code Online (Sandbox Code Playgroud)

这是我尝试过并成功运作的演示.我只需要找到VBScript替代品.


更新

这是我在尝试建议的正则表达式后得到的结果:(
返回值看起来不同,因为我使用不同的输入文本.)

在此输入图像描述

这是我正在使用的代码:

Call RegExpMultiSearch(tempTxt, "DIA\s+(\S+)")

Public RegMatchArray

Function RegExpMultiSearch(targetString, ptrn)
    'CREATE THE …
Run Code Online (Sandbox Code Playgroud)

regex vbscript qtp hp-uft

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