Дослідження помилки
Сьогодні нарешті почав шкрябати свій курсак. Але тільки з'явились хороші наміри... з'явились і нехороші глюки.
Ніби завжди пролінг офіс нормально працював, але сьогодні, коли я натиснув іконку перекладу у ворді, вивалився мені такий ерор:
---------------------------
Microsoft Visual Basic
---------------------------
The language DLL 'VBE6INTL.DLL' could not be found.
---------------------------
OK
---------------------------
і ворд з тріском вилетів. В голові виникли наступні ідеї:
- Запустити інстал Word`у, і пошукати, може я десь не вибрав підтримку Visual Basic
- Проінсталювати Visual Basic
- Пошукати дану dll в себе в папці system32, і якщо її там не буде, то знайти цю dll в інеті і скопіювати туди.
Всі ідеї зразу в темпі вальсу почали виконуватись (курсак же ж чекає!) але нічого не допомогло. Тоді я нарешті згадав що в мене є програма Process Monitor (укр), яка мені вже не раз допомагала. Вона показує активність файлової системи, реєстру і процесів/потоків. Ось як виглядає:
Для того, щоб взнати де ворд шукає дану dll-ку, я включив відображення тільки операцій з файловою системою (1), потім перетягнув мушку (2) на вікно ворда. Тепер у вікні Process Monitor`а з'являються тільки події ворда, коли він робить якісь операції з файлами. Настав час репродюснути баг повторити дії, які приводять до появи повідомлення про помилку. У вікні ProcMon`а з'явились багато записів і я натиснув кнопку capture, щоб зупинити захоплення подій. Трохи переглянувши події, я знайшов те що шукав, а саме - багато рядків типу:
F:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\1058\VBE6INTL.DLL PATH NOT FOUND
По даному шляху дійсно не було такого файлу, зате в папці f:\...\1049 ця dll`ка знайшлась. Просте копіювання у папку 1058 допомогло, рута/плай знову працює, життя знову прекрасне :)
Ось такими 5-ма реченнями я описав дуже корисну програму (яку я відношу до розряду must have!), і може комусь дана замітка поможе. До речі це не єдина класна утиліта від Sysinternals. Хто ще не в темі, рекомендую глянути на Process Explorer, Autoruns, та ін.
