Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Запуск из контекстного меню - крах х64 оболочки запуска

Ответить
Настройки темы
Любой язык - Запуск из контекстного меню - крах х64 оболочки запуска

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: gora
Дата: 21-03-2013
Прошу помощи в поиске причин и возможных решений

Проблема:
Я создаю в контекстном меню пункт "Запустить с параметрами (Test) ..." для запуска exe файлов с параметрами. Но в некоторых случаях такой запуск приводит к краху оболочки из которой он произведен.
Тестировал запуск из Total Commander (далее ТС) обеих разрядностей (х64 и х86) и Explorer. Крах наблюдается только в х64 приложениях и ни когда в х86, хотя файлы используются одни и те же. Если запуск произведен из контекстного меню в оболочке, то крашится оболочка, если из TC, то крашится ТС.
При запуске из батника (выполняется та же самая команда запуска vbs скрипта, что и из контекстного меню) или самого vbs скрипта краха не наблюдается.
Удалось выяснить, что крах вызывает определенная команда в exe файле. У меня это SFX - установщик архиватора 7-zip с батником внутри. В батнике есть команда для удаления ранее установленных версий архиватора:
Код: Выделить весь код
For /L %%i In (20,1,%numF%) Do MsiExec /qn /x{23170F69-40C1-270%dI%-09%%i-000001000000}
подробнее можно посмотреть в самом батнике (setup7z.cmd) исходники все прикреплены.
При отработке именно этой команды и происходит крах. Если удалять нечего (нет установленного 7-zip), то команда отрабатывает вхолостую без ошибок.

Все, что может потребоваться для тестов, я прикрепил в архиве.
Цитата:
Source\ - папка с исходниками
AllInOne.vbs - собственно скрипт, запускаемый из контекстного меню
Install.exe - дополнительный файл для добавления в реестр записей о создаваемом пункте контекстного меню. Он же их может удалить, при необходимости, после тестов.
startBat.bat - дополнительный батник для запуска AllInOne.vbs не через контекстное меню, но выполняющий аналогичную команду запуска vbs скрипта, как и из контекстного меню
7zipArch.exe - "подопытный кролик" инсталлятор архиватора 7-zip версии 9.20.
1 Архив нужно распаковать на х64 системе в любое удобное место (лучше в корень любого диска).
2 Запустить Install.exe, для добавления пункта в контекстное меню
3 Далее запускать 7zipArch.exe из контекстного меню, вводит в окно ключ -ai0 (других файл не примет) и, наблюдая за происходящим, попытаться решить проблему.

После запуска 7zipArch.exe работу батника можно видеть в консольном окне. После упомянутой выше строки в нем стоит Pause и нужно нажать любую клавишу для продолжения установки архиватора.

Буду благодарен за любую помощь.

Ссылка на архив

Отправлено: 14:52, 21-03-2013

 


Moderator


Сообщения: 53589
Благодарности: 15546

Профиль | Отправить PM | Цитировать


Цитата gora:
Если запуск произведен из контекстного меню в оболочке, то крашится оболочка, если из TC, то крашится ТС
Давайте посмотрим дампы процессов:
  1. скачайте утилиту ProcDump и распакуйте в отдельную папку, например C:\ProcDump;
  2. запустите командную строку (cmd.exe) от имени Администратора и выполните:
    Код: Выделить весь код
    C:\ProcDump\procdump.exe -accepteula -e explorer.exe C:\ProcDump\
    для Explorer и
    Код: Выделить весь код
    C:\ProcDump\procdump.exe -e -w totalcmd.exe C:\ProcDump\
    для TC;
  3. вызовите сбой Explorer и TC;
  4. выложите сохраненные DMP-файлы из папки C:\ProcDump в архиве на любой файлообменник.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:28, 21-03-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
выложите сохраненные DMP-файлы из папки C:\ProcDump »
Файлы в ней не создались. Вот вывод в консольном окне:
Код: Выделить весь код
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows>c:\ProcDump\procdump.exe -accepteula -e explorer.exe c:\procdump\

ProcDump v5.13 - Writes process dump files
Copyright (C) 2009-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards

Process:               explorer.exe (4244)
CPU threshold:         n/a
Performance counter:   n/a
Commit threshold:      n/a
Threshold seconds:     n/a
Number of dumps:       1
Hung window check:     Disabled
Exception monitor:     Unhandled
Exception filter:      Disabled
Terminate monitor:     Disabled
Dump file:             c:\procdump\explorer_YYMMDD_HHMMSS.dmp


Press Ctrl-C to end monitoring without terminating the process.

[20:51:30] Exception: E06D7363.?AVGenericException@wmi@@
[20:51:30] Exception: 0000071A
[20:51:30] Exception: E06D7363.?AVGenericException@wmi@@
[20:51:30] Exception: 0000071A
[20:51:30] Exception: E06D7363.?AVGenericException@wmi@@
[20:51:30] Exception: 0000071A
[20:51:30] Exception: E06D7363.?AVGenericException@wmi@@
[20:51:30] Exception: 8001010D
[20:51:30] Exception: 8001010D
The process has exited.


C:\Windows>C:\ProcDump\procdump.exe -e -w totalcmd64.exe C:\ProcDump

ProcDump v5.13 - Writes process dump files
Copyright (C) 2009-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards

Waiting for process named totalcmd64.exe...

Process:               TOTALCMD64.EXE (2984)
CPU threshold:         n/a
Performance counter:   n/a
Commit threshold:      n/a
Threshold seconds:     n/a
Number of dumps:       1
Hung window check:     Disabled
Exception monitor:     Unhandled
Exception filter:      Disabled
Terminate monitor:     Disabled
Dump file:             C:\ProcDump\TOTALCMD64_YYMMDD_HHMMSS.dmp


Press Ctrl-C to end monitoring without terminating the process.

[21:02:07] Exception: 000006BA
The process has exited.


C:\Windows>

Отправлено: 21:08, 21-03-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Запуск из контекстного меню - крах х64 оболочки запуска

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск в Google из контекстного меню didro75 Скриптовые языки администрирования Windows 9 30-09-2013 10:48
Службы - [решено] Подвисания во время вызова контекстного меню или запуска программ OsNewbie Microsoft Windows 7 2 25-01-2012 19:38
Создание и прожиг ISO из контекстного меню Vadikan Автоматическая установка Windows 2000/XP/2003 20 21-09-2010 02:22
Разное - [решено] Как удалить из контекстного меню olezhka34 Microsoft Windows 2000/XP 2 25-09-2008 21:00
Отключение контекстного меню в панели быстрого запуска. GreenIce Microsoft Windows NT/2000/2003 5 29-05-2007 15:43




 
Переход