Как указано в в этом вопросе , я запускаю Windbg
из Excel, чтобы проанализировать результаты.
В моем макросе Excel есть следующие строки кода:
Windbg_PID1 = Shell("windbg -z """ + Txt_File1.Text + """ -logo """ + Output_FileName1 + """ -c "".load pykd.pyd;!py heap_stat.py -stat""", vbMaximizedFocus)
Windbg_PID2 = Shell("windbg -z """ + Txt_File2.Text + """ -logo """ + Output_FileName2 + """ -c "".load pykd.pyd;!py heap_stat.py -stat""", vbMaximizedFocus)
И после некоторой Windbg
обработки, есть следующая команда для закрытия упомянутых Windbg
сессий:
Shell "TASKKILL /PID " + CStr(Windbg_PID1) + " /PID " + CStr(Windbg_PID2)
Все работает нормально, но есть одна загвоздка: кажется, что все файлы Excel (даже те, которые не имеют никакого отношения к моему анализу Windbg
) сгруппированы в одном приложении Excel и до тех пор, пока мой Windbg
запускается макрос, все мои другие файлы Excel превращаются в Not responding
.
Кто-нибудь знает, как:
- (предпочтительно) Запуск макроса в файле Excel (даже если он содержит функцию
Shell()
листа), без того, чтобы мой файл Excel "не отвечал".
- (В случае, если пункт 1 невозможен) открыть мои другие файлы Excel в отдельном приложении Excel. (Когда я открываю 3 файла Excel и запускаю
tasklist | findstr /I excel
, я должен получить 3 результата)
(К вашему сведению, я уже пытался использовать vbNormalNoFocus
в качестве стиля окна, но это не спасло проблему)