Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   CMD\BAT\SHELL неправильная кодировка (http://forum.oszone.net/showthread.php?t=335641)

Darkar25 09-07-2018 00:55 2821084

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

@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

yurfed 09-07-2018 01:15 2821086

Цитата:

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

Попробуем.
Первой строкой пропишите
chcp 1251

Darkar25 09-07-2018 01:22 2821087

Цитата:

Цитата yurfed
Попробуем.
Первой строкой пропишите
chcp 1251 »

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

yurfed 09-07-2018 01:37 2821088

Цитата:

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

С какого перепугу перестанет?
Можете проверить или посмотреть сюда

Цитата:

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

А где можно?

Darkar25 09-07-2018 01:40 2821090

Вложений: 1
Цитата:

Цитата yurfed
Цитата Darkar25:
написал там где можно... »
А где можно? »

тут

Darkar25 09-07-2018 01:40 2821091

Цитата:

Цитата yurfed
Цитата Darkar25:
первой строкой нельзя...батник работать перестанет »
С какого перепугу перестанет? »

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

Iska 09-07-2018 02:00 2821092

Цитата:

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

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

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


Время: 07:44.

Время: 07:44.
© OSzone.net 2001-