我有一些应用程序通过Windows脚本主机调用的javascript代码。是否有可能以某种方式从此jscript代码发送调试消息,以便我可以在DebugViewer中查看它(dbgview.exe
捕获通过OutputDebugString()
发送的消息)?
答案 0 :(得分:1)
Windows脚本宿主JScript具有Debug.writeln
和Debug.write
方法,用于将输出发送到脚本调试器,但我不知道DebugView是否可以捕获这些字符串。
答案 1 :(得分:1)
如果您真的想要这样,可以通过PowerShell实现。这是一个VBScript示例,您可以轻松地适应JScript:
Option Explicit
OutputDebugString "some message"
Sub OutputDebugString(message)
Dim WshShell, cmd
message = Replace(message, "'", "' + ""'"" + '")
message = Replace(message, vbCr, "' + ""`r"" + '")
message = Replace(message, vbLf, "' + ""`n"" + '")
Set WshShell = WScript.CreateObject("WScript.Shell")
cmd = "Add-Type -Name C -NS """" -MemberDefinition '[DllImport(""kernel32.dll"")]public static extern void OutputDebugString(String s);'"
cmd = cmd & "; [C]::OutputDebugString('" & message & "')"
cmd = "PowerShell """ & Replace(cmd, """", "\""") & """" ' \""
WshShell.Run cmd, 0, True
End Sub
答案 2 :(得分:0)
调查显示,ECMAScript和Windows Scripting Host都没有内置方式将消息发送到“调试输出”。也无法从Windows SCripting Host调用WinAPI函数。