Как я могу подавить «завершение пакетного задания» в Win7 cmd.exe

Как обсуждалось в еще один вопрос, возможно ли исправить cmd.exe, чтобы подавить "Завершить пакетное задание (Да/Нет)?" сообщение. Инструкции по установке исправлений доступны для Windows XP.

К сожалению, эти инструкции по исправлению устарели для Windows 7, и я недостаточно знаю сборку, чтобы обновить их. (Я знаю, как использовать шестнадцатеричный редактор, и смог следовать указаниям для WinXP.)

Основываясь на этих указаниях WinXP, как я могу обновить cmd.exe в Windows 7, чтобы исправить эту неприятную ошибку?


person Dan Fabulich    schedule 16.10.2009    source источник
comment
Это выглядит почти идентично stackoverflow.com/questions/1234571/   -  person sorin    schedule 28.12.2009


Ответы (2)


Автор веб-страницы дал мне замену смещения:

.text:000000004AD1CF53 48 83 3D 8D 02 01 00 00                 cmp     cs:CurrentBatchFile, 0
.text:000000004AD1CF5B 74 3D                                   jz      short loc_4AD1CF9A
.....
.text:000000004AD1CF5D BA 7B 23 00 00                          mov     edx, 237Bh
.text:000000004AD1CF62 33 C9                                   xor     ecx, ecx
.text:000000004AD1CF64 44 8D 42 AD                             lea     r8d, [rdx-53h]
.text:000000004AD1CF68 E8 E3 7B 00 00                          call    PromptUser
.text:000000004AD1CF6D 83 F8 01                                cmp     eax, 1
.text:000000004AD1CF70 74 0B                                   jz      short loc_4AD1CF7D
.text:000000004AD1CF72 E8 B9 51 FE FF                          call    ResetCtrlC
^F.text:000000004AD1CF77 90                                      nop
.text:000000004AD1CF78 E9 46 54 FE FF                          jmp     loc_4AD023C3
.....
.text:000000004AD1CF7D                         loc_4AD1CF7D:                           ; CODE XREF:
CheckCtrlC+1ABC0^Xj
.text:000000004AD1CF7D 48 8B 1D 64 02 01 00                    mov     rbx, cs:CurrentBatchFile
.text:000000004AD1CF84 EB 0F                                   jmp     short loc_4AD1CF95

В 64-битном win7 cmd.exe это 0x20 байт, начиная со смещения 0x1c35d

person Dan Fabulich    schedule 19.10.2009

Написать реальный исполняемый файл, который затем запускает ваш bat-файл и передает ввод и вывод туда и обратно, очевидно, не передавая Ctrl+Break?

person hova    schedule 16.10.2009