Цитата:
Системе не удается найти указанный диск.
Не удается найти указанную метку пакетного файла - a
|
Предположу, что речь шла про такой код:
Код:
![Выделить весь код](images/misc/selectcode.png)
:Loop
msg * "bla-bla-bla"
goto :Loop
Отчего Вы решили, что здесь есть какой-то баг? Вы запускаете бесконечный цикл отправки
асинхронных сообщений всем сеансам. Пакетный файл можно прервать любым способом, начиная от нажатия «Ctrl-C»/«Ctrl-Break», и до описываемого Вами закрытия окна консоли. Суть в том, что за время, прошедшее до прерывания пакетного файла, последний
уже успел «наштамповать» в бесконечном цикле тысячи, а то и десятки тысяч сообщений, которые продолжают асинхронно поступать к Вам. Понимаете? Процесс отправки сообщения «msg.exe» и процесс, отображающий окно MessageBox'а:
Код:
![Выделить весь код](images/misc/selectcode.png)
---------------------------
Сообщение от User 05.10.2011 06:09
---------------------------
bla-bla-bla
---------------------------
ОК
---------------------------
— это два разных процесса. Можете взять любую из последних версий
Process Explorer'а (где есть поиск процесса посредством целеуказания окна) и убедиться в этом сами.
читать дальше »
P.S. Закрыть множество всё появляющихся MessageBox'ов с сообщениями можно, использовав простой скрипт WSH с зарегистрированным объектом
AutoItX:
Код:
![Выделить весь код](images/misc/selectcode.png)
Option Explicit
Dim strWindowClass
Dim strControlClass
strWindowClass = "[REGEXPTITLE:Сообщение от " & WScript.CreateObject("WScript.Network").UserName & ".*; CLASS:#32770]"
strControlClass = "[CLASS:Button; INSTANCE:1]"
With WScript.CreateObject("AutoItX3.Control")
Do
If .WinExists(strWindowClass) Then
If .ControlClick(strWindowClass, "", strControlClass) Then
'
End If
End If
WScript.Sleep 10
Loop
End With
WScript.Quit 0
Я не стал его усложнять, потому, как закроются все окна сообщений, просто снимите процесс скрипта через Диспетчер задач.