vngreez@vk |
02-04-2017 18:17 2725240 |
Отключить выделение мышью в bat файле
необходимо отключить выделение мышью в bat файле
через настройки не предлагать
|
Код:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"QuickEdit"=dword:00000000
|
vngreez@vk |
02-04-2017 19:52 2725271 |
x0r, а можно это реализовать только для этого батника?
|
Можешь попробовать. Яхз, чисто мысля.(только не "для батника", а для "окна терминала" с опр. именем.)
В разделе реестра 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 дальше твой код.....
|
Цитата:
Цитата 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 не ниже той, компилятор которой Вы использовали.
|
«Как-то так» как раз не получится. Только так, как Вы указали выше — сначала импорт в реестр, затем запуск на исполнение пакетного файла. Когда пакетный файл уже работает — новое значение параметра в реестре на него не повлияет, ибо значение считывается из реестра и используется при задании свойства конкретного окна консоли при создании процесса.
|
vngreez@vk |
03-04-2017 17:52 2725875 |
Iska, скомпилировал. Вызываю... ноль эмоций
сделал так:
@echo off
DisableQuickEditConsoleMode.exe
....
|
Создаём пакетный файл:
0001.cmd
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
pause
"C:\Мои проекты\0058\DisableQuickEditConsoleMode.exe"
pause
endlocal
exit /b 0
Запускаем, останавливаемся на первой паузе, смотрим свойства окна консоли:
Видим, что флаг QuickEdit (Быстрая вставка) установлен.
Закрываем свойства окна консоли, нажимаем любую клавишу на клавиатуре, останавливаемся на второй паузе, опять смотрим свойства окна консоли:
Видим, что флаг QuickEdit (Быстрая вставка) сброшен.
Что не так?
|
vngreez@vk |
04-04-2017 17:39 2726168 |
Iska, мне нужен параметр выше (Выделение мышью)
чтобы не прерывался код программы при нажатие.
|
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
|
vngreez@vk |
04-04-2017 19:50 2726209 |
Iska, Спасибо большое :yahoo:
|
alekseyesin@vk |
10-12-2019 18:25 2899828 |
Цитата:
Цитата vngreez@vk
необходимо отключить выделение мышью в bat файле
через настройки не предлагать »
|
А чем не устраивает установка флага через настройки?
Создаешь ярлык к bat файлу который лежит на сервере, делаешь там любые настройки и прописываешь запуск скрипта только через ярлык.
Ведь нужного фреймворка может и не оказаться на целевой машине, а ярлык это всегда надежно и минимум программ.
|
alekseyesin@vk, Вы с автором через vk свяжитесь (Вам там проще будет), поскольку здесь он уже два года как не появлялся, и потому навряд ли Вам ответит, кроме вышеизложенного:
Цитата:
Цитата vngreez@vk
через настройки не предлагать »
|
|
alekseyesin@vk |
11-12-2019 12:24 2899928 |
Iska, я видел это сообщение и тоже процитировал.
Мне интересно узнать для чего идти по более сложному пути, если есть простой.
|
alekseyesin@vk, я ж написал: если интересно — попробуйте связаться с ним через vk, здесь он уже два года не появлялся.
|
alekseyesin@vk |
18-12-2019 12:24 2901045 |
Цитата:
Цитата Iska
alekseyesin@vk, я ж написал: если интересно — попробуйте связаться с ним через vk, здесь он уже два года не появлялся. »
|
Я подожду здесь еще несколько лет, мне не критично :)
Тем более что в вк его страница уже не активна
|
Цитата:
Цитата alekseyesin@vk
Я подожду здесь еще несколько лет, мне не критично »
|
«Иногда они возвращаются»™ :).
|
Время: 01:27.
© OSzone.net 2001-