是否可以从调试查看器中可见的脚本发出消息?

时间:2010-12-22 09:57:17

标签: javascript

我有一些应用程序通过Windows脚本主机调用的javascript代码。是否有可能以某种方式从此jscript代码发送调试消息,以便我可以在DebugViewer中查看它(dbgview.exe捕获通过OutputDebugString()发送的消息)?

3 个答案:

答案 0 :(得分:1)

Windows脚本宿主JScript具有Debug.writelnDebug.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函数。