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

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

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

Удачи в отладке и помните, что не оставляйте ни в одном из окон window.prompts или MsgBox, когда публикуете свой гаджет!

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

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

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

Другие вопросы по тегам