//! jsc.exe /target:winexe
// Преобразование текста в буфере обмена:
// -eng — в английскую раскладку из русской
// -rus — в русскую раскладку из английской
// -upper — в верхний регистр
// -lower — в нижний регистр
import System;
import System.Windows.Forms;
import System.Text;
var args = Environment.GetCommandLineArgs();
if (args.Length == 2)
{
var text = Clipboard.GetText();
var arg = args[1].ToLower();
switch (arg)
{
case "-eng": case "-rus": // Преобразование раскладок
var layout = [ "QWERTYUIOP{}" + "ASDFGHJKL:\"|" + "ZXCVBNM<>?" + "`~@#$^&"
+ "qwertyuiop[]" + "asdfghjkl;'\\" + "zxcvbnm,./"
, "ЙЦУКЕНГШЩЗХЪ" + "ФЫВАПРОЛДЖЭ/" + "ЯЧСМИТЬБЮ," + "ёЁ\"№;:?"
+ "йцукенгшщзхъ" + "фывапролджэ\\" + "ячсмитьбю." ];
var s, t, ind, sb = new StringBuilder(text);
if (arg == "-rus") {s = 0; t = 1;} else {s = 1; t = 0;}
for (var i = 0; i < sb.Length; i++)
if ((ind = layout[s].IndexOf(sb[i])) >= 0)
sb[i] = layout[t][ind];
text = sb.ToString();
break;
case "-upper": text = text.ToUpper(); break; // Верхний регистр
case "-lower": text = text.ToLower(); break; // Нижний регистр
}
Clipboard.SetText(text);
}
Макросы преобразования выделенного выделенного текста по нажатию горячей клавиши.
------
Преобразование текста (базовый)
Текстовая переменная: arg
<CLIPBOARD CUT/>
<PROGRAM LAUNCH Path="путь_к_программе\\Keyboard Switcher.exe" Mode="\x00" Parameters="%arg%" Default_Path="TRUE" Wait="0" Get_Console="FALSE"/>
<WAIT FOR PROGRAM TO TERMINATE Process="KEYBOARD SWITCHER.EXE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/>
<CLIPBOARD PASTE/>
------
Преобразование текста: Ru > En
Горячая клавиша: Alt + Home
Текстовая переменная: arg
<VARIABLE SET STRING Option="\x00" Destination="%arg%" Value="-eng" NoEmbeddedVars="FALSE"/>
<MACRO RUN Use_ID="FALSE" Name="Преобразование текста (базовый)" ID="-1" Wait="TRUE"/>
------
Преобразование текста: En > Ru
Горячая клавиша: Alt + End
Текстовая переменная: arg
<VARIABLE SET STRING Option="\x00" Destination="%arg%" Value="-rus" NoEmbeddedVars="FALSE"/>
<MACRO RUN Use_ID="FALSE" Name="Преобразование текста (базовый)" ID="-1" Wait="TRUE"/>
------
Преобразование текста: Верхний регистр
Горячая клавиша: Alt + PageUp
Текстовая переменная: arg
<VARIABLE SET STRING Option="\x00" Destination="%arg%" Value="-upper" NoEmbeddedVars="FALSE"/>
<MACRO RUN Use_ID="FALSE" Name="Преобразование текста (базовый)" ID="-1" Wait="TRUE"/>
------
Преобразование текста: Нижний регистр
Горячая клавиша: Alt + PageDown
Текстовая переменная: arg
<VARIABLE SET STRING Option="\x00" Destination="%arg%" Value="-lower" NoEmbeddedVars="FALSE"/>
<MACRO RUN Use_ID="FALSE" Name="Преобразование текста (базовый)" ID="-1" Wait="TRUE"/>