Любой язык - CMD\BAT\SHELL неправильная кодировка

Ответить
Аватара пользователя
Darkar25

Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение Darkar25 »

на просторах интернета я нашел батник который может посылать нажатия клавиш на любое открытое окно в виндусе...кароч...с цифрами всё исправно работает...но как дело дошло до букв...толи с кодировкой что толи я криворукий...я тыкал тыкал и в итоге понял как писать русские маленькие буквы... нужно писать большие английские...остальные попытки ничего не дали...кто может помочь?



Код:

Код: Выделить всё

@if (@X)==(@Y) @end /* JScript comment 
        @echo off
        cscript //E:JScript //nologo "%~f0" "%~nx0" %* 
        exit /b %errorlevel% 
@if (@X)==(@Y) @end JScript comment */ 
var sh=new ActiveXObject("WScript.Shell"); 
var ARGS = WScript.Arguments; 
var scriptName=ARGS.Item(0); 
var title="";
var keys="";
function parseArgs(){ 
        if (ARGS.Length < 3) { 
                WScript.Quit(43); 
        }
		title=ARGS.Item(1);
		keys=ARGS.Item(2);
}
function escapeRegExp(str) {
	return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function replaceAll(str, find, replace) {
	return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
parseArgs();
keys=replaceAll(keys,"^^","^");
sh.AppActivate(title);
sh.SendKeys(keys);
WScript.Quit(0);

надеюсь что кто-нибудь сможет помочь...

[UPD] если вписывать последовательность символов напрямую в батник а не выдавать их из другого батника то всё работает исправно...

[UPD] я всё починил сам)))тему отмечаю как решено...решение:сохранить файл в кодировке UTF-8 и в батнике написать chcp 65001
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
yurfed

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение yurfed »

Цитата Darkar25:



надеюсь что кто-нибудь сможет помочь...
Любой язык - CMD\BAT\SHELL неправильная кодировка




Попробуем.

Первой строкой пропишите

chcp 1251
Аватара пользователя
Darkar25

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение Darkar25 »

Цитата yurfed:



Попробуем.

Первой строкой пропишите

chcp 1251
Любой язык - CMD\BAT\SHELL неправильная кодировка




первой строкой нельзя...батник работать перестанет...написал там где можно...но буквы всё так-же перемешаны...
Аватара пользователя
yurfed

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение yurfed »

Цитата Darkar25:



первой строкой нельзя...батник работать перестанет
Любой язык - CMD\BAT\SHELL неправильная кодировка




С какого перепугу перестанет?

Можете проверить или посмотреть
сюда





Цитата Darkar25:



написал там где можно...
Любой язык - CMD\BAT\SHELL неправильная кодировка




А где можно?
Аватара пользователя
Darkar25

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение Darkar25 »

Цитата yurfed:



Цитата Darkar25:

написал там где можно... »

А где можно?
Любой язык - CMD\BAT\SHELL неправильная кодировка




тут
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
Darkar25

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение Darkar25 »

Цитата yurfed:



Цитата Darkar25:

первой строкой нельзя...батник работать перестанет »

С какого перепугу перестанет?
Любой язык - CMD\BAT\SHELL неправильная кодировка




я хз...я пробовал уже в начала файла чтото писать...батник подумал что это тоже кусок скрипта и сказал что какаято ошибка компиляции...
Аватара пользователя
Iska

Re: Любой язык - CMD\BAT\SHELL неправильная кодировка

Сообщение Iska »

Цитата Darkar25:



.кароч...с цифрами всё исправно работает...но как дело дошло до букв...толи с кодировкой что толи я криворукий...я тыкал тыкал и в итоге понял как писать русские маленькие буквы... нужно писать большие английские...остальные попытки ничего не дали...кто может помочь?
Любой язык - CMD\BAT\SHELL неправильная кодировка




Забудьте про .SendKeys() как про страшный сон и плавно переходите к изучению AutoIt/AutoHotKey.



P.S. С консольными же приложениями так (послать нажатие клавиши) вообще не работают. Там перехватывают стандартные потоки и читают из них или пишут в них.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»