Отладка гаджетов боковой панели Windows без Visual Studio

Я пытаюсь создать гаджет боковой панели без использования Visual Studio. Я искал способы их отладки, но все говорит о том, что отладчик Visual Studio JIT-единственный способ сделать это.

кто-нибудь смог отладить гаджеты боковой панели без Visual Studio?

2 ответов


в течение многих лет я не использовал 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() метод действительно помогает, если вы хотите изучить состояние объекта во время выполнения кода.

вместо из window.prompt, вы также можете использовать VBScript MsgBox() функция:

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), в котором произошла ошибка.

удачи отладки, и не забудьте не оставлять в любом окне.приглашения или MsgBoxes при публикации гаджет!


в Windows 7 добавлен новый раздел реестра, который отображает ошибки сценария во время выполнения на данном ПК:

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

С этим значением вы увидите диалоги при возникновении ошибок скрипта.