Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Как прервать работу
Показать сообщение отдельно

Ветеран


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

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


Цитата retab:
Собственно вот код: »
Цитата:
Системе не удается найти указанный диск.
Не удается найти указанную метку пакетного файла - a
Предположу, что речь шла про такой код:
Код: Выделить весь код
:Loop
msg * "bla-bla-bla"
goto :Loop
Отчего Вы решили, что здесь есть какой-то баг? Вы запускаете бесконечный цикл отправки асинхронных сообщений всем сеансам. Пакетный файл можно прервать любым способом, начиная от нажатия «Ctrl-C»/«Ctrl-Break», и до описываемого Вами закрытия окна консоли. Суть в том, что за время, прошедшее до прерывания пакетного файла, последний уже успел «наштамповать» в бесконечном цикле тысячи, а то и десятки тысяч сообщений, которые продолжают асинхронно поступать к Вам. Понимаете? Процесс отправки сообщения «msg.exe» и процесс, отображающий окно MessageBox'а:
Код: Выделить весь код
---------------------------
Сообщение от User 05.10.2011 06:09
---------------------------
bla-bla-bla
---------------------------
ОК   
---------------------------
— это два разных процесса. Можете взять любую из последних версий Process Explorer'а (где есть поиск процесса посредством целеуказания окна) и убедиться в этом сами.

читать дальше »
P.S. Закрыть множество всё появляющихся MessageBox'ов с сообщениями можно, использовав простой скрипт WSH с зарегистрированным объектом AutoItX:
Код: Выделить весь код
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
Я не стал его усложнять, потому, как закроются все окна сообщений, просто снимите процесс скрипта через Диспетчер задач.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:26, 05-10-2011 | #2

Название темы: Как прервать работу