Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // var oSys = AkelPad.SystemFunction();
- var hEditWnd = AkelPad.GetEditWnd();
- var hMainWnd=AkelPad.GetMainWnd();
- if (!AkelPad.Include("ShowMenu.js")) WScript.Quit();
- var sEditFile = AkelPad.GetEditFile(0);
- var sFileExt = AkelPad.GetFilePath(sEditFile, 4 /*CPF_FILEEXT*/);
- var sSelText = AkelPad.GetSelText();
- var lpItems; // массив пунктов меню
- var nItem; // число пунктов меню
- // Получение координат меню
- var nX, nY;
- var lpRECT = AkelPad.MemAlloc(16 /*sizeof(RECT)*/);
- AkelPad.SystemFunction().Call("User32::GetWindowRect", AkelPad.GetEditWnd(), lpRECT);
- nX = AkelPad.MemRead(_PtrAdd(lpRECT, 0), 3 /*DT_DWORD*/);
- nY = AkelPad.MemRead(_PtrAdd(lpRECT, 4), 3 /*DT_DWORD*/);
- nX += (AkelPad.MemRead(_PtrAdd(lpRECT, 8), 3 /*DT_DWORD*/) - nX) / 2;
- nY += (AkelPad.MemRead(_PtrAdd(lpRECT, 12), 3 /*DT_DWORD*/) - nY) / 2;
- AkelPad.MemFree(lpRECT);
- // Конец: Получение координат меню
- switch (sFileExt.toLowerCase())
- {
- case "reg":
- // Название пункта учитывать что при появлении меню можно нажать первую букву пункта, чтобы вызвать пункт (текущая раскладка клавиатуры учитывается)
- lpItems=[["Открыть выделенный раздел реестра", MF_NORMAL, 101],
- ["Запуск JumpReg", MF_NORMAL, 102],
- ["Поиск в реестре", MF_NORMAL, 103]];
- nItem=ShowMenu(lpItems, nX-250, nY-100);
- if (nItem == -1)
- break;
- else
- switch (lpItems[nItem][2])
- {
- case 101:
- var sAutoitPath = "C:\\AutoIt3\\";
- // добавьте #RequireAdmin в начало скрипта JumpRegCMD.au3
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\JumpRegCMD.au3" "' + sSelText + '"');
- break;
- case 102:
- var wsh = new ActiveXObject("WScript.Shell");
- var APPDATA = wsh.ExpandEnvironmentStrings("%APPDATA%")
- // AkelPad.Exec('"' + APPDATA + '\\AZJIO_Soft\\JumpReg\\JumpReg.exe" "' + sSelText + '"'); // прыжок в реестр
- AkelPad.Exec('"' + APPDATA + '\\AZJIO_Soft\\JumpReg\\JumpReg.exe"');
- break;
- case 103:
- var wsh = new ActiveXObject("WScript.Shell");
- var APPDATA = wsh.ExpandEnvironmentStrings("%APPDATA%")
- AkelPad.Exec('"' + APPDATA + '\\AZJIO_Soft\\JumpReg\\RegScanner\\RegScanner.exe"');
- break;
- };
- break;
- case "htm":
- case "html":
- // Название пункта учитывать что при появлении меню можно нажать первую букву пункта, чтобы вызвать пункт (текущая раскладка клавиатуры учитывается)
- lpItems=[["Генерировать ссылку на этот файл", MF_NORMAL, 101],
- ["Tidy", MF_NORMAL, 102]];
- nItem=ShowMenu(lpItems, nX-250, nY-100);
- if (nItem == -1)
- break;
- else
- switch (lpItems[nItem][2])
- {
- case 101:
- var sText = AkelPad.ReadFile(sEditFile);
- if(/<title>(.+?)<\/title>/.test(sText)) {
- sText = RegExp.$1;
- var sFileName = AkelPad.GetFilePath(sEditFile, 3);
- AkelPad.SetClipboardText('<a href="' + sFileName + '.htm">' + sText + '</a>');
- }
- break;
- case 102:
- AkelPad.Call("Scripts::Main", 1, "tidy.js", "")
- break;
- };
- break;
- case "pb":
- var sPBPath = "C:\\D\\PureBasic\\Purebasic 5.62 x86\\";
- // Название пункта учитывать что при появлении меню можно нажать первую букву пункта, чтобы вызвать пункт (текущая раскладка клавиатуры учитывается)
- lpItems=[["Запуск", MF_NORMAL, 101],
- ["Компилировать", MF_NORMAL, 102],
- ["Check", MF_NORMAL, 103],
- ["Debugger", MF_NORMAL, 104],
- ["Справка (RU)", MF_NORMAL, 105],
- ["Прыжок к процедуре", MF_NORMAL, 106]];
- nItem=ShowMenu(lpItems, nX-250, nY-100);
- if (nItem == -1)
- break;
- else
- switch (lpItems[nItem][2])
- {
- case 101:
- AkelPad.Call("Log::Output", 1, '"' + sPBPath + 'Compilers\\pbcompiler.exe" "' + sEditFile + '"', "%temp%", '^Error: Line (\d+)', '/GOTOLINE=\1:1', 866, 1251);
- break;
- case 102:
- AkelPad.Call("Log::Output", 1, '"' + sPBPath + 'Compilers\\pbcompiler.exe" "' + sEditFile + '" /EXE "' + sEditFile + '.exe"', "", '^Error: Line (\d+)', '/GOTOLINE=\1:1', 866, 1251);
- break;
- case 103:
- AkelPad.Call("Log::Output", 1, '"' + sPBPath + 'Compilers\\pbcompiler.exe" "' + sEditFile + '" -k', "", '^Error: Line (\d+)', '/GOTOLINE=\1:1', 866, 1251);
- break;
- case 104:
- AkelPad.Call("Log::Output", 1, '"' + sPBPath + 'Compilers\\pbcompiler.exe" "' + sEditFile + '" --debugger', "%temp%", '^Error: Line (\d+)', '/GOTOLINE=\1:1', 866, 1251);
- break;
- case 105:
- var sAutoitPath = "C:\\AutoIt3\\";
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sPBPath + 'Instrument_azjio\\Help\\Help.au3" ' + sSelText + ' 1');
- break;
- case 106:
- AkelPad.TextFind(hEditWnd, 'Procedure ' + sSelText, 0x00000001|0x00200000 /*FRF_DOWN|FRF_BEGINNING*/);
- break;
- };
- break;
- case "au3":
- var sAutoitPath = "C:\\AutoIt3\\";
- // Название пункта учитывать что при появлении меню можно нажать первую букву пункта, чтобы вызвать пункт (текущая раскладка клавиатуры учитывается)
- lpItems=[["Запуск", MF_NORMAL, 101],
- ["Запуск + Консоль", MF_NORMAL, 104],
- ["Tidy", MF_NORMAL, 102],
- ["Компилировать", MF_NORMAL, 103],
- // ["", MF_SEPARATOR],
- ["Include Helper", MF_NORMAL, 105],
- // ["", MF_SEPARATOR],
- ["Прыжок к функции", MF_NORMAL, 106],
- ["Справка (RU)", MF_NORMAL, 107],
- ["Выделенный текст в AU3", MF_NORMAL, 108],
- ["Список переменных и функций", MF_NORMAL, 110],
- ["Переименование переменных", MF_NORMAL, 111],
- ["Выделенные переменные в отладчик", MF_NORMAL|MF_LAST, 109]];
- nItem=ShowMenu(lpItems, nX-250, nY-100);
- if (nItem == -1)
- break;
- else
- switch (lpItems[nItem][2])
- {
- case 101:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sEditFile + '"');
- break;
- case 102:
- AkelPad.Exec('"' + sAutoitPath + 'SciTE\\Tidy\\Tidy.exe" "' + sEditFile + '" /reel /bdir=' + sAutoitPath + 'BackUp');
- break;
- case 103:
- AkelPad.Exec('"' + sAutoitPath + 'SciTE\\AutoIt3Wrapper\\AutoIt3Wrapper.exe /in " "' + sEditFile + '"');
- break;
- case 104:
- AkelPad.Call("Log::Output", 1, '"' + sAutoitPath + 'AutoIt3.exe" "' + sEditFile + '"', '', '', '', 866, 1251)
- break;
- case 105:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\Include_Helper.au3" "' + sEditFile + '"');
- break;
- case 106:
- AkelPad.TextFind(hEditWnd, 'Func ' + sSelText, 0x00000001|0x00200000 /*FRF_DOWN|FRF_BEGINNING*/);
- break;
- case 107:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'HELP_AutoIt3.au3" ' + sSelText + ' 1');
- break;
- case 108:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\txt2au3.au3" "' + sSelText + '"');
- break;
- case 109:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\debugger.au3" "' + sSelText + '"');
- break;
- case 110:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\list_var_funk.au3" "' + sEditFile + '"');
- break;
- case 111:
- AkelPad.Exec('"' + sAutoitPath + 'AutoIt3.exe" "' + sAutoitPath + 'Tools\\Renaming_variables.au3" "' + sEditFile + '"');
- break;
- };
- break;
- default:
- AkelPad.MessageBox(hMainWnd, "Этот тип файлов не поддерживается (существующие:reg, html, au3, pb).", "Скрипт Старт F6", 64 /*MB_ICONINFORMATION*/);
- break;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement