| View previous topic :: View next topic |
| Author |
Message |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Wed May 25, 2011 6:43 pm Post subject: |
|
|
Interface language files for Translator.js.
File name should have such structure: ScriptNameWithoutExtension_LanguageName.lng
Translator_English.lng
| Code: | /********************************
Translator.js - ver. 2013-03-20
Interface language
Language: English
Translated by: KDJ
********************************/
sTxtCaption = "Translator";
sTxtUse = "Use";
sTxtFromLang = "From language";
sTxtToLang = "To language";
sTxtAutoDetect = "Auto detect language";
sTxtListen = "Listen";
sTxtTranslate = "&Translate";
sTxtTranslateP = "Translate+";
sTxtOptions = "&Options";
sTxtSource = "Source text";
sTxtTarget = "Translated text";
sTxtSettings = "Settings";
sTxtUndo = "&Undo";
sTxtRedo = "&Redo";
sTxtCut = "&Cut";
sTxtCopyCB = "C&opy to clipboard";
sTxtInsertAP = "&Insert to AkelPad";
sTxtPasteCB = "&Paste from clipboard";
sTxtPasteAP = "Pa&ste from AkelPad";
sTxtDelete = "&Delete";
sTxtSelectAll = "Select &all";
sTxtEntireText = "&Entire text";
sTxtInterface = "Interface language";
sTxtSourceInCB = "Source text from Clipboard";
sTxtSourceWnd = "Show panel with source text";
sTxtLoadText = "Load source text to panel at start";
sTxtImmediate = "Start immediately translate";
sTxtWordWrap = "Wrap lines";
sTxtFontAP = "Font from AkelPad";
sTxtFontGUI = "GUI font";
sTxtSortLang = "Languages sort";
sTxtSortCode = "By code";
sTxtSortName = "By name";
sTxtOwnKey = "own key";
sTxtRegister = "Registration:";
sTxtOK = "OK";
sTxtCancel = "Cancel";
sTxtError = "Error";
sTxtNoText = "There is no text to translate.";
sTxtNoSupport = "Your system does not support XMLHttpRequest.";
sTxtNoInternet = "There was a problem with internet connection.";
sTxtWait = "Wait...";
sTxtUndefined = "Undefined";
sTxtChooseLang = "You need to choose the language.";
sTxtNoSpeech = "No support for speech in this language.";
sTxtRegScripts = "You must register library: Scripts.dll";
sTxtNoLibrary = "Can not load library: ";
aLangs[ 0][1] = "Afrikaans";
aLangs[ 1][1] = "Arabic";
aLangs[ 2][1] = "Belarusian";
aLangs[ 3][1] = "Bulgarian";
aLangs[ 4][1] = "Catalan";
aLangs[ 5][1] = "Czech";
aLangs[ 6][1] = "Welsh";
aLangs[ 7][1] = "Danish";
aLangs[ 8][1] = "German";
aLangs[ 9][1] = "Greek";
aLangs[10][1] = "English";
aLangs[11][1] = "Esperanto";
aLangs[12][1] = "Spanish";
aLangs[13][1] = "Estonian";
aLangs[14][1] = "Persian";
aLangs[15][1] = "Finnish";
aLangs[16][1] = "French";
aLangs[17][1] = "Irish";
aLangs[18][1] = "Galician";
aLangs[19][1] = "Hindi";
aLangs[20][1] = "Croatian";
aLangs[21][1] = "Haitian Creole";
aLangs[22][1] = "Hungarian";
aLangs[23][1] = "Indonesian";
aLangs[24][1] = "Icelandic";
aLangs[25][1] = "Italian";
aLangs[26][1] = "Hebrew";
aLangs[27][1] = "Japanese";
aLangs[28][1] = "Korean";
aLangs[29][1] = "Latin";
aLangs[30][1] = "Lithuanian";
aLangs[31][1] = "Latvian";
aLangs[32][1] = "Macedonian";
aLangs[33][1] = "Malay";
aLangs[34][1] = "Maltese";
aLangs[35][1] = "Dutch";
aLangs[36][1] = "Norwegian";
aLangs[37][1] = "Polish";
aLangs[38][1] = "Portuguese";
aLangs[39][1] = "Romanian";
aLangs[40][1] = "Russian";
aLangs[41][1] = "Slovak";
aLangs[42][1] = "Slovenian";
aLangs[43][1] = "Albanian";
aLangs[44][1] = "Serbian";
aLangs[45][1] = "Swedish";
aLangs[46][1] = "Swahili";
aLangs[47][1] = "Thai";
aLangs[48][1] = "Filipino";
aLangs[49][1] = "Turkish";
aLangs[50][1] = "Ukrainian";
aLangs[51][1] = "Urdu";
aLangs[52][1] = "Vietnamese";
aLangs[53][1] = "Yiddish";
aLangs[54][1] = "Chinese";
aLangs[55][1] = "Chinese Simplified";
aLangs[56][1] = "Chinese Traditional";
|
- template for translation
Translator_Chinese-Simplified.lng
| Code: | /********************************
Translator.js - ver. 2013-03-20
Interface language
Language: Chinese-Simplified
Translated by: cnnnc
********************************/
sTxtCaption = "翻译器";
sTxtUse = "使用";
sTxtFromLang = "源语言";
sTxtToLang = "目标语言";
sTxtAutoDetect = "自动检测语言";
sTxtListen = "朗读";
sTxtTranslate = "翻译(&T)";
sTxtTranslateP = "翻译+";
sTxtOptions = "选项(&O)";
sTxtSource = "来源文本";
sTxtTarget = "已译文本";
sTxtSettings = "设置";
sTxtUndo = "撤消(&U)";
sTxtRedo = "恢复(&R)";
sTxtCut = "剪切(&C)";
sTxtCopyCB = "复制到剪贴板(&O)";
sTxtInsertAP = "插入到 AkelPad(&I)";
sTxtPasteCB = "粘贴自剪贴板(&P)";
sTxtPasteAP = "粘贴自 AkelPad(&S)";
sTxtDelete = "删除(&D)";
sTxtSelectAll = "全选(&A)";
sTxtEntireText = "整个文本(&E)";
sTxtInterface = "界面语言";
sTxtSourceInCB = "源文本来自剪贴板";
sTxtSourceWnd = "显示源文本的面板";
sTxtLoadText = "启动时加载源文本到面板";
sTxtImmediate = "启动时立即翻译";
sTxtWordWrap = "自动换行";
sTxtFontAP = "来自 AkelPad 的字体";
sTxtFontGUI = "GUI 字体";
sTxtSortLang = "语言排序";
sTxtSortCode = "按代码";
sTxtSortName = "按名称";
sTxtOwnKey = "自定义键";
sTxtRegister = "登记:";
sTxtOK = "确定";
sTxtCancel = "取消";
sTxtError = "错误";
sTxtNoText = "无文本可译。";
sTxtNoSupport = "您的系统不支持 XMLHttpRequest。";
sTxtNoInternet = "因特网连接有问题。";
sTxtWait = "请稍候...";
sTxtUndefined = "未定义";
sTxtChooseLang = "您需要选择语言。";
sTxtNoSpeech = "不支持这种语言的朗读。";
sTxtRegScripts = "必须注册库: Scripts.dll";
sTxtNoLibrary = "无法加载库: ";
aLangs[ 0][1] = "布尔文(南非荷兰语)";
aLangs[ 1][1] = "阿拉伯语";
aLangs[ 2][1] = "白俄罗斯语";
aLangs[ 3][1] = "保加利亚语";
aLangs[ 4][1] = "加泰罗尼亚语";
aLangs[ 5][1] = "捷克语";
aLangs[ 6][1] = "威尔士语";
aLangs[ 7][1] = "丹麦语";
aLangs[ 8][1] = "德语";
aLangs[ 9][1] = "希腊语";
aLangs[10][1] = "英语";
aLangs[11][1] = "世界语";
aLangs[12][1] = "西班牙语";
aLangs[13][1] = "爱沙尼亚语";
aLangs[14][1] = "波斯语";
aLangs[15][1] = "芬兰语";
aLangs[16][1] = "法语";
aLangs[17][1] = "爱尔兰语";
aLangs[18][1] = "加利西亚语";
aLangs[19][1] = "印地语";
aLangs[20][1] = "克罗地亚语";
aLangs[21][1] = "海地克里奥尔语";
aLangs[22][1] = "匈牙利语";
aLangs[23][1] = "印尼语";
aLangs[24][1] = "冰岛语";
aLangs[25][1] = "意大利语";
aLangs[26][1] = "希伯来语";
aLangs[27][1] = "日语";
aLangs[28][1] = "韩语";
aLangs[29][1] = "拉丁语";
aLangs[30][1] = "立陶宛语";
aLangs[31][1] = "拉脱维亚语";
aLangs[32][1] = "马其顿语";
aLangs[33][1] = "马来语";
aLangs[34][1] = "马耳他语";
aLangs[35][1] = "荷兰语";
aLangs[36][1] = "挪威语";
aLangs[37][1] = "波兰语";
aLangs[38][1] = "葡萄牙语";
aLangs[39][1] = "罗马尼亚语";
aLangs[40][1] = "俄语";
aLangs[41][1] = "斯洛伐克语";
aLangs[42][1] = "斯洛文尼亚语";
aLangs[43][1] = "阿尔巴尼亚语";
aLangs[44][1] = "塞尔维亚语";
aLangs[45][1] = "瑞典语";
aLangs[46][1] = "斯瓦希里语";
aLangs[47][1] = "泰语";
aLangs[48][1] = "菲律宾语";
aLangs[49][1] = "土耳其语";
aLangs[50][1] = "乌克兰语";
aLangs[51][1] = "乌尔都语";
aLangs[52][1] = "越南语";
aLangs[53][1] = "意第绪语";
aLangs[54][1] = "中文";
aLangs[55][1] = "中文(简体)";
aLangs[56][1] = "中文(繁体)";
|
- by cnnnc
Translator_Polish.lng
| Code: | /********************************
Translator.js - ver. 2013-03-20
Interface language
Language: Polish
Translated by: KDJ
********************************/
sTxtCaption = "Tłumacz";
sTxtUse = "Używaj";
sTxtFromLang = "Z języka";
sTxtToLang = "Na język";
sTxtAutoDetect = "Auto detekcja języka";
sTxtListen = "Słuchaj";
sTxtTranslate = "Przetłumac&z";
sTxtTranslateP = "Przetłumacz+";
sTxtOptions = "&Opcje";
sTxtSource = "Tekst źródłowy";
sTxtTarget = "Tłumaczenie";
sTxtSettings = "Ustawienia";
sTxtUndo = "&Cofnij";
sTxtRedo = "&Powtórz";
sTxtCut = "&Wytnij";
sTxtCopyCB = "&Kopiuj do schowka";
sTxtInsertAP = "Ws&taw do AkelPad'a";
sTxtPasteCB = "Wkl&ej ze schowka";
sTxtPasteAP = "Wkle&j z AkelPad'a";
sTxtDelete = "&Usuń";
sTxtSelectAll = "Zaznacz w&szystko";
sTxtEntireText = "C&ały tekst";
sTxtInterface = "Język interfejsu";
sTxtSourceInCB = "Tekst źródłowy ze schowka";
sTxtSourceWnd = "Pokaż panel z tekstem źródłowym";
sTxtLoadText = "Wczytaj tekst źródłowy do panela przy starcie";
sTxtImmediate = "Zacznij od razu tłumaczyć";
sTxtWordWrap = "Zawijaj wiersze";
sTxtFontAP = "Czcionka z AkelPad'a";
sTxtFontGUI = "Czcionka interfejsu GUI";
sTxtSortLang = "Sortowanie języków";
sTxtSortCode = "Wg kodu";
sTxtSortName = "Wg nazwy";
sTxtOwnKey = "własny klucz";
sTxtRegister = "Rejestracja:";
sTxtOK = "OK";
sTxtCancel = "Anuluj";
sTxtError = "Błąd";
sTxtNoText = "Brak tekstu do tłumaczenia.";
sTxtNoSupport = "Twój system nie obsługuje XMLHttpRequest.";
sTxtNoInternet = "Wystąpił problem z połączeniem internetowym.";
sTxtWait = "Czekaj...";
sTxtUndefined = "Niezdefiniowany";
sTxtChooseLang = "Musisz wybrać język.";
sTxtNoSpeech = "Brak obsługi wymowy dla tego języka.";
sTxtRegScripts = "Musisz zarejestrować bibliotekę: Scripts.dll";
sTxtNoLibrary = "Nie można załadować biblioteki: ";
aLangs[ 0][1] = "Afrykanerski";
aLangs[ 1][1] = "Arabski";
aLangs[ 2][1] = "Białoruski";
aLangs[ 3][1] = "Bułgarski";
aLangs[ 4][1] = "Kataloński";
aLangs[ 5][1] = "Czeski";
aLangs[ 6][1] = "Walijski";
aLangs[ 7][1] = "Duński";
aLangs[ 8][1] = "Niemiecki";
aLangs[ 9][1] = "Grecki";
aLangs[10][1] = "Angielski";
aLangs[11][1] = "Esperanto";
aLangs[12][1] = "Hiszpański";
aLangs[13][1] = "Estoński";
aLangs[14][1] = "Perski";
aLangs[15][1] = "Fiński";
aLangs[16][1] = "Francuski";
aLangs[17][1] = "Irlandzki";
aLangs[18][1] = "Galicyjski";
aLangs[19][1] = "Hindi";
aLangs[20][1] = "Chorwacki";
aLangs[21][1] = "Haitański Kreolski";
aLangs[22][1] = "Węgierski";
aLangs[23][1] = "Indonezyjski";
aLangs[24][1] = "Islandzki";
aLangs[25][1] = "Włoski";
aLangs[26][1] = "Hebrajski";
aLangs[27][1] = "Japoński";
aLangs[28][1] = "Koreański";
aLangs[29][1] = "Łacina";
aLangs[30][1] = "Litewski";
aLangs[31][1] = "Łotewski";
aLangs[32][1] = "Macedoński";
aLangs[33][1] = "Malajski";
aLangs[34][1] = "Maltański";
aLangs[35][1] = "Holenderski";
aLangs[36][1] = "Norweski";
aLangs[37][1] = "Polski";
aLangs[38][1] = "Portugalski";
aLangs[39][1] = "Rumuński";
aLangs[40][1] = "Rosyjski";
aLangs[41][1] = "Słowacki";
aLangs[42][1] = "Słoweński";
aLangs[43][1] = "Albański";
aLangs[44][1] = "Serbski";
aLangs[45][1] = "Szwedzki";
aLangs[46][1] = "Suahili";
aLangs[47][1] = "Tajski";
aLangs[48][1] = "Filipiński";
aLangs[49][1] = "Turecki";
aLangs[50][1] = "Ukraiński";
aLangs[51][1] = "Urdu";
aLangs[52][1] = "Wietnamski";
aLangs[53][1] = "Jidysz";
aLangs[54][1] = "Chiński";
aLangs[55][1] = "Chiński Uproszczony";
aLangs[56][1] = "Chiński Tradycyjny";
|
Translator_Russian.lng
| Code: | /********************************
Translator.js - ver. 2013-03-20
Interface language
Language: Russian
Translated by: Infocatcher
********************************/
sTxtCaption = "Переводчик";
sTxtUse = "Использовать";
sTxtFromLang = "С языка";
sTxtToLang = "На язык";
sTxtAutoDetect = "Автоопределение языка";
sTxtListen = "Прослушать";
sTxtTranslate = "&Перевести";
sTxtTranslateP = "Перевести+";
sTxtOptions = "Па&раметры";
sTxtSource = "&Исходный текст";
sTxtTarget = "&Переведенный текст";
sTxtSettings = "Настройки";
sTxtUndo = "&Отменить";
sTxtRedo = "Пов&торить";
sTxtCut = "&Вырезать";
sTxtCopyCB = "&Копировать в буфер обмена";
sTxtInsertAP = "В&ставить в AkelPad";
sTxtPasteCB = "Вст&авить из буфера обмена";
sTxtPasteAP = "Вставить &из AkelPad'а";
sTxtDelete = "&Удалить";
sTxtSelectAll = "В&ыделить все";
sTxtEntireText = "В&есь текст";
sTxtInterface = "Язык интерфейса";
sTxtSourceInCB = "Исходный текст из буфера обмена";
sTxtSourceWnd = "Показывать панель с исходным текстом";
sTxtLoadText = "Загружать исходный текст при запуске";
sTxtImmediate = "Переводить при запуске";
sTxtWordWrap = "Перенос строк";
sTxtFontAP = "Шрифт из AkelPad'а";
sTxtFontGUI = "Шрифт интерфейса";
sTxtSortLang = "Сортировка языков";
sTxtSortCode = "По коду";
sTxtSortName = "По названию";
sTxtOwnKey = "свой ключ";
sTxtRegister = "Регистрация:";
sTxtOK = "ОК";
sTxtCancel = "Отмена";
sTxtError = "Ошибка";
sTxtNoText = "Нет текста для перевода.";
sTxtNoSupport = "Ваша система не поддерживает XMLHttpRequest.";
sTxtNoInternet = "Проблема с подключением к Интернету.";
sTxtWait = "Подождите...";
sTxtUndefined = "Неизвестный";
sTxtChooseLang = "Вы должны выбрать язык.";
sTxtNoSpeech = "Прослушивание для данного языка не поддерживается.";
sTxtRegScripts = "Вы должны зарегистрировать библиотеку: Scripts.dll";
sTxtNoLibrary = "Не удалось загрузить библиотеку: ";
aLangs[ 0][1] = "Африкаанс";
aLangs[ 1][1] = "Арабский";
aLangs[ 2][1] = "Белорусский";
aLangs[ 3][1] = "Болгарский";
aLangs[ 4][1] = "Каталонский";
aLangs[ 5][1] = "Чешский";
aLangs[ 6][1] = "Валлийский";
aLangs[ 7][1] = "Датский";
aLangs[ 8][1] = "Немецкий";
aLangs[ 9][1] = "Греческий";
aLangs[10][1] = "Английский";
aLangs[11][1] = "Эсперанто";
aLangs[12][1] = "Испанский";
aLangs[13][1] = "Эстонский";
aLangs[14][1] = "Персидский";
aLangs[15][1] = "Финский";
aLangs[16][1] = "Французский";
aLangs[17][1] = "Ирландский";
aLangs[18][1] = "Галисийский";
aLangs[19][1] = "Хинди";
aLangs[20][1] = "Хорватский";
aLangs[21][1] = "Гаитянский креольский";
aLangs[22][1] = "Венгерский";
aLangs[23][1] = "Индонезийский";
aLangs[24][1] = "Исландский";
aLangs[25][1] = "Итальянский";
aLangs[26][1] = "Еврейский";
aLangs[27][1] = "Японский";
aLangs[28][1] = "Корейский";
aLangs[29][1] = "Латынь";
aLangs[30][1] = "Литовский";
aLangs[31][1] = "Латышский";
aLangs[32][1] = "Македонский";
aLangs[33][1] = "Малайский";
aLangs[34][1] = "Мальтийский";
aLangs[35][1] = "Голландский";
aLangs[36][1] = "Норвежский";
aLangs[37][1] = "Польский";
aLangs[38][1] = "Португальский";
aLangs[39][1] = "Румынский";
aLangs[40][1] = "Русский";
aLangs[41][1] = "Словацкий";
aLangs[42][1] = "Словенский";
aLangs[43][1] = "Албанский";
aLangs[44][1] = "Сербский";
aLangs[45][1] = "Шведский";
aLangs[46][1] = "Суахили";
aLangs[47][1] = "Тайский";
aLangs[48][1] = "Филиппинский";
aLangs[49][1] = "Турецкий";
aLangs[50][1] = "Украинский";
aLangs[51][1] = "Урду";
aLangs[52][1] = "Вьетнамский";
aLangs[53][1] = "Идиш";
aLangs[54][1] = "Китайский";
aLangs[55][1] = "Китайский Упрощенный";
aLangs[56][1] = "Китайский Традиционный";
|
- by Infocatcher
Translator_Ukrainian.lng
| Code: | /********************************
Translator.js - ver. 2013-03-20
Interface language
Language: Ukrainian
Translated by: FeyFre
********************************/
sTxtCaption = "Перекладач";
sTxtUse = "Використати";
sTxtFromLang = "Із мови";
sTxtToLang = "Мовою";
sTxtAutoDetect = "Автовизначення мови";
sTxtListen = "Прослухати";
sTxtTranslate = "&Перекласти";
sTxtTranslateP = "Перекласти+";
sTxtOptions = "&Опції";
sTxtSource = "Вхідний текст";
sTxtTarget = "Переклад";
sTxtSettings = "Налаштовування";
sTxtUndo = "&Повернути";
sTxtRedo = "&Повторити";
sTxtCut = "&Вирізати";
sTxtCopyCB = "&Копіювати до кишені";
sTxtInsertAP = "&Вставити у AkelPad";
sTxtPasteCB = "В&ставити із кишені";
sTxtPasteAP = "Вс&тавити із AkelPad";
sTxtDelete = "В&идалити";
sTxtSelectAll = "Ви&ділити все";
sTxtEntireText = "&Увесь текст";
sTxtInterface = "Мова інтерфейсу";
sTxtSourceInCB = "Вихідний текст із Кишені";
sTxtSourceWnd = "Показати вікно з джерелом";
sTxtLoadText = "Завантажити виділений текст при запуску";
sTxtImmediate = "Одразу розпочати переклад";
sTxtWordWrap = "Переносити стрічки";
sTxtFontAP = "Шрифт із AkelPad";
sTxtFontGUI = "Інтерфейсний шрифт";
sTxtSortLang = "Упорядкування мов";
sTxtSortCode = "За кодом";
sTxtSortName = "За іменем";
sTxtOwnKey = "власний ключ";
sTxtRegister = "Реєстрація:";
sTxtOK = "Добре";
sTxtCancel = "Скасувати";
sTxtError = "Помилка";
sTxtNoText = "Нічого перекладати.";
sTxtNoSupport = "Ваша система не підтримує XMLHttpRequest.";
sTxtNoInternet = "Виявлено проблему із підключення до Інтернету.";
sTxtWait = "Зачекайте...";
sTxtUndefined = "Невизначено";
sTxtChooseLang = "Ви маєте обрати мову.";
sTxtNoSpeech = "Вимова у цій мові не підтримується.";
sTxtRegScripts = "Ви повинні зареєструвати бібліотеку: Scripts.dll";
sTxtNoLibrary = "Не можу завантажити бібліотеку: ";
aLangs[ 0][1] = "Африкаанс";
aLangs[ 1][1] = "Арабська";
aLangs[ 2][1] = "Білоруська";
aLangs[ 3][1] = "Болгарська";
aLangs[ 4][1] = "Каталоньска";
aLangs[ 5][1] = "Чеське";
aLangs[ 6][1] = "Валлійська";
aLangs[ 7][1] = "Датська";
aLangs[ 8][1] = "Німецька";
aLangs[ 9][1] = "Грецька";
aLangs[10][1] = "Англійська";
aLangs[11][1] = "Есперанто";
aLangs[12][1] = "Іспанська";
aLangs[13][1] = "Естонська";
aLangs[14][1] = "Перська";
aLangs[15][1] = "Фінська";
aLangs[16][1] = "Французька";
aLangs[17][1] = "Ірландська";
aLangs[18][1] = "Галійська";
aLangs[19][1] = "Хінді";
aLangs[20][1] = "Хорватська";
aLangs[21][1] = "Креольска";
aLangs[22][1] = "Угорська";
aLangs[23][1] = "Індонезійська";
aLangs[24][1] = "Ісландська";
aLangs[25][1] = "Італійська";
aLangs[26][1] = "Іврит";
aLangs[27][1] = "Японська";
aLangs[28][1] = "Корейська";
aLangs[29][1] = "Латинь";
aLangs[30][1] = "Литовська";
aLangs[31][1] = "Латвійська";
aLangs[32][1] = "Македонська";
aLangs[33][1] = "Малайська";
aLangs[34][1] = "Мальтійська";
aLangs[35][1] = "Голландська";
aLangs[36][1] = "Норвезька";
aLangs[37][1] = "Польська";
aLangs[38][1] = "Португальська";
aLangs[39][1] = "Румунська";
aLangs[40][1] = "Російська";
aLangs[41][1] = "Словацька";
aLangs[42][1] = "Словенська";
aLangs[43][1] = "Албанська";
aLangs[44][1] = "Сербська";
aLangs[45][1] = "Шведська";
aLangs[46][1] = "Суахілі";
aLangs[47][1] = "Тайська";
aLangs[48][1] = "Філіппінська";
aLangs[49][1] = "Турецька";
aLangs[50][1] = "Українська";
aLangs[51][1] = "Урду";
aLangs[52][1] = "В'єтнамська";
aLangs[53][1] = "Їдиш";
aLangs[54][1] = "Китайська";
aLangs[55][1] = "Китайська спрощена";
aLangs[56][1] = "Китайська Традиційна";
|
- by FeyFre
Last edited by KDJ on Mon Mar 25, 2013 7:24 pm; edited 19 times in total |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1431
|
Posted: Sat May 28, 2011 11:13 pm Post subject: |
|
|
alignWithSpaces.js | Code: | // http://akelpad.sourceforge.net/forum/viewtopic.php?p=13096#13096
// http://infocatcher.ucoz.net/js/akelpad_scripts/alignWithSpaces.js
// (c) Infocatcher 2011
// version 0.2.2 - 2011-12-20
//===================
// Align selected code with spaces to user defined string
// Hotkeys:
// Enter - Ok
// Ctrl+Enter, Shift+Enter - Align
// Escape - Cancel
// F1 - Select next align option
// F2 - Select next spaces option
// Ctrl+Z - Undo
// Ctrl+Shift+Z - Redo
// Ctrl+C, Ctrl+Insert - Copy
// Ctrl+V, Shift+Insert - Paste
// Ctrl+X, Shift+Del - Cut
// Delete - Delete selection
// Ctrl+A - Select all
// Ctrl+S - Save file
// Argumens:
// -dialog=true - show dialog
// -sepAtStart=false - -> [separator][text]
// =true - [separator] -> [text]
// -minimize=0 - leave all spaces
// =1 - leave only one space (if exist)
// =2 - remove all spaces
// -sep="=" - don't ask separator
// -history=10 - set history length
// -saveOptions=0 - don't store options
// =1 - (default) save options after them usage
// =2 - save options on exit
// -savePosition=true - allow store last window position
// Usage:
// Call("Scripts::Main", 1, "alignWithSpaces.js")
// Call("Scripts::Main", 1, "alignWithSpaces.js", '-dialog=false -sep="=" -sepAtStart=true')
//===================
function _localize(s) {
var strings = {
"No text selected!": {
ru: "Отсутствует выделенный текст!"
},
"Only one line selected!": {
ru: "Выделена только одна строка!"
},
"Invalid regular expression!": {
ru: "Неверное регулярное выражение!"
},
"Separator “%S” not found!": {
ru: "Разделитель «%S» не найден!"
},
"Found only one separator “%S”!": {
ru: "Найден только один разделитель «%S»!"
},
"&Separator:": {
ru: "&Разделитель:"
},
"&Alignement": {
ru: "&Выравнивание"
},
"-> [separator][text]": {
ru: "-> [разделитель][текст]"
},
"[separator] -> [text]": {
ru: "[разделитель] -> [текст]"
},
"&Spaces": {
ru: "&Пробелы"
},
"Leave all": {
ru: "Оставить все"
},
"Leave only one": {
ru: "Оставить только один"
},
"Remove all": {
ru: "Удалить все"
},
"OK": {
ru: "ОК"
},
"Align": {
ru: "Выровнять"
},
"Cancel": {
ru: "Отмена"
}
};
var lng;
switch(AkelPad.GetLangId(1 /*LANGID_PRIMARY*/)) {
case 0x19: lng = "ru"; break;
default: lng = "en";
}
_localize = function(s) {
return strings[s] && strings[s][lng] || s;
};
return _localize(s);
}
// Read arguments:
// getArg(argName, defaultValue)
var dialog = getArg("dialog", true);
var sepAtStart = getArg("sepAtStart", false);
var minimize = getArg("minimize", 0);
var separator = getArg("sep");
var historyLength = getArg("history", 10);
var saveOptions = getArg("saveOptions", 1);
var savePosition = getArg("savePosition", true);
var hMainWnd = AkelPad.GetMainWnd();
var hWndEdit = AkelPad.GetEditWnd();
var oSys = AkelPad.SystemFunction();
var oSet = AkelPad.ScriptSettings();
var dialogTitle = WScript.ScriptName.replace(/^[!-\-_]+/, "");
dialogTitle = dialogTitle.charAt(0).toUpperCase() + dialogTitle.substr(1);
if(hMainWnd) {
if(dialog || !separator)
alignWithSpacesDialog();
else
alignWithSpaces(separator);
}
function alignWithSpaces(sep, hWnd) {
if(AkelPad.GetEditReadOnly(hWndEdit))
return false;
var sel = AkelPad.GetSelText();
if(!sel) {
AkelPad.MessageBox(hWnd || hMainWnd, _localize("No text selected!"), dialogTitle, 48 /*MB_ICONEXCLAMATION*/);
return false;
}
var lines = sel.split("\r");
var linesCnt = lines.length;
if(linesCnt == 1) {
AkelPad.MessageBox(hWnd || hMainWnd, _localize("Only one line selected!"), dialogTitle, 48 /*MB_ICONEXCLAMATION*/);
return false;
}
if(!sep) {
if(!hWnd)
alignWithSpacesDialog();
return false;
}
var pattern;
var isRegExp = false;
if(/^\/(.+)\/(i?)$/.test(sep)) { // /RegExp/ and /RegExp/i
try {
pattern = new RegExp(RegExp.$1, RegExp.$2);
isRegExp = true;
}
catch(e) {
AkelPad.MessageBox(
hWnd || hMainWnd,
_localize("Invalid regular expression!")
+ "\n" + e.name + "\n" + e.message,
dialogTitle,
16 /*MB_ICONERROR*/
);
if(!hWnd) {
separator = sep;
alignWithSpacesDialog();
}
return false;
}
}
//else if(/^("|')(.+)\1$/.test(sep))
else {
pattern = new RegExp(escapeRegExp(sep));
}
var maxPos = -1;
var indexes = [];
var startOffset = 0;
var found = 0;
for(var i = 0; i < linesCnt; ++i) {
var line = lines[i];
var indx = line.search(pattern);
indexes[i] = indx;
if(indx == -1)
continue;
++found;
//~ todo: calculate real tab width
if(sepAtStart) {
indx += RegExp.lastMatch.length;
var lineEnd = line.substr(indx);
if(minimize) {
var lineEnd = lineEnd.replace(/^[ \t]+/, minimize == 1 ? " " : "");
line = lines[i] = line.substr(0, indx) + lineEnd;
}
indx += lineEnd.match(/^[ \t]*/)[0].length;
indexes[i] = indx;
}
else if(minimize) {
var lineStart = line.substr(0, indx);
var lineEnd = line.substr(indx);
var lineStartNew = lineStart.replace(/[ \t]+$/, minimize == 1 ? " " : "");
indx = indexes[i] = lineStartNew.length;
line = lines[i] = lineStartNew + lineEnd;
}
if(i == 0 && !AkelPad.SendMessage(hWndEdit, 3127 /*AEM_GETCOLUMNSEL*/, 0, 0)) {
var ss = AkelPad.GetSelStart();
var lineStart = getOffset(hWndEdit, 18 /*AEGI_WRAPLINEBEGIN*/, ss);
startOffset = ss - lineStart;
indx += startOffset;
}
if(indx > maxPos)
maxPos = indx;
}
if(found <= 1) {
AkelPad.MessageBox(
hWnd || hMainWnd,
_localize(found ? "Found only one separator “%S”!" : "Separator “%S” not found!")
.replace("%S", isRegExp ? pattern : sep),
dialogTitle,
48 /*MB_ICONEXCLAMATION*/
);
if(!hWnd) {
separator = sep;
alignWithSpacesDialog();
}
return false;
}
for(var i = 0; i < linesCnt; ++i) {
var line = lines[i];
var indx = indexes[i];
if(indx == -1/* || indx == maxPos*/)
continue;
var spaces = new Array(maxPos - indx - (i == 0 ? startOffset : 0) + 1).join(" ");
var lineStart = line.substr(0, indx);
lineStart = lineStart.replace(/[\t ]*$/, "") + new Array(RegExp.lastMatch.length + 1).join(" ");
var lineEnd = line.substr(indx);
lineEnd = lineEnd.replace(/^[\t ]*/, "") + new Array(RegExp.lastMatch.length + 1).join(" ");
lines[i] = lineStart + spaces + lineEnd;
}
var res = lines.join("\r");
if(res != sel)
insertNoScroll(res);
return true;
}
function alignWithSpacesDialog(modal) {
var hInstanceDLL = AkelPad.GetInstanceDll();
var dialogClass = "AkelPad::Scripts::" + WScript.ScriptName + "::" + oSys.Call("kernel32::GetCurrentProcessId");
var hWndDialog = oSys.Call("user32::FindWindowEx" + _TCHAR, 0, 0, dialogClass, 0);
if(hWndDialog) {
if(oSys.Call("user32::IsIconic", hWndDialog))
oSys.Call("user32::ShowWindow", hWndDialog, 9 /*SW_RESTORE*/);
AkelPad.SendMessage(hWndDialog, 7 /*WM_SETFOCUS*/, 0, 0);
return;
}
if(
!AkelPad.WindowRegisterClass(dialogClass)
&& ( // Previous script instance crashed
!AkelPad.WindowUnregisterClass(dialogClass)
|| !AkelPad.WindowRegisterClass(dialogClass)
)
)
return;
var optionsUsed = false;
var lastSeps = [];
var savedSepsCount = 0;
var dlgX, dlgY;
if((saveOptions || savePosition) && oSet.Begin(WScript.ScriptBaseName, 0x1 /*POB_READ*/)) {
if(saveOptions) {
for(var i = 0; ; ++i) {
var s = oSet.Read("lastSeparator" + i, 3 /*PO_STRING*/, "");
if(!s)
break;
if(i < historyLength)
lastSeps[lastSeps.length] = s;
}
savedSepsCount = i;
if(getArg("sepAtStart") === undefined)
sepAtStart = oSet.Read("sepAtStart", 1 /*PO_DWORD*/) || 0;
if(getArg("minimize") === undefined)
minimize = oSet.Read("minimize", 1 /*PO_DWORD*/) || 0;
}
if(savePosition) {
dlgX = oSet.Read("windowLeft", 1 /*PO_DWORD*/);
dlgY = oSet.Read("windowTop", 1 /*PO_DWORD*/);
}
oSet.End();
}
function saveSettings(rewrite) {
if(!saveOptions && !savePosition)
return;
if(!oSet.Begin(WScript.ScriptBaseName, 0x2 /*POB_SAVE*/))
return;
if(saveOptions && (saveOptions == 2 || optionsUsed)) {
if(readControlsState()) {
oSet.Write("sepAtStart", 1 /*PO_DWORD*/, sepAtStart);
oSet.Write("minimize", 1 /*PO_DWORD*/, minimize);
}
var histLen = Math.min(historyLength, lastSeps.length);
for(var i = 0, l = Math.max(historyLength, savedSepsCount); i < l; ++i) {
if(i < histLen)
oSet.Write("lastSeparator" + i, 3 /*PO_STRING*/, lastSeps[i]);
else
oSet.Delete("lastSeparator" + i);
}
}
if(savePosition && !oSys.Call("user32::IsIconic", hWndDialog)) {
var rcWnd = getWindowRect(hWndDialog);
if(rcWnd) {
oSet.Write("windowLeft", 1 /*PO_DWORD*/, rcWnd.left);
oSet.Write("windowTop", 1 /*PO_DWORD*/, rcWnd.top);
}
}
oSet.End();
}
var IDC_STATIC = -1;
var IDC_COMBOBOX_LABEL = 1000;
var IDC_COMBOBOX = 1001;
var IDC_SEP_AT_END = 1002;
var IDC_SEP_AT_START = 1003;
var IDC_SP_LEAVE = 1004;
var IDC_SP_LEAVE_ONE = 1005;
var IDC_SP_REMOVE = 1006;
var IDC_OK = 1007;
var IDC_ALIGN = 1008;
var IDC_CANCEL = 1009;
var hWndStatic;
var hWndComboboxLabel, hWndCombobox;
var hWndSepAtEnd, hWndSepAtStart;
var hWndSpLeave, hWndSpLeaveOne, hWndSpRemove;
var hWndOK, hWndAlign, hWndCancel;
var scale = new Scale(0, hMainWnd);
var sizeNonClientX = oSys.Call("user32::GetSystemMetrics", 7 /*SM_CXFIXEDFRAME*/)*2;
var sizeNonClientY = oSys.Call("user32::GetSystemMetrics", 8 /*SM_CYFIXEDFRAME*/)*2
+ oSys.Call("user32::GetSystemMetrics", 4 /*SM_CYCAPTION*/);
// Create dialog
hWndDialog = oSys.Call(
"user32::CreateWindowEx" + _TCHAR,
0, //dwExStyle
dialogClass, //lpClassName
0, //lpWindowName
0x90CA0000, //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX
scale.x(0), //x
scale.y(0), //y
scale.x(446) + sizeNonClientX, //nWidth
scale.y(122) + sizeNonClientY, //nHeight
hMainWnd, //hWndParent
0, //ID
hInstanceDLL, //hInstance
dialogCallback //Script function callback. To use it class must be registered by WindowRegisterClass.
);
if(!hWndDialog)
return;
function dialogCallback(hWnd, uMsg, wParam, lParam) {
switch(uMsg) {
case 1: //WM_CREATE
var hGuiFont = oSys.Call("gdi32::GetStockObject", 17 /*DEFAULT_GUI_FONT*/);
function setWindowFontAndText(hWnd, hFont, pText) {
AkelPad.SendMessage(hWnd, 48 /*WM_SETFONT*/, hFont, true);
windowText(hWnd, pText);
}
// Dialog caption
oSys.Call("user32::SetWindowText" + _TCHAR, hWnd, dialogTitle);
// Static window: combobox label
hWndComboboxLabel = createWindowEx(
0, //dwExStyle
"STATIC", //lpClassName
0, //lpWindowName
0x50000100, //WS_VISIBLE|WS_CHILD|SS_NOTIFY
12, //x
15, //y
78, //nWidth
13, //nHeight
hWnd, //hWndParent
IDC_COMBOBOX_LABEL, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndComboboxLabel, hGuiFont, _localize("&Separator:"));
hWndCombobox = createWindowEx(
0, //dwExStyle
"COMBOBOX", //lpClassName
0, //lpWindowName
0x50210042, //WS_VISIBLE|WS_CHILD|WS_TABSTOP|WS_VSCROLL|CBS_DROPDOWN|CBS_AUTOHSCROLL
90, //x
12, //y
254, //nWidth
160, //nHeight
hWnd, //hWndParent
IDC_COMBOBOX, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
for(var i = 0, l = lastSeps.length; i < l; ++i) {
//AkelPad.MemCopy(lpBuffer, lastSeps[i], _TSTR);
//AkelPad.SendMessage(hWndCombobox, 0x143 /*CB_ADDSTRING*/, 0, lpBuffer);
oSys.Call("user32::SendMessage" + _TCHAR, hWndCombobox, 0x143 /*CB_ADDSTRING*/, 0, lastSeps[i]);
}
setWindowFontAndText(hWndCombobox, hGuiFont, separator || "");
!separator && AkelPad.SendMessage(hWndCombobox, 0x14E /*CB_SETCURSEL*/, 0, 0);
// GroupBox alignement
hWndStatic = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000007, //WS_VISIBLE|WS_CHILD|BS_GROUPBOX
12, //x
38, //y
160, //nWidth
56, //nHeight
hWnd, //hWndParent
IDC_STATIC, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndStatic, hGuiFont, _localize("&Alignement"));
// Radiobutton separator at end
hWndSepAtEnd = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000004, //WS_VISIBLE|WS_CHILD|BS_RADIOBUTTON
20, //x
54, //y
144, //nWidth
16, //nHeight
hWnd, //hWndParent
IDC_SEP_AT_END, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndSepAtEnd, hGuiFont, _localize("-> [separator][text]"));
checked(hWndSepAtEnd, !sepAtStart);
// Radiobutton separator at start
hWndSepAtStart = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000004, //WS_VISIBLE|WS_CHILD|BS_RADIOBUTTON
20, //x
72, //y
144, //nWidth
16, //nHeight
hWnd, //hWndParent
IDC_SEP_AT_START, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndSepAtStart, hGuiFont, _localize("[separator] -> [text]"));
checked(hWndSepAtStart, sepAtStart);
// GroupBox spaces
hWndStatic = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000007, //WS_VISIBLE|WS_CHILD|BS_GROUPBOX
184, //x
38, //y
160, //nWidth
72, //nHeight
hWnd, //hWndParent
IDC_STATIC, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndStatic, hGuiFont, _localize("&Spaces"));
// Radiobutton leave all spaces
hWndSpLeave = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000004, //WS_VISIBLE|WS_CHILD|BS_RADIOBUTTON
192, //x
54, //y
144, //nWidth
16, //nHeight
hWnd, //hWndParent
IDC_SP_LEAVE, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndSpLeave, hGuiFont, _localize("Leave all"));
checked(hWndSpLeave, minimize == 0);
// Radiobutton leave only one space
hWndSpLeaveOne = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000004, //WS_VISIBLE|WS_CHILD|BS_RADIOBUTTON
192, //x
71, //y
144, //nWidth
16, //nHeight
hWnd, //hWndParent
IDC_SP_LEAVE_ONE, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndSpLeaveOne, hGuiFont, _localize("Leave only one"));
checked(hWndSpLeaveOne, minimize == 1);
// Radiobutton remove all spaces
hWndSpRemove = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50000004, //WS_VISIBLE|WS_CHILD|BS_RADIOBUTTON
192, //x
88, //y
144, //nWidth
16, //nHeight
hWnd, //hWndParent
IDC_SP_REMOVE, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndSpRemove, hGuiFont, _localize("Remove all"));
checked(hWndSpRemove, minimize == 2);
// OK button window
hWndOK = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50010001, //WS_VISIBLE|WS_CHILD|WS_TABSTOP|BS_DEFPUSHBUTTON
355, //x
11, //y
80, //nWidth
23, //nHeight
hWnd, //hWndParent
IDC_OK, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndOK, hGuiFont, _localize("OK"));
// Apply button window
hWndAlign = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50010000, //WS_VISIBLE|WS_CHILD|WS_TABSTOP
355, //x
38, //y
80, //nWidth
23, //nHeight
hWnd, //hWndParent
IDC_ALIGN, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndAlign, hGuiFont, _localize("Align"));
// Cancel button window
hWndCancel = createWindowEx(
0, //dwExStyle
"BUTTON", //lpClassName
0, //lpWindowName
0x50010000, //WS_VISIBLE|WS_CHILD|WS_TABSTOP
355, //x
65, //y
80, //nWidth
23, //nHeight
hWnd, //hWndParent
IDC_CANCEL, //ID
hInstanceDLL, //hInstance
0 //lpParam
);
setWindowFontAndText(hWndCancel, hGuiFont, _localize("Cancel"));
//centerWindow(hWnd, hMainWnd);
restoreWindowPosition(hWnd, hMainWnd);
break;
case 7: //WM_SETFOCUS
oSys.Call("user32::SetFocus", hWndCombobox);
break;
case 256: //WM_KEYDOWN
var ctrl = oSys.Call("user32::GetAsyncKeyState", 162 /*VK_LCONTROL*/)
|| oSys.Call("user32::GetAsyncKeyState", 163 /*VK_RCONTROL*/);
var shift = oSys.Call("user32::GetAsyncKeyState", 160 /*VK_LSHIFT*/)
|| oSys.Call("user32::GetAsyncKeyState", 161 /*VK_RSHIFT*/);
if(wParam == 27 /*VK_ESCAPE*/)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDC_CANCEL, 0);
else if(wParam == 13 /*VK_RETURN*/) {
if(ctrl || shift) // Ctrl+Enter, Shift+Enter
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDC_ALIGN, 0);
else // Enter
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDC_OK, 0);
}
else if(wParam == 112 /*VK_F1*/) // F1
navigate(hWndSepAtEnd, hWndSepAtStart);
else if(wParam == 113 /*VK_F2*/) // F2
navigate(hWndSpLeave, hWndSpLeaveOne, hWndSpRemove);
else if(wParam == 90 /*Z*/) {
if(ctrl && shift) // Ctrl+Shift+Z
!comboboxFocused() && AkelPad.Command(4152); //IDM_EDIT_REDO
else if(ctrl) // Ctrl+Z
!comboboxFocused() && AkelPad.Command(4151); //IDM_EDIT_UNDO
}
else if(ctrl && wParam == 67 /*C*/ || ctrl && wParam == 45 /*VK_INSERT*/) // Ctrl+C, Ctrl+Insert
!comboboxFocused() && AkelPad.Command(4154); //IDM_EDIT_COPY
else if(ctrl && wParam == 86 /*V*/ || shift && wParam == 45 /*VK_INSERT*/) // Ctrl+V, Shift+Insert
!comboboxFocused() && noScroll(function() {
AkelPad.Command(4155); //IDM_EDIT_PASTE
});
else if(ctrl && wParam == 88 /*X*/ || shift && wParam == 46 /*VK_DELETE*/) // Ctrl+X, Shift+Del
!comboboxFocused() && AkelPad.Command(4153); //IDM_EDIT_CUT
else if(wParam == 46 /*VK_DELETE*/) // Delete
!comboboxFocused() && AkelPad.Command(4156); //IDM_EDIT_CLEAR
else if(ctrl && wParam == 65 /*A*/) // Ctrl+A
!comboboxFocused() && noScroll(function() {
AkelPad.Command(4157); //IDM_EDIT_SELECTALL
});
else if(ctrl && wParam == 83 /*S*/) // Ctrl+S
AkelPad.Command(4105); // IDM_FILE_SAVE
//else if(wParam != 16 /*VK_SHIFT*/ && wParam != 17 /*VK_CONTROL*/ && wParam != 18 /*VK_MENU*/)
// AkelPad.MessageBox(hWnd, wParam, dialogTitle, 0 /*MB_OK*/);
break;
case 273: //WM_COMMAND
var idc = wParam & 0xffff;
switch(idc) {
case IDC_OK:
case IDC_ALIGN:
if(!readControlsState())
break;
var curSep = windowText(hWndCombobox);
if(!curSep)
break;
hWndEdit = AkelPad.GetEditWnd();
if(!alignWithSpaces(curSep, hWnd))
break;
addToHistory(curSep);
optionsUsed = true;
if(idc == IDC_OK)
closeDialog();
break;
case IDC_CANCEL:
closeDialog();
break;
case IDC_COMBOBOX_LABEL:
oSys.Call("user32::SetFocus", hWndCombobox);
break;
case IDC_COMBOBOX:
var ok = false;
if(wParam >> 16 == 1 /*CBN_SELCHANGE*/) {
var i = AkelPad.SendMessage(hWndCombobox, 0x147 /*CB_GETCURSEL*/, 0, 0);
ok = AkelPad.SendMessage(hWndCombobox, 0x149 /*CB_GETLBTEXTLEN*/, i, 0) > 0;
}
else {
ok = oSys.Call("user32::GetWindowTextLength" + _TCHAR, hWndCombobox) > 0;
}
enabled(hWndAlign, ok);
enabled(hWndOK, ok);
break;
case IDC_SEP_AT_END:
case IDC_SEP_AT_START:
checked(hWndSepAtEnd, idc == IDC_SEP_AT_END);
checked(hWndSepAtStart, idc == IDC_SEP_AT_START);
if((wParam >> 16 & 0xFFFF) == 5 /*BN_DOUBLECLICKED*/)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDC_ALIGN, 0);
break;
case IDC_SP_LEAVE:
case IDC_SP_LEAVE_ONE:
case IDC_SP_REMOVE:
checked(hWndSpLeave, idc == IDC_SP_LEAVE);
checked(hWndSpLeaveOne, idc == IDC_SP_LEAVE_ONE);
checked(hWndSpRemove, idc == IDC_SP_REMOVE);
if((wParam >> 16 & 0xFFFF) == 5 /*BN_DOUBLECLICKED*/)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDC_ALIGN, 0);
}
break;
case 16: //WM_CLOSE
saveSettings();
modal && enabled(hMainWnd, true); // Enable main window
oSys.Call("user32::DestroyWindow", hWnd); // Destroy dialog
break;
case 2: //WM_DESTROY
oSys.Call("user32::PostQuitMessage", 0); // Exit message loop
}
return 0;
}
function comboboxFocused() {
//typedef struct tagCOMBOBOXINFO {
// DWORD cbSize;
// RECT rcItem;
// RECT rcButton;
// DWORD stateButton;
// HWND hwndCombo;
// HWND hwndItem;
// HWND hwndList;
//} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
var sizeofCBI = 4 + 16*2 + 4*4;
var pcbi = AkelPad.MemAlloc(sizeofCBI);
if(!pcbi)
return false;
AkelPad.MemCopy(pcbi, sizeofCBI, 3 /*DT_DWORD*/);
if(!oSys.Call("user32::GetComboBoxInfo", hWndCombobox, pcbi))
return false;
var hWndComboboxEdit = AkelPad.MemRead(pcbi + 4 + 16*2 + 4*2, 3 /*DT_DWORD*/);
comboboxFocused = function() {
return oSys.Call("user32::GetFocus") == hWndComboboxEdit;
};
return comboboxFocused();
}
function readControlsState() {
if(checked(hWndSepAtStart))
sepAtStart = true;
else if(checked(hWndSepAtEnd))
sepAtStart = false;
else
return false;
if(checked(hWndSpLeave))
minimize = 0;
else if(checked(hWndSpLeaveOne))
minimize = 1;
else if(checked(hWndSpRemove))
minimize = 2;
else
return false;
return true;
}
function navigate() {
for(var i = 0, len = arguments.length; i < len; ++i) {
var hWndRadio = arguments[i];
if(!checked(hWndRadio))
continue;
checked(hWndRadio, false);
checked(arguments[i == len - 1 ? 0 : i + 1], true);
break;
}
}
function addToHistory(str) {
var histLen = lastSeps.length;
for(var i = 0; i < histLen;) {
if(lastSeps[i] != str) {
++i;
continue;
}
AkelPad.SendMessage(hWndCombobox, 0x144 /*CB_DELETESTRING*/, i, 0);
if(lastSeps.splice)
lastSeps.splice(i, 1);
else {
for(var j = i + 1; j < histLen; ++j)
lastSeps[j - 1] = lastSeps[j];
lastSeps.length--;
}
histLen--;
}
//AkelPad.SendMessage(hWndCombobox, 0x14A /*CB_INSERTSTRING*/, 0, lpBuffer);
oSys.Call("user32::SendMessage" + _TCHAR, hWndCombobox, 0x14A /*CB_INSERTSTRING*/, 0, str);
AkelPad.SendMessage(hWndCombobox, 0x14E /*CB_SETCURSEL*/, 0, 0);
if(lastSeps.unshift)
lastSeps.unshift(str);
else {
for(var j = histLen; j > 0; j--)
lastSeps[j] = lastSeps[j - 1];
lastSeps[0] = str;
}
if(lastSeps.length > historyLength) {
AkelPad.SendMessage(hWndCombobox, 0x144 /*CB_DELETESTRING*/, histLen - 1, 0);
lastSeps.length = historyLength;
}
}
function restoreWindowPosition(hWnd, hWndParent) {
if(dlgX == undefined || dlgY == undefined) {
centerWindow(hWnd, hWndParent);
return;
}
var rcWnd = getWindowRect(hWnd);
if(!rcWnd)
return;
var lpRect = AkelPad.MemAlloc(16); //sizeof(RECT)
if(!lpRect)
return;
AkelPad.MemCopy(lpRect, dlgX, 3 /*DT_DWORD*/);
AkelPad.MemCopy(lpRect + 4, dlgY, 3 /*DT_DWORD*/);
AkelPad.MemCopy(lpRect + 8, dlgX + (rcWnd.right - rcWnd.left), 3 /*DT_DWORD*/);
AkelPad.MemCopy(lpRect + 12, dlgY + (rcWnd.top - rcWnd.bottom), 3 /*DT_DWORD*/);
var hMonitor = oSys.Call("user32::MonitorFromRect", lpRect, 0x2 /*MONITOR_DEFAULTTONEAREST*/);
if(hMonitor) {
//typedef struct tagMONITORINFO {
// DWORD cbSize;
// RECT rcMonitor;
// RECT rcWork;
// DWORD dwFlags;
//} MONITORINFO, *LPMONITORINFO;
var sizeofMonitorInfo = 4 + 16 + 16 + 4;
var lpMi = AkelPad.MemAlloc(sizeofMonitorInfo);
if(lpMi) {
AkelPad.MemCopy(lpMi, sizeofMonitorInfo, 3 /*DT_DWORD*/);
oSys.Call("user32::GetMonitorInfo" + _TCHAR, hMonitor, lpMi);
var rcWork = parseRect(lpMi + 4 + 16);
AkelPad.MemFree(lpMi);
}
}
else { //?
oSys.Call("user32::SystemParametersInfo" + _TCHAR, 48 /*SPI_GETWORKAREA*/, 0, lpRect, 0);
var rcWork = parseRect(lpRect);
}
AkelPad.MemFree(lpRect);
if(rcWork) {
var edge = Math.max(
16,
oSys.Call("user32::GetSystemMetrics", 8 /*SM_CYFIXEDFRAME*/)
+ oSys.Call("user32::GetSystemMetrics", 4 /*SM_CYCAPTION*/)
);
var minX = rcWork.left - (rcWnd.right - rcWnd.left) + edge;
var minY = rcWork.top;
var maxX = rcWork.right - edge;
var maxY = rcWork.bottom - edge;
dlgX = Math.max(minX, Math.min(maxX, dlgX));
dlgY = Math.max(minY, Math.min(maxY, dlgY));
}
oSys.Call("user32::SetWindowPos", hWnd, 0, dlgX, dlgY, 0, 0, 0x15 /*SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE*/);
}
function centerWindow(hWnd, hWndParent) {
var rcWnd = getWindowRect(hWnd);
var rcWndParent = getWindowRect(hWndParent || oSys.Call("user32::GetDesktopWindow"));
if(!rcWndParent || !rcWnd)
return;
var x = rcWndParent.left + ((rcWndParent.right - rcWndParent.left) / 2 - (rcWnd.right - rcWnd.left) / 2);
var y = rcWndParent.top + ((rcWndParent.bottom - rcWndParent.top) / 2 - (rcWnd.bottom - rcWnd.top) / 2);
oSys.Call("user32::SetWindowPos", hWnd, 0, x, y, 0, 0, 0x15 /*SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE*/);
}
function getWindowRect(hWnd, hWndParent) {
var lpRect = AkelPad.MemAlloc(16); //sizeof(RECT)
if(!lpRect)
return null;
oSys.Call("user32::GetWindowRect", hWnd, lpRect);
hWndParent && oSys.Call("user32::ScreenToClient", hWndParent, lpRect);
var rcWnd = parseRect(lpRect);
AkelPad.MemFree(lpRect);
return rcWnd;
}
function parseRect(lpRect) {
return {
left: AkelPad.MemRead(lpRect, 3 /*DT_DWORD*/),
top: AkelPad.MemRead(lpRect + 4, 3 /*DT_DWORD*/),
right: AkelPad.MemRead(lpRect + 8, 3 /*DT_DWORD*/),
bottom: AkelPad.MemRead(lpRect + 12, 3 /*DT_DWORD*/)
};
}
function windowText(hWnd, pText) {
if(arguments.length > 1)
return oSys.Call("user32::SetWindowText" + _TCHAR, hWnd, pText);
var len = oSys.Call("user32::GetWindowTextLength" + _TCHAR, hWnd);
var lpText = AkelPad.MemAlloc((len + 1)*_TSIZE);
if(!lpText)
return "";
oSys.Call("user32::GetWindowText" + _TCHAR, hWnd, lpText, len + 1);
pText = AkelPad.MemRead(lpText, _TSTR);
AkelPad.MemFree(lpText);
return pText;
}
function checked(hWnd, val) {
return arguments.length == 1
? AkelPad.SendMessage(hWnd, 240 /*BM_GETCHECK*/, 0, 0)
: AkelPad.SendMessage(hWnd, 241 /*BM_SETCHECK*/, val ? 1 /*BST_CHECKED*/ : 0, 0);
}
function enabled(hWnd, val) {
oSys.Call("user32::EnableWindow", hWnd, val);
}
function closeDialog() {
oSys.Call("user32::PostMessage" + _TCHAR, hWndDialog, 16 /*WM_CLOSE*/, 0, 0);
}
function Scale(hDC, hWnd) {
var hNewDC = hDC || oSys.Call("user32::GetDC", hWnd);
if(hNewDC) {
this._x = oSys.Call("gdi32::GetDeviceCaps", hNewDC, 88 /*LOGPIXELSX*/);
this._y = oSys.Call("gdi32::GetDeviceCaps", hNewDC, 90 /*LOGPIXELSY*/);
//Align to 16 pixel
this._x += this._x % 16;
this._y += this._y % 16;
!hDC && oSys.Call("user32::ReleaseDC", hWnd, hNewDC);
this.x = function(x) {
return oSys.Call("kernel32::MulDiv", x, this._x, 96);
};
this.y = function(y) {
return oSys.Call("kernel32::MulDiv", y, this._y, 96);
};
}
else {
this.x = this.y = function(n) {
return n;
};
}
}
function createWindowEx(
dwExStyle, lpClassName, lpWindowName, dwStyle,
x, y, w, h,
hWndParent, id, hInstance, callback
) {
return oSys.Call(
"user32::CreateWindowEx" + _TCHAR,
dwExStyle,
lpClassName,
lpWindowName,
dwStyle,
scale.x(x),
scale.y(y),
scale.x(w),
scale.y(h),
hWndParent,
id,
hInstance,
callback || 0
);
}
modal && enabled(hMainWnd, false); // Disable main window, to make dialog modal
AkelPad.ScriptNoMutex(); // Allow other scripts running
AkelPad.WindowGetMessage(); // Message loop
AkelPad.WindowUnregisterClass(dialogClass);
}
function escapeRegExp(str) {
return str.replace(/[\\\/.^$+*?|()\[\]{}]/g, "\\$&");
}
function insertNoScroll(str, selectAll) {
noScroll(function() {
selectAll && AkelPad.SetSel(0, -1);
//var ss = AkelPad.GetSelStart();
AkelPad.ReplaceSel(str, true);
//if(ss != AkelPad.GetSelStart())
// AkelPad.SetSel(ss, ss + str.length);
});
}
function noScroll(func, hWndEdit) {
if(!hWndEdit)
hWndEdit = AkelPad.GetEditWnd();
var lpPoint = AkelPad.MemAlloc(8 /*sizeof(POINT)*/);
if(!lpPoint)
return;
setRedraw(hWndEdit, false);
AkelPad.SendMessage(hWndEdit, 1245 /*EM_GETSCROLLPOS*/, 0, lpPoint);
func();
AkelPad.SendMessage(hWndEdit, 1246 /*EM_SETSCROLLPOS*/, 0, lpPoint);
setRedraw(hWndEdit, true);
AkelPad.MemFree(lpPoint);
}
function setRedraw(hWnd, bRedraw) {
AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
bRedraw && oSys.Call("user32::InvalidateRect", hWnd, 0, true);
}
function getOffset(hWndEdit, nType /*AEGI_*/, nOffset) {
// Based on Instructor's code
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=11382#11382
var lpIndex = AkelPad.MemAlloc(_X64 ? 24 : 12 /*sizeof(AECHARINDEX)*/);
if(!lpIndex)
return 0;
if(nOffset != -1)
AkelPad.SendMessage(hWndEdit, 3137 /*AEM_RICHOFFSETTOINDEX*/, nOffset, lpIndex);
AkelPad.SendMessage(hWndEdit, 3130 /*AEM_GETINDEX*/, nType, lpIndex);
nOffset = AkelPad.SendMessage(hWndEdit, 3136 /*AEM_INDEXTORICHOFFSET*/, 0, lpIndex);
AkelPad.MemFree(lpIndex);
return nOffset;
}
function getArg(argName, defaultVal) {
var args = {};
for(var i = 0, argsCount = WScript.Arguments.length; i < argsCount; ++i)
if(/^[-\/](\w+)(=(.+))?$/i.test(WScript.Arguments(i)))
args[RegExp.$1.toLowerCase()] = RegExp.$3 ? eval(RegExp.$3) : true;
getArg = function(argName, defaultVal) {
argName = argName.toLowerCase();
return typeof args[argName] == "undefined" // argName in args
? defaultVal
: args[argName];
};
return getArg(argName, defaultVal);
} |
<download>
Align selected code with spaces to user defined string.
Use column selection in complex cases.
Example
Before: | Code: | var x = 0;
var someVar = 2;
var someAnotherVar = 4; | After (used "=" character): | Code: | var x = 0;
var someVar = 2;
var someAnotherVar = 4; |
Example with regular expression
Before: | Code: | switch(e.type) {
case "mousedown": f(); break;
case "mouseup": someFunction(); break;
case "click": someAnotherFunction(); break;
} | After "/\w+\(/" (or ":" and -sepAtStart=true): | Code: | switch(x) {
case "mousedown": f(); break;
case "mouseup": someFunction(); break;
case "click": someAnotherFunction(); break;
} | After "break": | Code: | switch(x) {
case "mousedown": f(); break;
case "mouseup": someFunction(); break;
case "click": someAnotherFunction(); break;
} |
Screenshots
Last edited by Infocatcher on Fri May 11, 2012 5:56 pm; edited 8 times in total |
|
| Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 477 Location: Сочи, Хоста
|
Posted: Sat May 28, 2011 11:47 pm Post subject: |
|
|
InsertMsgBox.vbs
| Code: | ' InsertMsgBox.vbs
'======================== Описание =====================================
' В файлах скриптинга (Vbs, Js, Au3...) вставляет соответствующую функцию MsgBox...
' выводящую информацию для проверяемой выделенной переменной или вычисляемых выражений
' Если проверяемая переменная не выделена, она выделяется
' Необходимо курсор поставить либо на переменную либо справа от неё
' Для отображения MsgBox для выражения - необходимо его выделить
'======================== Параметр ========================================
' 1 - вставка после переменной
' 2 - вставка до переменной
' 3 - вставка до и после переменной
'======================== Примеры ====================================
' -"Вставить MsgBox после переменной" Call("Scripts::Main", 1, "InsertMsgBox.vbs", "1") Icon("%a\AkelPadImage.dll",627)
' -"Вставить MsgBox до переменной" Call("Scripts::Main", 1, "InsertMsgBox.vbs", "2") Icon("%a\AkelPadImage.dll",626)
' -"Вставить MsgBox до и после переменной" Call("Scripts::Main", 1, "InsertMsgBox.vbs", "3") Icon("%a\AkelPadImage.dll",625)
' используется Functions.vbs, который следует положить ...AkelFiles\Plugs\Scripts\Include\
' Автор: Аверин Андрей
' Версия: 1.5 (11.01.2011 - 01.09.2012)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru/forum/9-382-1157-16-1333712982
' Site: http://akelpad.sourceforge.net/forum/viewtopic.php?p=13098#13098
'===========================================================================
If AkelPad.GetEditWnd() = 0 Then WScript.Quit
N = 1 : k = Chr(34)
if WScript.Arguments.Length > 0 Then n = CInt(WScript.Arguments(0))
With AkelPad Call .Include("Functions.vbs") : pName = .GetSelText() : Curs = .GetSelStart()
If Len(pName) = 0 Then pName = GetWordLeft
If Len(pName) = 0 Then WScript.Quit
Call SetRedraw(.GetEditWnd(), False) : Call .SendMessage(.GetEditWnd(), 3185, 3, True)
pExt = UCase(GetExtFile)
If InStr("VBS;JS;AU3", pExt) = 0 Then Call EndRedraw
Exx = ExtLine(pExt, pName)
Select Case N
Case 1 Text = vbNewLine & Exx : poz = PosEndLine
Case 2 Text = Exx & vbNewLine : poz = PosBegLine
Case 3 Text = vbNewLine & Exx : poz = PosEndLine : Text2 = Exx & vbNewLine : poz2 = PosBegLine
End Select
If N > 1 Then Curs = Curs + Len(Exx) + 1
Call .SetSel(poz, poz)
Call .ReplaceSel(Text)
If Len(Text2) > 0 Then : Call .SetSel(poz2, poz2) : Call .ReplaceSel(Text2) : End If
Call .SetSel(Curs, Curs)
Call .SendMessage(.GetEditWnd(), 3185, 3, False)
Call SaveEditFile : Call EndRedraw
Call .SendMessage(.GetEditWnd(), 3376, 3, 0)
End With
' функция присваивает, расширению соответствующую функцию MsgBox ...
' есть возможность добавить своё или исправить имеющееся
Function ExtLine(Ext, Name)
SName = Name : Slovo = "Переменная "
if Instr(SName, """") > 0 Then
SName = Replace(SName, k, k & " & Chr(34) & " & k) : JSName = Replace(SName, k, k & " + Chr(34) + " & k)
End if
Stroka = "(,&+-*^/"
For nn = 1 To Len(Stroka)
if Instr(SName, Mid(Stroka, nn, 1)) > 0 Then Slovo = "Выражение "
Next
Select Case Ext
Case "VBS"
Line = "MsgBox " & k & Slovo & SName & " =" & k & " & vbNewLine & " & k & "<" & k & " & " & Name & " & " & k & ">" & k
Case "JS"
Line = "AkelPad.MessageBox(0," & k & JSName & " =>" & k & " + " & Name & " + " & k & "<=" & k & ", " & k & Slovo & Name & k & ", 64);"
Case "AU3"
if Left(Name,1) <> "$" Then Name = "$" & Name
Line = "MsgBox(4096, " & k & Slovo & k & " & " & SName & " , " & k & Name & " =>" & k & " & " & Name & " & " & k & "<=" & k & ")"
End Select
ExtLine = Line
End Function |
Используется: Functions.vbs
Last edited by Andrey_A_A on Thu Sep 13, 2012 2:22 am; edited 4 times in total |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Fri Jun 03, 2011 12:08 pm Post subject: |
|
|
DownloadMaster.js
| Code: | ///Downloading a file by URL using Download Master
///Передача URL на закачку в Download Master; работает из контекстного меню ссылок
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=13156#13156
// Version: 1.2 (2011.08.22)
//
// -"Закачать при помощи DM" Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u" -cmdline="hidden=1"`); parameters of the comandLine see: http://www.westbyte.com/dm/help/tutorial_commandline.htm
// -"Добавление закачки в DM..." Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u"`)
// -"Добавление закачки в DM..." Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u" -dmpath="%COMMANDER_PATH%\Programs\Internet\Download_Master\dmaster.exe"`)
// -"Добавление закачки в DM..." Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u" -dmpath="%ProgramFiles%\Download Master\dmaster.exe"`)
var WshShell = new ActiveXObject("WScript.Shell");
var url = AkelPad.GetArgValue("url", ""); //URL
if (!url)
showErrorMessage('Параметр (-url="%u") отсутствует в аргументах.', true);
var pProgram = AkelPad.GetArgValue("dmpath", ""); //ПУТЬ К ПРОГРАММЕ; сначала берём из агрументов
if (pProgram)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(pProgram) == false)
showErrorMessage("Приложение Download Master не найдено." + "\r" + "Путь: '" + pProgram + "'.", true);
}
else
{
pProgram = RegRead("HKCR\\Applications\\dmaster.exe\\shell\\open\\command\\"); //читаем значение по умолчанию
if (!pProgram)
showErrorMessage("Приложение Download Master не зарегистрировано в системе.", true);
pProgram = pProgram.replace('"%L"', "");
}
var commandLine = AkelPad.GetArgValue("cmdline", ""); //КОМАНДНАЯ СТРОКА
if (commandLine)
commandLine = " " + commandLine;
WshShell.Exec(pProgram + " " + url + commandLine);
function showErrorMessage(pText, bQuit)
{
AkelPad.MessageBox(AkelPad.GetEditWnd(), pText, WScript.ScriptName, 48);
if (bQuit) WScript.Quit();
}
function getPath(paths)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var path = WshShell.ExpandEnvironmentStrings(paths);
if (fso.FileExists(path))
return path;
return "";
}
function RegRead(pPath)
{
try
{ return WshShell.RegRead(pPath) }
catch(e)
{ return null }
} |
Last edited by VladSh on Mon Aug 22, 2011 12:08 pm; edited 3 times in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Wed Jun 15, 2011 3:42 pm Post subject: |
|
|
Merge contents of all opened documents in one file.
MergeDocuments.js | Code: | // http://akelpad.sourceforge.net/forum/viewtopic.php?p=13246#13246
// Version v1.0
//
//
//// Merge contents of all opened documents in one file.
var hMainWnd=AkelPad.GetMainWnd();
var pText="";
var nIndex=0;
if (hMainWnd)
{
while (lpFrame=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 8 /*FWF_BYTABINDEX*/, nIndex++))
{
AkelPad.SendMessage(hMainWnd, 1285 /*AKD_FRAMEACTIVATE*/, 0, lpFrame);
pText+=AkelPad.GetTextRange(0, -1);
}
if (pText)
{
AkelPad.Command(4101 /*IDM_FILE_NEW*/);
AkelPad.ReplaceSel(pText);
AkelPad.Command(4106 /*IDM_FILE_SAVEAS*/);
}
}
|
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Thu Jun 16, 2011 12:22 pm Post subject: |
|
|
CutFormattingText.js
| Code: | ///Cutting text with formatting
///Вырезает текст с "форматированием" (с подсветкой "синтаксиса" для текущего файла, установленной с помощью плагина Coder)
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=13256#13256
// Version: 1.4 (2011.07.21)
// -"Вырезать (с форматированием)" Call("Scripts::Main", 1, "CutFormattingText.js")
var nFLAGS = AkelPad.GetArgLine() || 48; //по умолчанию "копировать с форматированием и заполнять текстовый буфер обмена" (16+32)
var pText = AkelPad.GetSelText() || AkelPad.SetSel(0, -1) || AkelPad.GetSelText();
if (pText)
{
if (AkelPad.Call("Coder::Settings", 4, nFLAGS) >= 0)
AkelPad.ReplaceSel("");
} |
Last edited by VladSh on Thu Jul 21, 2011 4:02 pm; edited 1 time in total |
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Tue Jun 21, 2011 8:12 pm Post subject: |
|
|
Inserts folder name using SHBrowseForFolder function.
InsertFolderName.js
| Code: | // Inserts folder name using SHBrowseForFolder function - 2011-06-22
//
// Call("Scripts::Main", 1, "InsertFolderName.js")
var hEditWnd = AkelPad.GetEditWnd();
if (! hEditWnd)
WScript.Quit();
var DT_DWORD = 3;
var oSys = AkelPad.SystemFunction();
var sFile = AkelPad.GetEditFile(0);
var sDir = "";
var lpCallback = oSys.RegisterCallback("BrowseForFolderCallback");
var lpDir = AkelPad.MemAlloc(260 * _TSIZE); //sizeof(MAX_PATH)
var lpBrowse = AkelPad.MemAlloc(32); //sizeof(BROWSEINFO)
var lpIDL;
if (sFile)
sDir = sFile.substr(0, sFile.lastIndexOf("\\") + 1);
AkelPad.MemCopy(lpDir, sDir, _TSTR);
AkelPad.MemCopy(lpBrowse , hEditWnd, DT_DWORD); //hwndOwner
AkelPad.MemCopy(lpBrowse + 4, 0, DT_DWORD); //pidlRoot
AkelPad.MemCopy(lpBrowse + 8, lpDir, DT_DWORD); //pszDisplayName
AkelPad.MemCopy(lpBrowse + 12, 0, DT_DWORD); //lpszTitle
AkelPad.MemCopy(lpBrowse + 16, 0x00000041, DT_DWORD); //ulFlags = BIF_NEWDIALOGSTYLE|BIF_RETURNONLYFSDIRS
AkelPad.MemCopy(lpBrowse + 20, lpCallback, DT_DWORD); //lpfn
AkelPad.MemCopy(lpBrowse + 24, lpDir, DT_DWORD); //lParam
AkelPad.MemCopy(lpBrowse + 28, 0, DT_DWORD); //iImage
oSys.Call("Ole32::CoInitialize", 0);
lpIDL = oSys.Call("Shell32::SHBrowseForFolder" + _TCHAR, lpBrowse);
if (lpIDL)
{
oSys.Call("Shell32::SHGetPathFromIDList" + _TCHAR, lpIDL, lpDir);
sDir = AkelPad.MemRead(lpDir, _TSTR);
if (sDir && (! /\\$/.test(sDir)))
sDir += "\\";
AkelPad.ReplaceSel(sDir, 1);
}
oSys.Call("Ole32::CoTaskMemFree, lpIDL");
oSys.Call("Ole32::CoUninitialize");
AkelPad.MemFree(lpBrowse);
AkelPad.MemFree(lpDir);
oSys.UnregisterCallback(lpCallback);
function BrowseForFolderCallback(hWnd, uMsg, lParam, lpData)
{
if (uMsg == 1 /*BFFM_INITIALIZED*/)
AkelPad.SendMessage(hWnd, 0x0467 /*BFFM_SETSELECTIONW*/, 1, lpData);
return 0;
}
|
|
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Wed Jun 22, 2011 7:49 pm Post subject: |
|
|
Inserts folder name using SHBrowseForFolder function.
Alternative version with AkelPad.Include("BrowseForFolder_function.js").
InsertFolderName_alternative.js
| Code: | // Inserts folder name using SHBrowseForFolder function - 2011-06-22
//
// Alternative version with AkelPad.Include("BrowseForFolder_function.js")
// Script BrowseForFolder_function.js must be placed in directory ...\Scripts\Include
// Call("Scripts::Main", 1, "InsertFolderName_alternative.js")
var hEditWnd = AkelPad.GetEditWnd();
var sFile = AkelPad.GetEditFile(0);
var sTitle = "Choose folder for inserting to text:";
var sDir = "";
if ((hEditWnd) && AkelPad.Include("BrowseForFolder_function.js"))
{
if (sFile)
sDir = sFile.substr(0, sFile.lastIndexOf("\\") + 1);
sDir = BrowseForFolder(hEditWnd, sTitle, sDir);
if (sDir)
AkelPad.ReplaceSel(sDir, 1);
}
|
BrowseForFolder_function.js
| Code: | // BrowseForFolder_function.js - ver. 2013-04-07
//
// Call in script:
// if (! AkelPad.Include("BrowseForFolder_function.js")) WScript.Quit();
// sDir = BrowseForFolder(hWndOwn, sTitle, sIniDir, sDlgTitle);
//
// All arguments are optional:
// hWndOwn - handle to the owner window for the dialog box, default is desktop window
// sTitle - string that is displayed above the tree view control in the dialog box, default is ""
// sIniDir - folder to be selected, after calling the function, default is ""
// sDlgTitle - dialog box title, default is standard title
//
// Function returns string - selected folder name or "" if you press Cancel button
function BrowseForFolder(hWndOwn, sTitle, sIniDir, sDlgTitle)
{
var DT_UNICODE = 1;
var DT_DWORD = 3;
var oSys = AkelPad.SystemFunction();
var hWndDesk = oSys.Call("User32::GetDesktopWindow");
if (! oSys.Call("User32::IsWindow", hWndOwn))
hWndOwn = hWndDesk;
if (typeof sTitle != "string")
sTitle = "";
if (typeof sIniDir != "string")
sIniDir = "";
var lpCallback = oSys.RegisterCallback("", BFFCallback, 4);
var lpTitle = AkelPad.MemAlloc((sTitle.length + 1) * 2);
var lpDir = AkelPad.MemAlloc(260 * 2); //sizeof(MAX_PATH)
var lpBrowse = AkelPad.MemAlloc(32); //sizeof(BROWSEINFO)
var sDir = "";
var lpIDL;
AkelPad.MemCopy(lpTitle, sTitle, DT_UNICODE);
AkelPad.MemCopy(lpDir, sIniDir, DT_UNICODE);
AkelPad.MemCopy(lpBrowse , hWndOwn, DT_DWORD); //hWndOwner
AkelPad.MemCopy(lpBrowse + 4, 0, DT_DWORD); //pidlRoot
AkelPad.MemCopy(lpBrowse + 8, lpDir, DT_DWORD); //pszDisplayName
AkelPad.MemCopy(lpBrowse + 12, lpTitle, DT_DWORD); //lpszTitle
AkelPad.MemCopy(lpBrowse + 16, 0x00000041, DT_DWORD); //ulFlags = BIF_NEWDIALOGSTYLE|BIF_RETURNONLYFSDIRS
AkelPad.MemCopy(lpBrowse + 20, lpCallback, DT_DWORD); //lpfn
AkelPad.MemCopy(lpBrowse + 24, 0, DT_DWORD); //lParam = lpData in callback function
AkelPad.MemCopy(lpBrowse + 28, 0, DT_DWORD); //iImage
oSys.Call("Ole32::CoInitialize", 0);
lpIDL = oSys.Call("Shell32::SHBrowseForFolderW", lpBrowse);
if (lpIDL)
{
oSys.Call("Shell32::SHGetPathFromIDListW", lpIDL, lpDir);
sDir = AkelPad.MemRead(lpDir, DT_UNICODE);
}
oSys.Call("Ole32::CoTaskMemFree", lpIDL);
oSys.Call("Ole32::CoUninitialize");
AkelPad.MemFree(lpBrowse);
AkelPad.MemFree(lpTitle);
oSys.UnregisterCallback(lpCallback);
return sDir;
function BFFCallback(hWnd, uMsg, lParam, lpData)
{
if (uMsg == 1 /*BFFM_INITIALIZED*/)
{
var lpRect = AkelPad.MemAlloc(16); //sizeof(RECT)
var hWnd1;
var hWnd2;
var nWndX, nWndY, nWndW, nWndH;
var nOwnX, nOwnY, nOwnW, nOwnH;
var nDeskW, nDeskH;
if (typeof sDlgTitle == "string")
oSys.Call("User32::SetWindowTextW", hWnd, sDlgTitle);
AkelPad.SendMessage(hWnd, 0x0467 /*BFFM_SETSELECTIONW*/, 1, lpDir);
//set focus to TreeView
if (hWnd1 = oSys.Call("User32::FindWindowExW", hWnd, 0, "SHBrowseForFolder ShellNameSpace Control", 0))
{
if (hWnd2 = oSys.Call("User32::FindWindowExW", hWnd1, 0, "SysTreeView32", 0))
oSys.Call("User32::PostMessageW", hWnd, 0x0028 /*WM_NEXTDLGCTL*/, hWnd2, 1);
}
//center dialog
oSys.Call("User32::GetWindowRect", hWnd, lpRect);
nWndX = AkelPad.MemRead(lpRect, DT_DWORD);
nWndY = AkelPad.MemRead(lpRect + 4, DT_DWORD);
nWndW = AkelPad.MemRead(lpRect + 8, DT_DWORD) - nWndX;
nWndH = AkelPad.MemRead(lpRect + 12, DT_DWORD) - nWndY;
oSys.Call("User32::GetWindowRect", hWndOwn, lpRect);
nOwnX = AkelPad.MemRead(lpRect, DT_DWORD);
nOwnY = AkelPad.MemRead(lpRect + 4, DT_DWORD);
nOwnW = AkelPad.MemRead(lpRect + 8, DT_DWORD) - nOwnX;
nOwnH = AkelPad.MemRead(lpRect + 12, DT_DWORD) - nOwnY;
oSys.Call("User32::GetWindowRect", hWndDesk, lpRect);
nDeskW = AkelPad.MemRead(lpRect + 8, DT_DWORD);
nDeskH = AkelPad.MemRead(lpRect + 12, DT_DWORD);
AkelPad.MemFree(lpRect);
nWndX = nOwnX + (nOwnW - nWndW) / 2;
nWndY = nOwnY + (nOwnH - nWndH) / 2;
if ((nWndX + nWndW) > nDeskW)
nWndX = nDeskW - nWndW;
if (nWndX < 0)
nWndX = 0;
if ((nWndY + nWndH) > nDeskH)
nWndY = nDeskH - nWndH;
if (nWndY < 0)
nWndY = 0;
oSys.Call("User32::MoveWindow", hWnd, nWndX, nWndY, nWndW, nWndH, 0);
}
return 0;
}
}
|
Last edited by KDJ on Sun Apr 07, 2013 2:05 pm; edited 4 times in total |
|
| Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 477 Location: Сочи, Хоста
|
Posted: Thu Jun 23, 2011 10:05 pm Post subject: |
|
|
Descript.vbs
| Code: | ' Descript.vbs
'======================== Описание =====================================
' Внесение выделенного текста в файл комментариев Descript.ion
' если ничего не выделено, в комментарий вносится часть строки, от курсора вправо
'======================= Параметры ======================================
' Один параметр:
' 0 - (или ничего) - открыть файл Descript.ion (если его нет - создать и открыть)
' 1 - внести выделенный текст в комментарии (если коммент. есть для этого файла - заменить)
' 2 - внести выделенный текст в комментарии и открыть файл
' 3 - Удалить комментарии несуществующих файлов\папок
' 4 - Дать полную информацию:
' - открыть файл
' - отобразить в новой вкладке каким файлам\папкам присвоены комментарии
' - отобразить в новой вкладке каким файлам\папкам не присвоены комментарии
' - отобразить в новой вкладке лишние комментарии (оставшиеся после удаления файла\папки)
' (если документ не имеет имени ничего не происходит)
'======================== Примеры ======================================
' "&Комментарии..." Icon("%a\AkelPadImage.dll",557)
' {
' -"Открыть файл Descript.ion" Call("Scripts::Main", 1, "Descript.vbs")
' -"Внести выделенный текст в комментарии Shift+Alt+C" Call("Scripts::Main", 1, "Descript.vbs", `"1"`)
' -"Внести выделенный текст в комментарии +" Call("Scripts::Main", 1, "Descript.vbs", `"2"`)
' -"Удалить комментарии несуществующих ф\п" Call("Scripts::Main", 1, "Descript.vbs", `"3"`)
' -"Дать полную информацию о Descript.ion" Call("Scripts::Main", 1, "Descript.vbs", `"4"`)
' }
' используется Functions.vbs, который следует положить .в ..AkelFiles\Plugs\Scripts\Include\
' Автор: Аверин Андрей
' Версия: 1.5 (28.04.2011 - 08.09.2012)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru/forum/9-421-1208-16-1333826782
' Site: http://akelpad.sourceforge.net/forum/viewtopic.php?p=13346#13346
'===========================================================================
File = AkelPad.GetEditFile(0)
If Len(File) = 0 Then WScript.Quit ' если документ не имеет имени
Set FSO = CreateObject("Scripting.FileSystemObject")
Call AkelPad.Include("Functions.vbs")
dPath = FSO.GetParentFolderName(File)
dFile = dPath & "\descript.ion" : pText = ""
If Not FSO.FileExists(DFile) Then
Call FSO.CreateTextFile(DFile)
With FSO.GetFile(DFile) .Attributes = .Attributes Or 38 End With
End If
fName = FSO.GetFileName(File) : nS = 0
If WScript.Arguments.Count = 0 Then
k = 0
Else
k = WScript.Arguments(0)
End If
Select Case k
Case 0 Call AkelPad.OpenFile(dFile)
Case 1 Call WriteFile(dFile, fName)
Case 2 Call WriteFile(dFile, fName) : Call AkelPad.OpenFile(dFile)
Case 3 Call ClearFile(dFile, dPath, 1)
Case 4 Call ClearFile(dFile, dPath, 2) : Call AkelPad.OpenFile(dFile)
End Select
' функция записи выделенного (или части строки) комментария
Sub WriteFile(fDesc, Name) tText = AkelPad.GetSelText()
If Len(tText) = 0 Then tText = GetLineRight ' если ничего не выделено, выделяется строка вправо от курсора
If Len(tText) = 0 Then WScript.Quit ' если ничего не выделено
If InStr(tText, chr(13)) > 0 Then
Txt = Split(tText, chr(13))
iTxt = Name & " ' " & Join(Txt, "\n") & "\nВ"
Else
iTxt = Name & " ' " & tText & "\nВ" ' уберите из строки & "\nВ" если не нужен перенос в комментарии
End If
On Error Resume Next
pText = FSO.OpenTextFile(fDesc).ReadAll
If Len(pText) > 0 Then
List = Split(pText, vbNewLine)
For i = 1 To Ubound(List) + 1
If UCase(Name & Chr(32)) = UCase(Left(List(i - 1), Len(Name) + 1)) Then
nS = i : Exit For
End If
Next
If nS > 0 Then
List(nS - 1) = iTxt : Text = Join(List, vbNewLine)
Else
Text = Join(List, vbNewLine) & vbNewLine & iTxt
End If
Text = Selecting(Text)
Else
Text = iTxt & vbNewLine
End If
Text = Replace(Text, vbNewLine & vbNewLine, vbNewLine)
FSO.OpenTextFile(fDesc, 2).Write Text
End Sub
Sub ClearFile(fD, dP, s)
cList = Split(FSO.OpenTextFile(fD).ReadAll, vbNewLine)
On Error Resume Next
Set Folder = FSO.GetFolder(dP)
For Each Files In Folder.Files
nList = nList & Files.Name & " ;"
Next
For Each Folder In Folder.SubFolders
nList = nList & Folder.Name & " ;"
Next
sLst = Split(nList, ";") : n = 0
For i = 0 To Ubound(sLst) ' массив папок и файлов
For j = 0 To Ubound(cList) ' массив комментариев
If Len(cList(j)) > 0 And Len(sLst(i)) > 0Then
if UCase(sLst(i)) = UCase(Left(cList(j), Len(sLst(i)))) Then
n = 1 : oText = oText & cList(j) & vbNewLine : cList(j) = "" : Exit For
End If
End If
Next
If n = 0 Then noText = noText & sLst(i) & vbNewLine : n = 0
Next
oText = Selecting(oText)
If s = 1 Then
FSO.OpenTextFile(fD, 2).Write oText
Else
For i = 0 To Ubound(cList)
If Len(cList(i)) > 0 Then mText = mText & cList(i) & vbNewLine
Next
noText = "Для этих файлов\папок комментарии не установлены" & vbNewLine & String(90, "-") & vbNewLine & Selecting(noText)
mText = "Комментарии для этих файлов\папок установлены, но файлов\папок нет" & vbNewLine & String(90, "-") & vbNewLine & Selecting(mText)
Call ReplSel(oText) : Call ReplSel(noText) : Call ReplSel(mText)
End If
End Sub
Sub ReplSel(xText)
With AkelPad
Call .SendMessage(.GetMainWnd(), 273, 4101, 0)
Call SetRedraw(.GetEditWnd(), False)
Call .ReplaceSel(Replace(xText, vbNewLine & vbNewLine, vbNewLine))
Call .SendMessage(.GetEditWnd(), 3087, False, 0)
Call .SendMessage(.GetEditWnd(), 3079, 0, 0)
Call .SetSel(0, 0)
Call SetRedraw(.GetEditWnd(), True)
End With
End Sub |
Используется: Functions.vbs
Значки для скрипта:
Descript.b64
| Code: | MIME-Version: 1.0
Content-Type: application/octet-stream; name="Descript.dll"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Descript.dll"
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAsAAAAA4fug4AtAnNIbgBTM0hVGhpcyBpcyAzMi1iaXQgcmVzb3VyY2UgZGxsLg0NCgAAAAAA
AAAAAAAAJAAAAAAAAAAp5wHbbYZviG2Gb4hthm+IqoBpiGyGb4gypGWIbIZviFJpY2hthm+IAAAA
AAAAAABQRQAATAEBAAyj6DoAAAAAAAAAAOAADwELAQYAAAAAAJAYAAAAAAAAAAAAAAACAAAAAgAA
AABAABAAAAAQAAAABAAAAAAAAAAEAAAAAAAAAJAaAAAAAgAAAAAAAAIAAAAAABAAABAAAAAAEAAA
EAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAIwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5yc3JjAAAAjBgAAAACAACQGAAAAAIAAAAAAAAAAAAA
AAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAQAAAAAAAIAAwAAACAAAIAOAAAAWAAAgAAAAAAAAAAABAAAAAAABQABAAAAkAAAgAIA
AACoAACAAwAAAMAAAIAEAAAA2AAAgAUAAADwAACAAAAAAAAAAAAEAAAAAAAFAAEAAAAIAQCAAgAA
ACABAIADAAAAOAEAgAQAAABQAQCABQAAAGgBAIAAAAAAAAAAAAQAAAAAAAEAAAAAAIABAAAAAAAA
AAAAAAQAAAAAAAEAAAAAAJABAAAAAAAAAAAAAAQAAAAAAAEAAAAAAKABAAAAAAAAAAAAAAQAAAAA
AAEAAAAAALABAAAAAAAAAAAAAAQAAAAAAAEAAAAAAMABAAAAAAAAAAAAAAQAAAAAAAEAAAAAANAB
AAAAAAAAAAAAAAQAAAAAAAEAAAAAAOABAAAAAAAAAAAAAAQAAAAAAAEAAAAAAPABAAAAAAAAAAAA
AAQAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAQAAAAAAAEAAAAAABACAAAgBAAAaAQAAOQEAAAAAAAA
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
wtyI/7/ZiP/E3In/xdqJ/8Xaif/E3In/wdmI/8HZh//I54f/7u78/wAAAKYAAAALtbPQmm+mAP9v
gAD/gZMA/5GkAP+asAD/o7oA/6a8AP+iuAD/nbMA/5OpAP+HmgD/dIcA/4CSAP/1+P//AAAAPcbC
6MtfbwD/eowA/4ygAP+asAD/qsEA/4SYAP9ijAD/n7QA/6rBAP+itwD/laoA/4eaAP9cbAD/1fGW
/wAAAFvQy/HLX28A/2+AAP+AkgD/jqIA/2JxAP/x6P///////22ICv+TqQD/kaQA/4SYAP93iQD/
WGcA/9fun/8AAABa2tb7y19vAP9ldgD/dIcA/1tqAP/58v//////////////////YHAA/4eaAP96
jAD/b4AA/1RiAP/j+6T/AAAAWuHe/8tldgD/X28A/1RjAP/g1fL/2cje//Ls+f/NxMn/7OXv/9rP
4P9bagD/b4AA/2V0AP9UYwD/5/+r/wAAAFrq5v/Lb4AA/05cAP/Qxsz/uqrC/+7o/f92hwD/WGcA
//Hq/f/i2en/o6dg/1ZmAP9ldgD/X28A/+//sf8AAABa5OP/y3SHAP9gcAD///////////+YpBj/
gZMA/4SYAP+4wmL///////////+EkwD/gJIA/21+AP/t/67/AAAAWt7c/8uOsAD/qrgA/5GiAP+R
ogD/n7AA/6S0AP+ktAD/gZMA////9f///////////4GSAP+ktwD/7f+p/wAAAFrV0vLLlsEA/7/L
HP+7yxf/u8sX/7jIGP+4yBj/uMgY/7zMF/+RoAD////////////r7cj/sMIA/+7/pP8AAABayMbn
y6vSAP/X5EP/1eM+/9XjPv/V4z7/1eM+/9XjPv/V4z7/2ecv/6m0Q///////0Nef/9LkIf/g+5j/
AAAAWre32cvE7QD/8fxl/+r4XP/q+Fz/6vhc/+r4XP/q+Fz/6vhc/+r4XP/t+1T/yNU2/+b0Tf/1
/1z/3PSR/wAAAFy3tNDFs9cG////kv///4n///+J////if///4n///+J////if///4n///+J////
iP///4z///96/8bejP8AAABFq6u4Y2Z3PP+kvBX/q8Qe/6nCHv+pwh7/qcIe/6nCHv+pwh7/qcIe
/6nCHv+qwh7/rsUe/22MAf+EfZjuAAAAAAAAAACwrrdjqanBxKSgt8yioLfLoqC3y6Kgt8uioLfL
oqC3y6Kgt8uioLfLoqC3y6Siusu1s8SZAAAAAwAAAADAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAKAAAABAAAAAgAAAAAQAgAAAA
AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQAAAFwAAABaAAAAWgAAAFoAAABaAAAA
WgAAAFoAAABaAAAAWgAAAFsAAAA9AAAACwAAAAAAAAADoIN67qDV7v+Dvtn/hsHc/4i+2P+Iw9v/
h8Pa/4fD2v+Iw9v/iMHY/4bA2P+GyOb/++3t/wAAAKYAAAAL0LWzmgBvpv8Ab4D/AIGT/wCSpP8A
mbD/AKO6/wClvP8Aobj/AJ2z/wCSqf8Ah5r/AHSH/wCBkv//9fj/AAAAPejEwMsAYG//AHqM/wCM
oP8AmbD/AKrB/wCDmP8AYoz/AKC0/wCqwf8Aorf/AJWq/wCHmv8AXGz/lNPx/wAAAFvx0cvLAGBv
/wBvgP8AgZL/AI6i/wBhcf//8Ob//////whriP8Akqn/AJKk/wCDmP8Adon/AFdn/5/Y7v8AAABa
+9jUywBgb/8AZXb/AHSH/wBbav//+fL/////////////////AGFw/wCHmv8Aeoz/AG+A/wBVYv+k
4/v/AAAAWv/h3ssAZXb/AGBv/wBUY//y39P/3dnH//jx6//JzcT/7+zl/+Dbz/8AW2r/AG+A/wBl
dP8AVGP/qeb//wAAAFr/6eTLAG+A/wBPXP/M0Mb/wrmo//3s5v8Adof/AFdn//3w6P/o4dj/YKKl
/wBWZv8AZXb/AGBv/7Hv//8AAABa/+PjywB0h/8AYXD///////////8YmKT/AIGT/wCDmP9ht8H/
//////////8AhZP/AIGS/wBtfv+u7v//AAAAWv/e3MsAjrD/AKq4/wCRov8AkaL/AJ+w/wCltP8A
pbT/AIGT//X//////////////wCBkv8Apbf/p+v//wAAAFry1NLLAJbB/xq+y/8XvMv/F7zL/xi3
x/8Yt8f/GLfH/xe8zP8AkaD////////////I6+3/ALHC/6Pu//8AAABa5sbFywCq0v9C1eP/PtPh
/z7T4f8+0+H/PtPh/z7T4f8+0+H/L9jl/0OptP//////n9DX/yHS4v+Y3/n/AAAAWte3t8sAxO3/
ZPD7/1rp+P9a6fj/Wun4/1rp+P9a6fj/Wun4/1rp+P9U7vv/NMjV/0vm9P9c9P//j9z0/wAAAFzQ
tbPFBrPX/5L9/f+H////h////4f///+H////h////4f///+H////h////4b///+M/f3/ev///4zG
3v8AAABFuKurYztldv8Torz/HqvE/x2pwv8dqcL/HanC/x2pwv8dqcL/HanC/x2pwv8dqcL/Hq7F
/wBtjP+Yg3vuAAAAAAAAAAC2r61jwaenxLekoMy3oqDLt6Kgy7eioMu3oqDLt6Kgy7eioMu3oqDL
t6Kgy7qkosvEtbOZAAAAAwAAAADAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAAAABAAEAEBAAAAEAIABoBAAAAQAAAAEAAQAQEAAA
AQAgAGgEAAACAAAAAQABABAQAAABACAAaAQAAAMAAAABAAEAEBAAAAEAIABoBAAABAAAAAEAAQAQ
EAAAAQAgAGgEAAAFAFBBREQ=
|
Last edited by Andrey_A_A on Thu Sep 13, 2012 2:18 am; edited 6 times in total |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Tue Jul 19, 2011 2:42 pm Post subject: |
|
|
ScriptNameCopyAsBBCode.js
| Code: | ///Copies the name of the script in BBCode, substituting in URL is first found the link in edit window
///Копирует название скрипта в BBCode, подставляя в URL первую найденную в окне редактирования ссылку
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=13573#13573
// Version: 1.2 (2011.07.26)
//
// -"Имя как BBCode" Call("Scripts::Main", 1, "ScriptNameCopyAsBBCode.js", `"%f"`) - для контекстного меню вкладок, но можно вызывать и из окна скриптов
var pFileName = AkelPad.GetEditFile(0) || AkelPad.GetArgLine();
if (pFileName)
{
var pURL = AkelPad.GetTextRange(0, -1); //берём до конца файла
if (pURL)
pURL = getSubString(pURL, "http://", "\r");
pFileName = GetFileName(pFileName);
AkelPad.SetClipboardText("[b][url=" + pURL + "]" + pFileName + "[/url][/b]");
}
else
AkelPad.MessageBox(AkelPad.GetEditWnd(), "Имя файла не задано. Сохраните файл и попробуйте снова...", WScript.ScriptName, 0 /*MB_OK*/ + 48);
function getSubString(pText, pStartSmbs, pEnd)
{
var pResult = "";
var nIndex = pText.indexOf(pStartSmbs);
if (nIndex != -1)
{
pResult = pText.slice(nIndex);
nIndex = pResult.indexOf(pEnd);
pResult = pResult.slice(0, nIndex);
}
return pResult;
}
function GetFileName(pFile)
{
return pFile.slice(pFile.lastIndexOf('\\') + 1);
} |
ScriptCopyToBlock.js
| Code: | ///Копирует содержимое файла в определённую структуру [] для выкладки на форум
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=13573#13573
// Version: 1.2 (2012.09.14)
//
// Аргументы:
// -file="%f" - ссылка на файл
// -block - наименование тэга контейнера
// -bold ([0]/1) - "жирное" наименование скрипта
//
// Примеры:
// -"Содержимое файла в [more]..." Call("Scripts::Main", 1, "ScriptCopyToBlock.js", `-file="%f"`)
// -"Содержимое файла в [spoiler]..." Call("Scripts::Main", 1, "ScriptCopyToBlock.js", `-file="%f" -block="spoiler"`)
var pFileName = GetFileName(AkelPad.GetArgValue("file", ""));
var pBlockName = AkelPad.GetArgValue("block", "more");
var bOpen = ""; var bClose = "";
var b = AkelPad.GetArgValue("bold", 0);
if (b) {
bOpen = "[b]";
bClose = "[/b]";
}
var pScript = bOpen + '[' + pBlockName + '="' + pFileName + '"]' + bClose + '\r[code]' + AkelPad.GetTextRange(0, -1) + '[/code][/' + pBlockName + ']';
if (pScript)
AkelPad.SetClipboardText(pScript);
function GetFileName(pFile) {
return pFile.slice(pFile.lastIndexOf('\\') + 1);
} |
Last edited by VladSh on Fri Sep 14, 2012 8:23 am; edited 7 times in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Thu Jul 21, 2011 6:26 pm Post subject: |
|
|
Insert.js | Code: | // http://akelpad.sourceforge.net/forum/viewtopic.php?p=13628#13628
// Version v1.2
//
//
//// This script is replacement for the Insert() plugin's method.
//
// Escape-sequences:
// \\ - \ character;
// \t - Tabulation;
// \r\n - New line;
// \r - New line;
// \n - New line;
// \s - Selection;
// \c - Clipboard;
// \| - Caret position after insertion;
// \[ - Selection start position after insertion;
// \] - Selection end position after insertion.
//
// Usage:
// -"Insert URL" Call("Scripts::Main", 1, "Insert.js", `<a href="\c">\[\s\]</a>`)
var hMainWnd=AkelPad.GetMainWnd();
var pArgLine=AkelPad.GetArgLine(0);
var nInsertPos;
var nSelStart;
var nSelEnd;
pArgLine=pArgLine.replace(/\\\\/g, "\0");
if (pArgLine.search(/\\[^rntsc\\\|\[\]]/g) != -1)
{
AkelPad.MessageBox(hMainWnd, "Syntax error", WScript.ScriptName, 16 /*MB_ICONERROR*/);
WScript.Quit();
}
pArgLine=pArgLine.replace(/\\r\\n|\\r|\\n/g, "\n");
pArgLine=pArgLine.replace(/\\t/g, "\t");
if (pArgLine.search(/\\s/g) != -1)
pArgLine=pArgLine.replace(/\\s/g, AkelPad.GetSelText());
if (pArgLine.search(/\\c/g) != -1)
pArgLine=pArgLine.replace(/\\c/g, AkelPad.GetClipboardText());
//Selection after insertion
if ((nSelStart=pArgLine.search(/\\\|/g)) != -1)
{
pArgLine=pArgLine.replace(/\\\|/g, "");
nSelEnd=nSelStart;
}
else if ((nSelStart=pArgLine.search(/\\\[/g)) != -1)
{
pArgLine=pArgLine.replace(/\\\[/g, "");
if ((nSelEnd=pArgLine.search(/\\\]/g)) != -1)
pArgLine=pArgLine.replace(/\\\]/g, "");
}
pArgLine=pArgLine.replace(/\0/g, "\\");
//Replace selection
nInsertPos=AkelPad.GetSelStart();
AkelPad.ReplaceSel(pArgLine);
if (nSelStart != -1)
AkelPad.SetSel(nInsertPos + nSelStart, nInsertPos + (nSelEnd != -1?nSelEnd:nSelStart));
|
This script is replacement for the Insert() plugin's method. |
|
| Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 477 Location: Сочи, Хоста
|
Posted: Sun Jul 24, 2011 12:59 pm Post subject: |
|
|
CreateLink.vbs
| Code: | ' CreateLink.vbs
'======================== Описание =====================================
' Создание ярлыка папки/файла открытого на редактирование
'======================== Параметры =======================================
' 1-й параметр: Путь\где\создавать\ярлык (по умолчанию Рабочий стол) (можно использовать относительные пути)
' 2-й параметр:
' 0 - для файла
' 1 - для папки
' любой 3-й параметр создаст ярлык для AkelPad.exe
'======================== Примеры ====================================
' "&Ярлыки..." Icon("a%\AkelFiles\Plugs\Link.dll",2)
' {
' -"Создать ярлык файла на Рабочем столе" Call("Scripts::Main", 1, "CreateLink.vbs", `"" "0"`) Icon("a%\AkelFiles\Plugs\Link.dll",1)
' -"Создать ярлык файла в панели ''Быстрого запуска''" Call("Scripts::Main", 1, "CreateLink.vbs", `"%%APPDATA%%\Microsoft\Internet Explorer\Quick Launch" "0"`) Icon("a%\AkelFiles\Plugs\Link.dll",3)
' SEPARATOR
' -"Создать ярлык папки на Рабочем столе" Call("Scripts::Main", 1, "CreateLink.vbs", `"" "1"`) Icon("a%\AkelFiles\Plugs\Link.dll",529)
' -"Создать ярлык папки в панели ''Быстрого запуска''" Call("Scripts::Main", 1, "CreateLink.vbs", `"%%APPDATA%%\Microsoft\Internet Explorer\Quick Launch" "1"`) Icon("a%\AkelFiles\Plugs\Link.dll",0)
' -"Создать ярлык папки в панели ''Отправить в...''" Call("Scripts::Main", 1, "CreateLink.vbs", `"%%APPDATA%%\Microsoft\Windows\SendTo" "1"`) Icon("a%\AkelFiles\Plugs\Link.dll",0)
' -"Создать ярлык папки в панели ''Ссылки на папки''" Call("Scripts::Main", 1, "CreateLink.vbs", `"%%USERPROFILE%%\Links" "1"`) Icon("a%\AkelFiles\Plugs\Link.dll",0)
' }
' используется Functions.vbs, который следует положить в ...AkelFiles\Plugs\Scripts\Include\
' Автор: Аверин Андрей
' Версия: 1.1 (18.07.2011 - 12.08.2012)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru/forum/9-345-1067-16-1333460103
' Site: http://akelpad.sourceforge.net/forum/viewtopic.php?p=13649#13649
'===========================================================================
File = AkelPad.GetEditFile(0)
With WScript
Cnt = .Arguments.Count
If Cnt > 0 Then
Path = .Arguments(0)
If Cnt > 1 Then
Param = .Arguments(1) : If Cnt > 2 Then File = AkelPad.GetAkelDir(0) & "\AkelPad.exe"
End If
End If
End With
If Len(File) = 0 Then WScript.Quit
Call AkelPad.Include("Functions.vbs")
Set WSH = CreateObject("WScript.Shell")
If Len(Path) = 0 Then
Path = WSH.SpecialFolders("Desktop")
Else
If InStr(Path, "%") > 0 Then Path = GetPath(Path)
End If
If Len(Param) = 0 Then Param = 0
With CreateObject("Scripting.FileSystemObject")
If Param = 1 Then File = .GetParentFolderName(File)
Name = .GetBaseName(File)
Dir = .GetParentFolderName(File)
End With
With WSH.CreateShortcut( Path & "\" & Name & ".lnk")
.Arguments = ""
.Description = ""
.IconLocation = ",0"
.TargetPath = File
.WindowStyle = 1
.WorkingDirectory = Dir
.Save
End With
Set WSH = Nothing : WScript.Quit |
Значки для скритпта:
Link.b64
| Code: | MIME-Version: 1.0
Content-Type: application/octet-stream; name="Link.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Link.zip"
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
bFBLBQYAAAAAAQABADYAAAAICAAAAAA= |
Last edited by Andrey_A_A on Thu Sep 13, 2012 2:13 am; edited 1 time in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Mon Aug 01, 2011 4:00 pm Post subject: |
|
|
Get composition number members. For example: 0x7 is expaned to 0x1|0x2|0x4 and 7 expaned to 1+2+4.
GetNumberMembers.js | Code: | // http://akelpad.sourceforge.net/forum/viewtopic.php?p=13770#13770
// Version v1.0
//
//
//// Get composition number members. For example: 0x7 is expaned to 0x1|0x2|0x4 and 7 expaned to 1+2+4.
var pSelText=AkelPad.GetSelText();
var dwInitNumber=parseInt(pSelText);
if (dwInitNumber)
{
var pResult10="" + dwInitNumber.toString(10) + "=";
var pResult16="0x" + dwInitNumber.toString(16) + "=";
var dwNumber=dwInitNumber;
var dwCount;
for (dwCount=0x00000001; dwCount <= 0x80000000; dwCount*=2)
{
if (dwNumber & dwCount)
{
pResult10+=(dwNumber == dwInitNumber?"":"+") + dwCount.toString(10);
pResult16+=(dwNumber == dwInitNumber?"0x":"|0x") + dwCount.toString(16);
if (!(dwNumber=dwNumber & ~dwCount))
break;
}
}
AkelPad.ReplaceSel(pResult16 + "\n" + pResult10);
}
|
|
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Mon Aug 01, 2011 7:54 pm Post subject: |
|
|
Mapping network drives:
- in local network,
- in web site via http and WebDAV protocols.
This script can be run in AkelPad window or directly, in the command line.
MapNetDrive.js
| Code: | // MapNetDrive.js - ver. 2012-07-21
//
// Mapping network drives.
//
// Run in AkelPad:
// Call("Scripts::Main", 1, "MapNetDrive.js")
// Run from command line (after registration: regsvr32.exe Scripts.dll):
// wscript.exe MapNetDrive.js
//
// Shortcut keys in dialog box:
// Enter - Map drive
// Del - Disconnect network drive (Remove)
// Shift+Del - Delete mapping parameter from the list
// Alt+1 - focus to Drives list box
// Alt+2 - focus to Parameters list box
GetAkelPadObject();
var oSys = AkelPad.SystemFunction();
var hInstanceDLL = AkelPad.GetInstanceDll();
var sClassName = "AkelPad::Scripts::" + WScript.ScriptName + "::" + hInstanceDLL;
var hWndDlg;
if (hWndDlg = oSys.Call("User32::FindWindowEx" + _TCHAR, 0, 0, sClassName, 0))
{
if (! oSys.Call("User32::IsWindowVisible", hWndDlg))
oSys.Call("User32::ShowWindow", hWndDlg, 8 /*SW_SHOWNA*/);
if (oSys.Call("User32::IsIconic", hWndDlg))
oSys.Call("User32::ShowWindow", hWndDlg, 9 /*SW_RESTORE*/);
oSys.Call("User32::SetForegroundWindow", hWndDlg);
}
else
{
if (oSys.Call("kernel32::GetUserDefaultLangID") == 0x0415) //Polish
{
var sTxtCaption = "Mapowanie dysków sieciowych";
var sTxtDrive = "Dysk";
var sTxtResource = "Zasób sieciowy";
var sTxtServer = "serwer";
var sTxtShare = "udział";
var sTxtUser = "Użytkownik";
var sTxtPassword = "Hasło";
var sTxtMap = "&Mapuj";
var sTxtRemove = "&Odłącz";
var sTxtParams = "Parametry mapowania";
var sTxtNew = "&Nowy";
var sTxtEdit = "&Edycja";
var sTxtDelete = "&Usuń";
var sTxtWait = "Czekaj...";
var sTxtOK = "OK";
var sTxtCancel = "Anuluj";
var sTxtError = "Błąd";
var sTxtNoParams = "Brak zdefiniowanych parametrów mapowania.";
var sTxtDisconnect = "Odłączanie dysku sieciowego";
var sTxtIsDiscon = "Czy chcesz odłączyć od zasobu sieciowego dysk";
var sTxtNewParam = "Nowy parametr";
var sTxtEditParam = "Edycja parametru";
var sTxtNoResource = "Musisz wpisać zasób sieciowy.";
var sTxtIsDelete = "Czy chcesz usunąć ten parametr z listy?";
}
else
{
var sTxtCaption = "Mapping network drives";
var sTxtDrive = "Drive";
var sTxtResource = "Network resource";
var sTxtServer = "server";
var sTxtShare = "share";
var sTxtUser = "User";
var sTxtPassword = "Password";
var sTxtMap = "&Map";
var sTxtRemove = "&Remove";
var sTxtParams = "Mapping parameters";
var sTxtNew = "&New";
var sTxtEdit = "&Edit";
var sTxtDelete = "&Delete";
var sTxtWait = "Wait...";
var sTxtOK = "OK";
var sTxtCancel = "Cancel";
var sTxtError = "Error";
var sTxtNoParams = "There are no defined mapping parameters.";
var sTxtDisconnect = "Disconnect network drive";
var sTxtIsDiscon = "Do you want disconnect from network resource drive";
var sTxtNewParam = "New parameter";
var sTxtEditParam = "Edit parameter";
var sTxtNoResource = "You must type network resource.";
var sTxtIsDelete = "Do you want delete this parameter from the list?";
}
var DT_DWORD = 3;
var LB_ADDSTRING = 0x0180;
var LB_DELETESTRING = 0x0182;
var LB_RESETCONTENT = 0x0184;
var LB_SETCURSEL = 0x0186;
var LB_GETCURSEL = 0x0188;
var LB_GETTEXT = 0x0189;
var LB_SETTABSTOPS = 0x0192;
var LBN_SELCHANGE = 1;
var LBN_DBLCLK = 2;
var hIcon = oSys.Call("User32::LoadImage" + _TCHAR,
hInstanceDLL, //hinst
101, //lpszName
1, //uType=IMAGE_ICON
0, //cxDesired
0, //cyDesired
0x00000040); //fuLoad=LR_DEFAULTSIZE
var hGuiFont = oSys.Call("gdi32::GetStockObject", 17 /*DEFAULT_GUI_FONT*/);
var hMainWnd = AkelPad.GetMainWnd();
var nBufSize = 260;
var lpBuffer = AkelPad.MemAlloc(nBufSize * _TSIZE);
var nWndX = 250;
var nWndY = 80;
var aParam = [];
var hFocus;
var hFocusEd;
var bNewParam;
var CLASS = 0;
var HWND = 1;
var EXSTYLE = 2;
var STYLE = 3;
var X = 4;
var Y = 5;
var W = 6;
var H = 7;
var TXT = 8;
var aWnd = [];
var IDDRV = 1000;
var IDDRVRES = 1001;
var IDDRVUSER = 1002;
var IDDRVLB = 1003;
var IDMAP = 1004;
var IDREMOVE = 1005;
var IDPARAM = 1006;
var IDPARRES = 1007;
var IDPARUSER = 1008;
var IDPARLB = 1009;
var IDPARNEW = 1010;
var IDPAREDIT = 1011;
var IDPARDEL = 1012;
var IDWAIT = 1013;
//0x50000000 - WS_VISIBLE|WS_CHILD
//0x50000007 - WS_VISIBLE|WS_CHILD|BS_GROUPBOX
//0x50010000 - WS_VISIBLE|WS_CHILD|WS_TABSTOP
//0x50010080 - WS_VISIBLE|WS_CHILD|WS_TABSTOP|ES_AUTOHSCROLL
//0x50400001 - WS_VISIBLE|WS_CHILD|WS_DLGFRAME|SS_CENTER
//0x50A10081 - WS_VISIBLE|WS_CHILD|WS_VSCROLL|WS_BORDER|WS_TABSTOP|LBS_USETABSTOPS|LBS_NOTIFY
//Windows CLASS,HWND,EXSTYLE, STYLE, X, Y, W, H, TXT
aWnd[IDDRV ] = ["STATIC", 0, 0, 0x50000000, 10, 10, 100, 13, sTxtDrive];
aWnd[IDDRVRES ] = ["STATIC", 0, 0, 0x50000000, 47, 10, 100, 13, sTxtResource];
aWnd[IDDRVUSER] = ["STATIC", 0, 0, 0x50000000, 330, 10, 100, 13, sTxtUser];
aWnd[IDDRVLB ] = ["LISTBOX", 0, 0, 0x50A10081, 10, 25, 470, 200, ""];
aWnd[IDMAP ] = ["BUTTON", 0, 0, 0x50010000, 160, 215, 80, 23, sTxtMap];
aWnd[IDREMOVE ] = ["BUTTON", 0, 0, 0x50010000, 250, 215, 80, 23, sTxtRemove];
aWnd[IDPARAM ] = ["BUTTON", 0, 0, 0x50000007, 10, 250, 470, 255, sTxtParams];
aWnd[IDPARRES ] = ["STATIC", 0, 0, 0x50000000, 20, 270, 100, 13, sTxtResource];
aWnd[IDPARUSER] = ["STATIC", 0, 0, 0x50000000, 303, 270, 100, 13, sTxtUser];
aWnd[IDPARLB ] = ["LISTBOX", 0, 0, 0x50A10081, 20, 285, 450, 200, ""];
aWnd[IDPARNEW ] = ["BUTTON", 0, 0, 0x50010000, 115, 475, 80, 23, sTxtNew];
aWnd[IDPAREDIT] = ["BUTTON", 0, 0, 0x50010000, 205, 475, 80, 23, sTxtEdit];
aWnd[IDPARDEL ] = ["BUTTON", 0, 0, 0x50010000, 295, 475, 80, 23, sTxtDelete];
aWnd[IDWAIT ] = ["STATIC", 0, 0, 0x50400001, 130, 100, 240, 80, ""];
var aWndEd = [];
var IDEDRES = 1100;
var IDEDRESE = 1101;
var IDEDUSER = 1102;
var IDEDUSERE = 1103;
var IDEDPASS = 1104;
var IDEDPASSE = 1105;
var IDEDOK = 1106;
var IDEDCANCEL = 1107;
//Windows CLASS,HWND,EXSTYLE, STYLE, X, Y, W, H, TXT
aWndEd[IDEDRES ] = ["STATIC", 0, 0, 0x50000000, 10, 10, 200, 13, sTxtResource + " (\\\\" + sTxtServer + "\\" + sTxtShare + ")"];
aWndEd[IDEDRESE ] = ["EDIT", 0, 0x200, 0x50010080, 10, 25, 300, 20, ""];
aWndEd[IDEDUSER ] = ["STATIC", 0, 0, 0x50000000, 10, 55, 100, 13, sTxtUser];
aWndEd[IDEDUSERE ] = ["EDIT", 0, 0x200, 0x50010080, 10, 70, 300, 20, ""];
aWndEd[IDEDPASS ] = ["STATIC", 0, 0, 0x50000000, 10, 100, 100, 13, sTxtPassword];
aWndEd[IDEDPASSE ] = ["EDIT", 0, 0x200, 0x50010080, 10, 115, 300, 20, ""];
aWndEd[IDEDOK ] = ["BUTTON", 0, 0, 0x50010000, 75, 145, 80, 23, sTxtOK];
aWndEd[IDEDCANCEL] = ["BUTTON", 0, 0, 0x50010000, 165, 145, 80, 23, sTxtCancel];
ReadWriteIni(false);
AkelPad.WindowRegisterClass(sClassName);
hWndDlg = oSys.Call("user32::CreateWindowEx" + _TCHAR,
0, //dwExStyle
sClassName, //lpClassName
sTxtCaption, //lpWindowName
0x90CA0000, //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX
nWndX, //x
nWndY, //y
495, //nWidth
545, //nHeight
hMainWnd, //hWndParent
0, //ID
hInstanceDLL, //hInstance
DialogCallback); //Script function callback. To use it class must be registered by WindowRegisterClass.
//Allow other scripts running
AkelPad.ScriptNoMutex();
//Message loop
AkelPad.WindowGetMessage();
AkelPad.WindowUnregisterClass(sClassName);
AkelPad.MemFree(lpBuffer);
oSys.Call("user32::DestroyIcon", hIcon);
}
function DialogCallback(hWnd, uMsg, wParam, lParam)
{
if (uMsg == 1) //WM_CREATE
{
var i;
for (i = 1000; i < aWnd.length; ++i)
{
aWnd[i][HWND] =
oSys.Call("user32::CreateWindowEx" + _TCHAR,
aWnd[i][EXSTYLE], //dwExStyle
aWnd[i][CLASS], //lpClassName
0, //lpWindowName
aWnd[i][STYLE], //dwStyle
aWnd[i][X], //x
aWnd[i][Y], //y
aWnd[i][W], //nWidth
aWnd[i][H], //nHeight
hWnd, //hWndParent
i, //ID
hInstanceDLL, //hInstance
0); //lpParam
//Set font and text
SetWndFontAndText(aWnd[i][HWND], hGuiFont, aWnd[i][TXT]);
}
//Hide Wait window
oSys.Call("user32::ShowWindow", aWnd[IDWAIT][HWND], 0);
//Set TabStops in listboxes
AkelPad.MemCopy(lpBuffer, 24, DT_DWORD);
AkelPad.MemCopy(lpBuffer + 4, 212, DT_DWORD);
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_SETTABSTOPS, 2, lpBuffer);
AkelPad.MemCopy(lpBuffer, 190, DT_DWORD);
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_SETTABSTOPS, 1, lpBuffer);
//Fill listboxes
FillDrivesLB();
FillParamLB();
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_SETCURSEL, 0, 0);
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_SETCURSEL, 0, 0);
//Check buttons
CheckMapButtons();
CheckParamButtons();
AkelPad.SendMessage(hWnd, 0x0080 /*WM_SETICON*/, 0 /*ICON_SMALL*/, hIcon);
hFocus = aWnd[IDDRVLB][HWND];
}
else if ((uMsg == 6 /*WM_ACTIVATE*/) && (! wParam))
hFocus = oSys.Call("user32::GetFocus");
else if (uMsg == 7) //WM_SETFOCUS
oSys.Call("user32::SetFocus", hFocus);
else if (uMsg == 256 /*WM_KEYDOWN*/)
{
if ((wParam == 13 /*VK_RETURN*/) &&
oSys.Call("user32::IsWindowEnabled", aWnd[IDMAP][HWND]) &&
((oSys.Call("user32::GetFocus") == aWnd[IDDRVLB][HWND]) ||
(oSys.Call("user32::GetFocus") == aWnd[IDPARLB][HWND])))
{
if (! oSys.Call("user32::PeekMessage" + _TCHAR, lpBuffer, hWnd, 0, 0, 0))
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDMAP, 0);
}
else if (wParam == 0x02E /*VK_DELETE*/)
{
if (oSys.Call("user32::GetKeyState", 0x10 /*VK_SHIFT*/) & 0x8000)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDPARDEL, 0);
else
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDREMOVE, 0);
}
else if (wParam == 27 /*VK_ESCAPE*/)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 16 /*WM_CLOSE*/, 0, 0);
}
else if (uMsg == 260) //WM_SYSKEYDOWN
{
if (wParam == 0x31) //1 key
oSys.Call("user32::SetFocus", aWnd[IDDRVLB][HWND]);
if (wParam == 0x32) //2 key
oSys.Call("user32::SetFocus", aWnd[IDPARLB][HWND]);
}
else if (uMsg == 273) //WM_COMMAND
{
var nLowParam = LoWord(wParam);
var nHiwParam = HiWord(wParam);
if ((nLowParam == IDDRVLB) && (nHiwParam == LBN_SELCHANGE))
CheckMapButtons();
else if ((nLowParam == IDMAP) ||
((nLowParam == IDDRVLB) && (nHiwParam == LBN_DBLCLK)))
MapNetDrive(hWnd);
else if (nLowParam == IDREMOVE)
RemoveNetDrive(hWnd);
else if (nLowParam == IDPARNEW)
{
bNewParam = 1;
EditParamWindow();
}
else if ((nLowParam == IDPAREDIT) ||
((nLowParam == IDPARLB) && (nHiwParam == LBN_DBLCLK)))
{
bNewParam = 0;
EditParamWindow();
}
else if (nLowParam == IDPARDEL)
DeleteParam(hWnd);
}
else if (uMsg == 16) //WM_CLOSE
{
ReadWriteIni(true);
oSys.Call("user32::DestroyWindow", hWnd);
}
else if (uMsg == 2) //WM_DESTROY
//Exit message loop
oSys.Call("user32::PostQuitMessage", 0);
else
oSys.Call("user32::DefDlgProc" + _TCHAR,
hWnd,
1025 /*DM_SETDEFID*/,
oSys.Call("user32::GetDlgCtrlID", oSys.Call("user32::GetFocus")),
0);
return 0;
}
function LoWord(nParam)
{
return (nParam & 0xffff);
}
function HiWord(nParam)
{
return ((nParam >> 16) & 0xffff);
}
function GetWindowPos(hWnd, oRect)
{
var lpRect = AkelPad.MemAlloc(16) //sizeof(RECT);
oSys.Call("user32::GetWindowRect", hWnd, lpRect);
oRect.X = AkelPad.MemRead(lpRect, DT_DWORD);
oRect.Y = AkelPad.MemRead(lpRect + 4, DT_DWORD);
oRect.W = AkelPad.MemRead(lpRect + 8, DT_DWORD) - oRect.X;
oRect.H = AkelPad.MemRead(lpRect + 12, DT_DWORD) - oRect.Y;
AkelPad.MemFree(lpRect);
}
function SetWndFontAndText(hWnd, hFont, sText)
{
var lpText;
AkelPad.SendMessage(hWnd, 48 /*WM_SETFONT*/, hFont, true);
if (lpText = AkelPad.MemAlloc((sText.length + 1) * _TSIZE))
{
AkelPad.MemCopy(lpText, sText, _TSTR);
oSys.Call("user32::SetWindowText" + _TCHAR, hWnd, lpText);
AkelPad.MemFree(lpText);
}
}
function FillDrivesLB()
{
var oDrives = {};
var lpDriveName = AkelPad.MemAlloc(3 * _TSIZE);
var lpName = AkelPad.MemAlloc(260 * _TSIZE); //sizeof(MAX_PATH)
var lpNameSize = AkelPad.MemAlloc(4);
var nDriveType;
var sDrive;
var i;
for (i = "Z".charCodeAt(0); i >= "A".charCodeAt(0); --i)
{
sDrive = String.fromCharCode(i) + ":";
nDriveType = oSys.Call("Kernel32::GetDriveType" + _TCHAR, sDrive + "\\");
if ((nDriveType == 1 /*DRIVE_NO_ROOT_DIR*/) || (nDriveType == 4 /*DRIVE_REMOTE*/))
{
oDrives[sDrive] = ["", ""];
AkelPad.MemCopy(lpDriveName, sDrive, _TSTR);
AkelPad.MemCopy(lpName, "", _TSTR);
AkelPad.MemCopy(lpNameSize, 260, DT_DWORD);
if (oSys.Call("Mpr.dll::WNetGetConnection" + _TCHAR, lpDriveName, lpName, lpNameSize) == 0) //NO_ERROR
oDrives[sDrive][0] = AkelPad.MemRead(lpName, _TSTR);
AkelPad.MemCopy(lpName, "", _TSTR);
AkelPad.MemCopy(lpNameSize, 260, DT_DWORD);
if (oSys.Call("Mpr.dll::WNetGetUser" + _TCHAR, lpDriveName, lpName, lpNameSize) == 0) //NO_ERROR
oDrives[sDrive][1] = AkelPad.MemRead(lpName, _TSTR);
}
}
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_RESETCONTENT, 0, 0);
for (i in oDrives)
{
AkelPad.MemCopy(lpBuffer, i + "\t" + oDrives[i][0] + "\t" + oDrives[i][1], _TSTR);
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_ADDSTRING, 0, lpBuffer);
}
AkelPad.MemFree(lpDriveName);
AkelPad.MemFree(lpName);
AkelPad.MemFree(lpNameSize);
}
function FillParamLB()
{
var i;
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_RESETCONTENT, 0, 0);
for (i = 0; i < aParam.length; ++i)
{
AkelPad.MemCopy(lpBuffer, aParam[i][0] + "\t" + aParam[i][1], _TSTR);
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_ADDSTRING, 0, lpBuffer);
}
}
function CheckMapButtons()
{
var nDrvPos = AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETCURSEL, 0, 0);
var sResource;
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETTEXT, nDrvPos, lpBuffer);
sResource = AkelPad.MemRead(lpBuffer, _TSTR).substring(3, AkelPad.MemRead(lpBuffer, _TSTR).lastIndexOf("\t"));
oSys.Call("user32::EnableWindow", aWnd[IDMAP ][HWND], (sResource) ? 0 : 1);
oSys.Call("user32::EnableWindow", aWnd[IDREMOVE][HWND], (sResource) ? 1 : 0);
if (! oSys.Call("user32::IsWindowEnabled", oSys.Call("user32::GetFocus")))
oSys.Call("user32::SetFocus", aWnd[IDDRVLB][HWND]);
}
function CheckParamButtons()
{
oSys.Call("user32::EnableWindow", aWnd[IDPAREDIT][HWND], (aParam.length) ? 1 : 0);
oSys.Call("user32::EnableWindow", aWnd[IDPARDEL ][HWND], (aParam.length) ? 1 : 0);
if (! oSys.Call("user32::IsWindowEnabled", oSys.Call("user32::GetFocus")))
oSys.Call("user32::SetFocus", aWnd[IDPARLB][HWND]);
}
function MapNetDrive(hWnd)
{
var WshNetwork = new ActiveXObject("WScript.Network");
var nDrvPos = AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETCURSEL, 0, 0);
var nParPos = AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_GETCURSEL, 0, 0);
var sDrive;
var oError;
if (nParPos < 0)
{
AkelPad.MessageBox(hWnd, sTxtNoParams, sTxtError, 48);
return;
}
oSys.Call("user32::ShowWindow", aWnd[IDWAIT][HWND], 1);
SetWndFontAndText(aWnd[IDWAIT][HWND], hGuiFont, "\n\n" + sTxtWait);
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETTEXT, nDrvPos, lpBuffer);
sDrive = AkelPad.MemRead(lpBuffer, _TSTR).substring(0, 2);
try
{
WshNetwork.RemoveNetworkDrive(sDrive, 1 /*bForce*/, 1 /*bUpdateProfile*/);
}
catch (oError)
{
}
try
{
WshNetwork.MapNetworkDrive(sDrive, aParam[nParPos][0], 1 /*bUpdateProfile*/, aParam[nParPos][1], aParam[nParPos][2]);
}
catch (oError)
{
oSys.Call("user32::ShowWindow", aWnd[IDWAIT][HWND], 0);
AkelPad.MessageBox(hWnd,
oError.description + ((oError.description != oError.message) ? "\n" + oError.message : ""),
sTxtError, 48);
}
oSys.Call("user32::ShowWindow", aWnd[IDWAIT][HWND], 0);
FillDrivesLB();
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_SETCURSEL, nDrvPos, 0);
CheckMapButtons();
}
function RemoveNetDrive(hWnd)
{
var WshNetwork = new ActiveXObject("WScript.Network");
var nDrvPos = AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETCURSEL, 0, 0);
var sDrive;
var oError;
if (oSys.Call("user32::IsWindowEnabled", aWnd[IDREMOVE][HWND]))
{
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_GETTEXT, nDrvPos, lpBuffer);
sDrive = AkelPad.MemRead(lpBuffer, _TSTR).substring(0, 2);
if (AkelPad.MessageBox(hWnd,
sTxtIsDiscon + " " + sDrive + " ?",
sTxtDisconnect,
0x00000023 /*MB_DEFBUTTON1|MB_ICONQUESTION|MB_YESNOCANCEL*/) == 6 /*IDYES*/)
{
try
{
WshNetwork.RemoveNetworkDrive(sDrive, 1 /*bForce*/, 1 /*bUpdateProfile*/);
}
catch (oError)
{
}
FillDrivesLB();
AkelPad.SendMessage(aWnd[IDDRVLB][HWND], LB_SETCURSEL, nDrvPos, 0);
CheckMapButtons();
}
}
}
function DeleteParam(hWnd)
{
var nParPos = AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_GETCURSEL, 0, 0);
if ((nParPos > -1) &&
(AkelPad.MessageBox(hWnd,
sTxtResource + ": " + aParam[nParPos][0] + "\n" +
sTxtUser + ": " + aParam[nParPos][1] + "\n\n" +
sTxtIsDelete,
sTxtDelete.replace(/&/, ""),
0x00000023 /*MB_DEFBUTTON1|MB_ICONQUESTION|MB_YESNOCANCEL*/) == 6 /*IDYES*/))
{
aParam.splice(nParPos, 1);
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_DELETESTRING, nParPos, 0);
if (nParPos == aParam.length)
--nParPos;
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_SETCURSEL, nParPos, 0);
CheckParamButtons();
}
}
function EditParamWindow()
{
var oRect = new Object();
var sWndName;
var nParPos;
GetWindowPos(hWndDlg, oRect);
if (bNewParam)
{
sWndName = sTxtNewParam;
aWndEd[IDEDRESE ][TXT] = "";
aWndEd[IDEDUSERE][TXT] = "";
aWndEd[IDEDPASSE][TXT] = "";
}
else
{
sWndName = sTxtEditParam;
nParPos = AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_GETCURSEL, 0, 0);
aWndEd[IDEDRESE ][TXT] = aParam[nParPos][0];
aWndEd[IDEDUSERE][TXT] = aParam[nParPos][1];
aWndEd[IDEDPASSE][TXT] = aParam[nParPos][2];
}
oSys.Call("user32::CreateWindowEx" + _TCHAR,
0, //dwExStyle
sClassName, //lpClassName
sWndName, //lpWindowName
0x90CA0000, //WS_VISIBLE|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX
oRect.X + 90, //x
oRect.Y + 310, //y
325, //nWidth
210, //nHeight
hWndDlg, //hWndParent
0, //ID
hInstanceDLL, //hInstance
DialogCallbackEd); //lpParam
oSys.Call("user32::EnableWindow", hMainWnd, 0);
oSys.Call("user32::EnableWindow", hWndDlg, 0);
}
function DialogCallbackEd(hWnd, uMsg, wParam, lParam)
{
if (uMsg == 1) //WM_CREATE
{
var i;
for (i = 1100; i < aWndEd.length; ++i)
{
aWndEd[i][HWND] =
oSys.Call("user32::CreateWindowEx" + _TCHAR,
aWndEd[i][EXSTYLE], //dwExStyle
aWndEd[i][CLASS], //lpClassName
0, //lpWindowName
aWndEd[i][STYLE], //dwStyle
aWndEd[i][X], //x
aWndEd[i][Y], //y
aWndEd[i][W], //nWidth
aWndEd[i][H], //nHeight
hWnd, //hWndParent
i, //ID
hInstanceDLL, //hInstance
0); //lpParam
//Set font and text
SetWndFontAndText(aWndEd[i][HWND], hGuiFont, aWndEd[i][TXT]);
}
AkelPad.SendMessage(aWndEd[IDEDRESE ][HWND], 197 /*EM_SETLIMITTEXT*/, 128, 0);
AkelPad.SendMessage(aWndEd[IDEDUSERE][HWND], 197 /*EM_SETLIMITTEXT*/, 128, 0);
AkelPad.SendMessage(aWndEd[IDEDPASSE][HWND], 197 /*EM_SETLIMITTEXT*/, 128, 0);
AkelPad.SendMessage(aWndEd[IDEDRESE ][HWND], 177 /*EM_SETSEL*/, 0, -1);
AkelPad.SendMessage(hWnd, 0x0080 /*WM_SETICON*/, 0 /*ICON_SMALL*/, hIcon);
hFocusEd = aWndEd[IDEDRESE][HWND];
}
else if ((uMsg == 6 /*WM_ACTIVATE*/) && (! wParam))
hFocusEd = oSys.Call("user32::GetFocus");
else if (uMsg == 7) //WM_SETFOCUS
oSys.Call("user32::SetFocus", hFocusEd);
else if (uMsg == 256 /*WM_KEYDOWN*/)
{
if ((wParam == 13 /*VK_RETURN*/) &&
(oSys.Call("user32::GetFocus") != aWndEd[IDEDOK][HWND]))
{
if (! oSys.Call("user32::PeekMessage" + _TCHAR, lpBuffer, hWnd, 0, 0, 0))
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDEDOK, 0);
}
else if (wParam == 27 /*VK_ESCAPE*/)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 16 /*WM_CLOSE*/, 0, 0);
}
else if (uMsg == 273) //WM_COMMAND
{
var nLowParam = LoWord(wParam);
if (nLowParam == IDEDOK)
{
if (InsertChangeParam(hWnd))
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 16 /*WM_CLOSE*/, 0, 0);
}
else if (nLowParam == IDEDCANCEL)
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 16 /*WM_CLOSE*/, 0, 0);
}
else if (uMsg == 16) //WM_CLOSE
{
oSys.Call("user32::EnableWindow", hMainWnd, 1);
oSys.Call("user32::EnableWindow", hWndDlg, 1);
oSys.Call("user32::DestroyWindow", hWnd);
}
else
oSys.Call("user32::DefDlgProc" + _TCHAR,
hWnd,
1025 /*DM_SETDEFID*/,
oSys.Call("user32::GetDlgCtrlID", oSys.Call("user32::GetFocus")),
0);
return 0;
}
function InsertChangeParam(hWnd)
{
var sResource;
var sUser;
var sPassword;
var nParPos;
var i;
oSys.Call("user32::GetWindowText" + _TCHAR, aWndEd[IDEDRESE][HWND], lpBuffer, nBufSize);
sResource = AkelPad.MemRead(lpBuffer, _TSTR);
oSys.Call("user32::GetWindowText" + _TCHAR, aWndEd[IDEDUSERE][HWND], lpBuffer, nBufSize);
sUser = AkelPad.MemRead(lpBuffer, _TSTR);
oSys.Call("user32::GetWindowText" + _TCHAR, aWndEd[IDEDPASSE][HWND], lpBuffer, nBufSize);
sPassword = AkelPad.MemRead(lpBuffer, _TSTR);
if (! sResource)
{
AkelPad.MessageBox(hWnd, sTxtNoResource, sTxtError, 48);
oSys.Call("user32::SetFocus", aWndEd[IDEDRESE][HWND]);
return 0;
}
if (bNewParam)
nParPos = aParam.push([]) - 1;
else
nParPos = AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_GETCURSEL, 0, 0);
aParam[nParPos][0] = sResource;
aParam[nParPos][1] = sUser;
aParam[nParPos][2] = sPassword;
aParam.sort(function(a, b)
{
if (a[0] < b[0])
return -1;
else if (a[0] > b[0])
return 1;
else if (a[1] < b[1])
return -1;
else if (a[1] > b[1])
return 1;
else
return 0;
});
//Find in Param array
for (i = 0; i < aParam.length; ++i)
{
if ((aParam[i][0] == sResource) && (aParam[i][1] == sUser) && (aParam[i][2] == sPassword))
{
nParPos = i;
break;
}
}
FillParamLB();
AkelPad.SendMessage(aWnd[IDPARLB][HWND], LB_SETCURSEL, nParPos, 0);
CheckParamButtons();
return 1;
}
function GetAkelPadObject()
{
if (typeof AkelPad == "undefined")
{
var oError;
try
{
AkelPad = new ActiveXObject("AkelPad.Document");
_TCHAR = AkelPad.Constants._TCHAR;
_TSTR = AkelPad.Constants._TSTR;
_TSIZE = AkelPad.Constants._TSIZE;
}
catch (oError)
{
WScript.Echo("You need register Scripts.dll");
WScript.Quit();
}
}
}
function ReadWriteIni(bWrite)
{
var oRect = new Object();
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
var sIniFile = WScript.ScriptFullName.substring(0, WScript.ScriptFullName.lastIndexOf(".")) + ".ini";
var sIniTxt;
var oFile;
var oError;
var i;
if (bWrite)
{
GetWindowPos(hWndDlg, oRect);
sIniTxt = 'nWndX=' + oRect.X + ';\r\n' +
'nWndY=' + oRect.Y + ';\r\n' +
'aParam=[';
for (i = 0; i < aParam.length; ++i)
sIniTxt += '["' +
aParam[i][0].replace(/[\\"]/g, '\\$&') + '","' +
aParam[i][1].replace(/[\\"]/g, '\\$&') + '","' +
aParam[i][2].replace(/[\\"]/g, '\\$&') + '"]' +
((i == aParam.length - 1) ? '' : ',');
sIniTxt += '];';
oFile = oFSO.OpenTextFile(sIniFile, 2, true, -1);
oFile.Write(sIniTxt);
oFile.Close();
}
else if (oFSO.FileExists(sIniFile))
{
oFile = oFSO.OpenTextFile(sIniFile, 1, false, -1);
try
{
eval(oFile.ReadAll());
}
catch (oError)
{
}
oFile.Close();
}
}
|
Last edited by KDJ on Sat Jul 21, 2012 7:34 pm; edited 6 times in total |
|
| Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 477 Location: Сочи, Хоста
|
Posted: Sat Aug 06, 2011 8:44 pm Post subject: |
|
|
Скрипт с различными Функциями, которые можно использовать в других скриптах vbs для AkelPad
Выложить код не получается, более 1400 строк, да и не имеет смысла
Скрипт обновляется довольно часто, добавляются новые нужные функции, оптимизируются имеющиеся. Последнюю версию всегда можете найти по этой ссылке:
Скачать Functions.vbs
Last edited by Andrey_A_A on Thu Sep 13, 2012 2:53 am; edited 8 times in total |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|