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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отключить выделение мышью в bat файле

Ответить
Настройки темы
CMD/BAT - [решено] Отключить выделение мышью в bat файле

Новый участник


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

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


необходимо отключить выделение мышью в bat файле
через настройки не предлагать

Отправлено: 18:17, 02-04-2017

 
x0r x0r вне форума

Забанен


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

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


Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console]
"QuickEdit"=dword:00000000
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:31, 02-04-2017 | #2



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

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


Новый участник


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

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


x0r, а можно это реализовать только для этого батника?

Отправлено: 19:52, 02-04-2017 | #3

x0r x0r вне форума

Забанен


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

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


Можешь попробовать. Яхз, чисто мысля.(только не "для батника", а для "окна терминала" с опр. именем.)
В разделе реестра HKEY_CURRENT_USER\Console\ создать раздел с каким нить именем, mybatneg нопример. Получилось так:

Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console\mybatneg]
"QuickEdit"=dword:00000000
При запуске своего батнега вначале ставишь комманду имени
Код: Выделить весь код
@echo off
@title mybatneg
rem дальше твой код.....
должно получиццо. смотри reg /?

Как-то так:
Код: Выделить весь код
@echo off 
@title mybatneg
@reg add "HKEY_CURRENT_USER\Console\mybatneg" /v "QuickEdit" /t REG_DWORD /d 0 /f > nul
rem дальше твой код.....

Последний раз редактировалось x0r, 03-04-2017 в 02:43.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:17, 03-04-2017 | #4


Ветеран


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

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


Цитата vngreez@vk:
x0r, а можно это реализовать только для этого батника? »
В общем и целом — можно.

Создайте файл DisableQuickEditConsoleMode.vb:
Код: Выделить весь код
Module mainModule
	Declare Function GetStdHandle   Lib "kernel32" (ByVal nStdHandle As Integer) As Integer
	Declare Function GetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Integer, ByRef lpMode As Integer) As Integer
	Declare Function SetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Integer, ByVal dwMode As Integer) As Integer

	Public Const STD_INPUT_HANDLE As Integer = -10&

	Sub Main()
		Dim hConsole As Integer
		Dim iMode As Integer
		Dim bSuccess As Integer

		hConsole = GetStdHandle(STD_INPUT_HANDLE)
		bSuccess = GetConsoleMode(hConsole, iMode)
		bSuccess = SetConsoleMode(hConsole, iMode And Not &H20)
	End Sub
End Module
Скомпилируйте его посредством:
Код: Выделить весь код
C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe "C:\Мои проекты\0058\DisableQuickEditConsoleMode.vb" /target:exe /nologo /verbose
где: «C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe» — Ваш путь к компилятору Visual Basic Compilier, а «C:\Мои проекты\0058\DisableQuickEditConsoleMode.vb» — Ваш путь к созданному файлу DisableQuickEditConsoleMode.vb. На выходе Вы должны получить файл DisableQuickEditConsoleMode.exe, который должен быть вызван в Вашем пакетном файле для сброса режима QuickEdit. Для работы ему будет требоваться установленная версия .Net FrameWork не ниже той, компилятор которой Вы использовали.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:13, 03-04-2017 | #5


Ветеран


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

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


Цитата x0r:
Как-то так: »
«Как-то так» как раз не получится. Только так, как Вы указали выше — сначала импорт в реестр, затем запуск на исполнение пакетного файла. Когда пакетный файл уже работает — новое значение параметра в реестре на него не повлияет, ибо значение считывается из реестра и используется при задании свойства конкретного окна консоли при создании процесса.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:52, 03-04-2017 | #6


Новый участник


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

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


Iska, скомпилировал. Вызываю... ноль эмоций
сделал так:
@echo off
DisableQuickEditConsoleMode.exe
....

Отправлено: 17:52, 03-04-2017 | #7


Ветеран


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

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


Создаём пакетный файл:
0001.cmd
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

pause
"C:\Мои проекты\0058\DisableQuickEditConsoleMode.exe"
pause

endlocal
exit /b 0

Запускаем, останавливаемся на первой паузе, смотрим свойства окна консоли:
Скрытый текст

Видим, что флаг QuickEdit (Быстрая вставка) установлен.

Закрываем свойства окна консоли, нажимаем любую клавишу на клавиатуре, останавливаемся на второй паузе, опять смотрим свойства окна консоли:
Скрытый текст

Видим, что флаг QuickEdit (Быстрая вставка) сброшен.

Что не так?

Отправлено: 00:58, 04-04-2017 | #8


Новый участник


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

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


Iska, мне нужен параметр выше (Выделение мышью)
чтобы не прерывался код программы при нажатие.

Отправлено: 17:39, 04-04-2017 | #9


Ветеран


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

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


vngreez@vk, приношу Вам свои извинения: даже не знаю, что меня так переклинило, что я начал работать с другим параметром, и даже перевод меня не смутил.

Достаточно заменить в вышеприведённом коде битовую маску с 0x20 на 0x40:
Код: Выделить весь код
Module mainModule
	Declare Function GetStdHandle   Lib "kernel32" (ByVal nStdHandle As Integer) As Integer
	Declare Function GetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Integer, ByRef lpMode As Integer) As Integer
	Declare Function SetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Integer, ByVal dwMode As Integer) As Integer

	Public Const STD_INPUT_HANDLE As Integer = -10&

	Sub Main()
		Dim hConsole As Integer
		Dim iMode As Integer
		Dim bSuccess As Integer

		hConsole = GetStdHandle(STD_INPUT_HANDLE)
		bSuccess = GetConsoleMode(hConsole, iMode)
		bSuccess = SetConsoleMode(hConsole, iMode And Not &H40)
	End Sub
End Module
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:09, 04-04-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отключить выделение мышью в bat файле

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле InVariable Скриптовые языки администрирования Windows 4 22-05-2015 20:06
CMD/BAT - проблема с последовательностью в Bat файле TraKtir Скриптовые языки администрирования Windows 5 14-09-2013 13:15
CMD/BAT - Сочетание клавиш в bat файле. Kamerin Скриптовые языки администрирования Windows 2 20-09-2011 02:22
Блог - Как отключить эскизы на панели задач при переключении между окнами мышью Vadikan Microsoft Windows 7 0 02-02-2011 10:30
Любой язык - Проверка сетевых ресурсов в BAT-файле chkur Скриптовые языки администрирования Windows 1 03-12-2008 12:39




 
Переход