在没有Visual Studio的情况下调试Windows边栏小工具

时间:2010-02-17 20:23:13

标签: windows-desktop-gadgets

我正在尝试在不使用Visual Studio的情况下创建侧边栏小工具。我一直在寻找调试它们的方法,但是一切都说Visual Studio JIT调试器是唯一的方法。

有没有人能够在没有Visual Studio的情况下调试侧栏小工具?

2 个答案:

答案 0 :(得分:16)

多年来,我没有使用Visual Studio来处理小工具。有几种方法可以在没有它的情况下调试小工具,只是没有那么广泛。例如,如果没有为进程附加适当的调试器,则无法使用debugger;命令。您可以使用DebugView之类的程序来捕获System.Debug.outputString()方法输出的消息:

function test ()
{
    System.Debug.outputString("Hello, I'm a debug message");
}

这允许您在代码的某些阶段输出变量转储和其他有用的信息,因此您可以随意跟踪它。

作为替代方法,您可以使用window.prompt()滚动自己的调试/脚本暂停消息。小工具已停用alert(),并且confirm()被覆盖以始终返回true,但他们必须忽略prompt()

function test ()
{
     // execute some code

     window.prompt(someVarToOutput, JSON.stringify(someObjectToExamine));

     // execute some more code
}

如果要在代码执行期间检查对象的状态,JSON.stringify()方法确实有帮助。

您可以使用VBScript MsgBox()函数代替window.prompt

window.execScript( //- Add MsgBox functionality for displaying error messages
      'Function vbsMsgBox (prompt, buttons, title)\r\n'
    + ' vbsMsgBox = MsgBox(prompt, buttons, title)\r\n'
    + 'End Function', "vbscript"
);

vbsMsgBox("Some output message", 16, "Your Gadget Name");

最后,您可以使用window.onerror事件处理程序捕获脚本中的所有错误。

function window.onerror (msg, file, line)
{
    // Using MsgBox
    var ErrorMsg = 'An error has occurred'+(line&&file?' in '+file+' on line '+line:'')+'.  The message returned was:\r\n\r\n'+ msg + '\r\n\r\nIf the error persists, please report it.';
    vbsMsgBox(ErrorMsg, 16, "Your Gadget Name");

    // Using System.Debug.outputString
    System.Debug.outputString(line+": "+msg);

    // Using window.prompt
    window.prompt(file+": "+line, msg);        

    // Cancel the default action
    return true;
}

window.onerror事件甚至允许您输出发生错误的行号和文件(仅适用于IE8)。

祝你好运调试,并且在发布小工具时切记不要留在任何window.prompts或MsgBox中!

答案 1 :(得分:9)

在Windows 7中添加了一个新的注册表项,它在运行时在给定的PC上显示脚本错误:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Sidebar]
"ShowScriptErrors"=dword:00000001

设置该值后,您将看到脚本错误发生时的对话框。