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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Снять птичку/галочку Общие -> Правка -> Выделение мышью (Отключить выделение мышью)

Ответить
Настройки темы
Любой язык - Снять птичку/галочку Общие -> Правка -> Выделение мышью (Отключить выделение мышью)

Ветеран


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

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


Изменения
Автор: SharkyEXE
Дата: 18-11-2023
Здравствуйте

Операционная система: Microsoft Windows 7 Professional Service Pack 1 x64 Russian

Что делает код ниже
Анимация
https://disk.yandex.ru/i/n4hXyzdMX8oxuw
Видео
https://disk.yandex.ru/i/-etD5nUxRGIxlg

Есть код в интернете
https://winsourcecode.blogspot.com/2...uick-edit.html

Скрытый текст
Код: Выделить весь код
QuickEdit.exe Turns on or off Quick Edit mode in the console.
This uses the inbuilt compilers in Windows 10 - there are three VB.NET compilers and three C# compilers - just copy each text file into the same folder and double click the batch file to make the program.
REM QuickEdit.bat
REM This file compiles QuickEdit.vb to QuickEdit.exe
REM QuickEdit.exe turns on or off Quick Edit mode in the command prompt.
REM To Use
Rem          QuickEdit [on|off]
REM              Without parameters reports on the state of Quick Edit mode.
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:exe /out:"%~dp0\QuickEdit.exe" "%~dp0\QuickEdit.vb" 
pause

'QuickEditOff.vb
Imports System
Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.Win32

Public Module MyApplication 
 
	Public Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long
	Public Declare Function GetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As IntPtr, ByRef lpMode As Integer) As Integer
	Public Declare Function SetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Long, ByVal dwMode As Integer) As Integer

	Public Const STD_ERROR_HANDLE = -12&
	Public Const STD_INPUT_HANDLE = -10&
	Public Const STD_OUTPUT_HANDLE = -11&

	'Input
	Public Const ENABLE_EXTENDED_FLAGS = &h0080
	Public Const ENABLE_ECHO_INPUT = &h0004
	Public Const ENABLE_INSERT_MODE = &h0020
	Public Const ENABLE_LINE_INPUT = &h0002
	Public Const ENABLE_MOUSE_INPUT = &h0010
	Public Const ENABLE_PROCESSED_INPUT = &h0001
	Public Const ENABLE_QUICK_EDIT_MODE = &h0040
	Public Const ENABLE_WINDOW_INPUT = &h0008
	Public Const ENABLE_VIRTUAL_TERMINAL_INPUT = &h0200
	'Output
	Public Const ENABLE_PROCESSED_OUTPUT = &h0001
	Public Const ENABLE_WRAP_AT_EOL_OUTPUT = &h0002
	Public Const ENABLE_VIRTUAL_TERMINAL_PROCESSING = &h0004
	Public Const DISABLE_NEWLINE_AUTO_RETURN = &h0008
	Public Const ENABLE_LVB_GRID_WORLDWIDE = &h0010

Sub Main()
	Dim hIn As IntPtr
	Dim Ret As Integer
	Dim Mode As Integer
	hIn  = GetStdHandle(STD_INPUT_HANDLE)
	Ret = GetConsoleMode(hIn, Mode)
	If Command() = "" then
		If (Mode And ENABLE_QUICK_EDIT_MODE) = ENABLE_QUICK_EDIT_MODE then
			Console.writeline("Quick Edit On")
		Else
			Console.writeline("Quick Edit Off")
		End If
	ElseIf LCase(Command()) = "on"
		If (Mode And ENABLE_QUICK_EDIT_MODE) = 0 then Ret = SetConsoleMode(hIn, Mode + ENABLE_QUICK_EDIT_MODE)
		If Ret = 0 then Console.WriteLine(Hex(Ret) & " - " & err.lastdllerror)
	ElseIf LCase(Command()) = "off"
		If (Mode And ENABLE_QUICK_EDIT_MODE) = ENABLE_QUICK_EDIT_MODE then Ret = SetConsoleMode(hIn, Mode - ENABLE_QUICK_EDIT_MODE)
		If Ret = 0 then Console.WriteLine(Hex(Ret) & " - " & err.lastdllerror)
	End If
End Sub
End Module


Прилагаю готовый архив
https://disk.yandex.ru/d/rSOhZjiwCAeH-Q

В готовом архиве извлечь два файла и запустить файл QuickEdit_While_Wend.vb.bat

Появятся много exe файлов одинаковой работы для использования.

Разница - только под какую версию .Net Framework компилировалось
Код: Выделить весь код
v1.0.3705
v1.1.4322
v2.0.50727
v3.0
v3.5
v4.0.30319
В процессе использования одного и того-же exe файла QuickEdit_While_Wend_v2.0.50727.exe на разных:
- версиях Windows (7, 10, 11)
- права администратора или права пользователя
- х86 или х64
- антивирус доктор веб 13 или нет антивируса

появлялись картинки ошибок

https://disk.yandex.ru/i/lUhahz-8uQ86GA
https://disk.yandex.ru/i/LLub1_kQKWYVCQ

Пожалуйста, будьте так, любезны, возможно или нет реализовать exe файл без разницы, какой язык программирования, PureBasic, Python, C+, C++, QBasic, Delphi и прочее, чтобы, откровенно, работало на максимальном количестве
Код: Выделить весь код
- версиях Windows (7, 10, 11)
- права администратора или права пользователя
- х86 или х64
- антивирус доктор веб 13 или нет антивируса
и самое главное - не зависло, установлена или нет некая версия .Net Framework, чтобы НЕ было предложения установить некую версию .Net Framework - так сказать, смешно, ради 1-2-3 Килобайтного файла на разном количестве
Код: Выделить весь код
- версиях Windows (7, 10, 11)
- права администратора или права пользователя
- х86 или х64
- антивирус доктор веб 13 или нет антивируса
если увижу ошибку - сразу устанавливать некую версию .Net Framework

Спасибо.

Отправлено: 00:14, 18-11-2023

 

Старожил


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

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


это просто упражнение в освоении страницы https://www.pinvoke.net/default.aspx...Functions.html

Код: Выделить весь код
# https://www.pinvoke.net/default.aspx/kernel32/ConsoleFunctions.html
add-type -typedefinition @'
using System;
using  System.IO;
using System.Runtime.InteropServices;
using  Microsoft.Win32;

public class Data {

  public static int STD_ERROR_HANDLE = -12;
  public static int STD_INPUT_HANDLE = -10;
  public static int  STD_OUTPUT_HANDLE = -11;


  [Flags]
    private enum ConsoleModes : uint {
        ENABLE_PROCESSED_INPUT = 0x0001,
        ENABLE_LINE_INPUT = 0x0002,
        ENABLE_ECHO_INPUT = 0x0004,
        ENABLE_WINDOW_INPUT = 0x0008,
        ENABLE_MOUSE_INPUT = 0x0010,
        ENABLE_INSERT_MODE = 0x0020,
        ENABLE_QUICK_EDIT_MODE = 0x0040,
        ENABLE_EXTENDED_FLAGS = 0x0080,
        ENABLE_AUTO_POSITION = 0x0100,
        ENABLE_VIRTUAL_TERMINAL_INPUT = 0x0200,

        ENABLE_PROCESSED_OUTPUT = 0x0001,
        ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002,
        ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004,
        DISABLE_NEWLINE_AUTO_RETURN = 0x0008,
        ENABLE_LVB_GRID_WORLDWIDE = 0x0010
    }

  [DllImport("kernel32.dll", SetLastError = true)]    
  static extern IntPtr GetStdHandle(int nStdHandle);    
  [DllImport("kernel32.dll")]    
  static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);    
  [DllImport("kernel32.dll")]    
  static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);    

  public static void enableQuickEdit() { 
    IntPtr _ConsoleHandle = GetStdHandle(STD_INPUT_HANDLE);   
    uint _ConsoleMode = 0;
    GetConsoleMode(_ConsoleHandle, out _ConsoleMode);    
    Console.Error.WriteLine(_ConsoleMode);
    _ConsoleMode |= (uint )ConsoleModes.ENABLE_QUICK_EDIT_MODE;    
    Console.Error.WriteLine(_ConsoleMode);
    SetConsoleMode(_ConsoleHandle, _ConsoleMode);  
  }
  public static void disableQuickEdit() { 
    IntPtr _ConsoleHandle = GetStdHandle(STD_INPUT_HANDLE);   
    uint _ConsoleMode = 0;
    GetConsoleMode(_ConsoleHandle, out _ConsoleMode);    
    Console.Error.WriteLine(_ConsoleMode);
    _ConsoleMode &= 0xffff - (uint) (ConsoleModes.ENABLE_QUICK_EDIT_MODE); 
    Console.Error.WriteLine(_ConsoleMode);
    SetConsoleMode(_ConsoleHandle, _ConsoleMode);  
  }
}
'@


[Data]::enableQuickEdit() 
[Data]::disableQuickEdirt()
приделать логику когда вызывать enableQuickEdit а когда disableQuickEdirt сможете сами надеюсь
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:47, 21-11-2023 | #21



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

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


Ветеран


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

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


Sham, здравствуйте

По поводу этого

http://forum.oszone.net/post-3020271-16.html

Код: Выделить весь код
ну вот по типу этого
Код:Выделить весь код
start /b /wait quickmode.c.x64.exe
start /b /wait tasklist
выделение работает?
Вот снял видео, на пути к лучшему
https://disk.yandex.ru/i/668O-3bVacbvAg
Скрытый текст
Код: Выделить весь код
start /b /wait quickmode.c.x64.exe
Rem start /b /wait tasklist

Pause

start "" /b /wait "C:\Program Files\7-Zip\7z.exe" a "1.7z" -im!"%~dp0*.*doc*" "%~dp0*.*xls*" "%~dp0*.*tmp*" "%~dp0*.*ppt*" "%~dp0*.*acc*" "%~dp0*.*rtf*" "%~dp0*.*txt*" "%~dp0*.*cdr*" "%~dp0*.*cdw*" "%~dp0*.*bak*" "%~dp0*.*jpg*" "%~dp0F\" "%~dp0A\" "%~dp0B\" "%~dp0Be\" "%~dp0PP\" "%~dp0SIZ\" "%~dp001_A\" "%~dp002_Be\" "%~dp003_B\" "%~dp004_PP\" "%~dp005_SIZ\" "%~dp0Old\" -x!.\*.* -im!.\* -m0=LZMA:d=1536m:fb=273 -mx=9 -mmt=2 -ssw

Pause

Exit

Микро пожелание

Сделайте все тоже самое, что Вы сделали, х86 и х64 файлы, НО, добавить опцию "-QuickModeEnabled"

Чтобы мне в конце файла, перед Exit, ДОписать
start /b /wait quickmode.c.x64.exe -QuickModeEnabled

Скрытый текст

start /b /wait quickmode.c.x64.exe
Rem start /b /wait tasklist

Pause

start "" /b /wait "C:\Program Files\7-Zip\7z.exe" a "1.7z" -im!"%~dp0*.*doc*" "%~dp0*.*xls*" "%~dp0*.*tmp*" "%~dp0*.*ppt*" "%~dp0*.*acc*" "%~dp0*.*rtf*" "%~dp0*.*txt*" "%~dp0*.*cdr*" "%~dp0*.*cdw*" "%~dp0*.*bak*" "%~dp0*.*jpg*" "%~dp0F\" "%~dp0A\" "%~dp0B\" "%~dp0Be\" "%~dp0PP\" "%~dp0SIZ\" "%~dp001_A\" "%~dp002_Be\" "%~dp003_B\" "%~dp004_PP\" "%~dp005_SIZ\" "%~dp0Old\" -x!.\*.* -im!.\* -m0=LZMA:d=1536m:fb=273 -mx=9 -mmt=2 -ssw

start /b /wait quickmode.c.x64.exe -QuickModeEnabled

Pause

Exit
и чтобы у меня, в конце ОТработки создания архива, было снова ДОступно выделение мышкой

PS. Просто на данный момент, архив создается, но после создания архива, в консоли НЕ работает выделение мышкой

Последний раз редактировалось SharkyEXE, 21-11-2023 в 19:34.


Отправлено: 19:19, 21-11-2023 | #22


Ветеран


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

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


Sham, здравствуйте

На базе Вашего кода

Код: Выделить весь код
#include <stdio.h>
#include <windows.h>

int main() {
    DWORD prev_mode;
    HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE);
    GetConsoleMode(hInput, &prev_mode);
    int err = SetConsoleMode(hInput, prev_mode & ENABLE_EXTENDED_FLAGS);
    puts(err == 0 ? "SetConsoleMode() returned zero" : "Quick mode is disabled");
    return 0;
}
попытался сделать ВКЛючение "Выделение мышкой"

Код: Выделить весь код
#include <stdio.h>
#include <windows.h>

int main() {
    DWORD prev_mode;
    HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE);
    GetConsoleMode(hInput, &prev_mode);
    int err = SetConsoleMode(hInput, prev_mode & ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS);
    puts(err == 0 ? "SetConsoleMode() returned zero" : "Quick mode is enabled");
    return 0;
}
Компилирую в ехе файл.
В конце создания архива, запускается ехе файл, но "Выделение мышкой" НЕ включено

Отправлено: 21:55, 21-11-2023 | #23


Старожил


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

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


ошибка в логике

Отправлено: 22:04, 21-11-2023 | #24



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Снять птичку/галочку Общие -> Правка -> Выделение мышью (Отключить выделение мышью)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Route/Bridge - Доступ из интернета к видеорегистатору. ИНЕТ > ADSL > LAN1 > LAN2 > ВИДЕОРЕГИСТРАТОР vladsevsk Сетевые технологии 1 23-01-2015 19:34
HDD - Samsung SP60A3H >>to>> SP80A4H -- это реально? SunAres Накопители (SSD, HDD, USB Flash) 63 02-04-2011 19:31
CMD/BAT - как удалить ">" из строки типа “>>…>>c:\program files\dir\mir\doc.skok” akrav Скриптовые языки администрирования Windows 1 14-02-2008 16:35
Разное - [решено] Панель управления>>Администрирование>>Пусто Bester Microsoft Windows 2000/XP 8 15-09-2007 14:30




 
Переход