| View previous topic :: View next topic |
| Author |
Message |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Sat Nov 29, 2008 11:21 pm Post subject: Батник для создания нового файла с содержимым буфера обмена |
|
|
хотелось бы иметь bat-ник (на который после будет повешен хоткей), который создавал новый файл (если AkelPad уже запущен-то открывается новая вкладка) и в него копировалось содержание буфера обмена.
есть ли возможность такое реализовать?
(в хелпе нашёл только информацию только о создании файлов с заранее выбранным названием файла)
спасибо |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 725 Location: Kyiv, Ukraine
|
Posted: Sun Nov 30, 2008 11:00 am Post subject: Re: Батник для создания нового файла с содержимым буфера обм |
|
|
| laburj wrote: | | есть ли возможность такое реализовать? |
Используйте плагин Scripts с вызовом скрипта примерно такого содержания:
| Code: | var AkelPad=new ActiveXObject("AkelPad.document");
var hMainWnd = AkelPad.GetMainWnd();
var pText = AkelPad.GetClipboardText();
AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4101 /*IDM_FILE_NEW*/, 0);
AkelPad.SetSel(0, -1);
AkelPad.ReplaceSel(pText); |
Подробнее см. "Scripts-Methods.txt", который входит в состав плагина Scripts. |
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Sun Nov 30, 2008 12:21 pm Post subject: |
|
|
я наверно плохо объяснил, что я хочу
я хотел бы создать хоткей более глобальный, который запускался в любой программе:
пр. скопровал текст в опере, нажал хоткей- и получил новый файл с содержимым буфера в akelpadе
т.е. на хоткей я хотел бы повесить батник с командой типа (если бы это было возможно)
akelpad.exe /n /clippaste |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Wed Dec 03, 2008 10:00 am Post subject: |
|
|
Scripts plugin v3.6 + ClipPaste.js
И добавляете команду для глобальной горячей клавиши:
| Code: | | WScript "c:\Program Files\AkelPad\AkelFiles\Plugs\Scripts\ClipPaste.js" "c:\Program Files\AkelPad\AkelPad.exe" |
|
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Wed Dec 03, 2008 3:19 pm Post subject: |
|
|
спасибо огромное!
только одно "НО":
в случае, когда уже AkelPad запущен (свёрнут в панель задач) и после нажатия хоткея окно AkelPad'a не активируется.
можно ли это исправить? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Wed Dec 03, 2008 4:39 pm Post subject: |
|
|
| Подкорректировано: ClipPaste.js |
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Wed Dec 03, 2008 5:46 pm Post subject: |
|
|
отлично! спасибо ещё раз
а я кстати тем временем нашёл ещё один вариант решения:
в скрипте программы AutoHotkey, запускающем по горячей клавише команду
| Code: | WScript "c:\totalcmd\utilits\AkelPad\AkelFiles\Plugs\Scripts\ClipPaste.js" "c:\totalcmd\utilits\AkelPad\AkelPad.exe"
|
добавил строчку, активирующую окно AkelPad:
| Code: | | WinActivate, ahk_class AkelPad4 |
|
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Sat May 01, 2010 3:49 pm Post subject: |
|
|
Instructor, обращаюсь вновь за помощью! хотелось бы подправить существующий скрипт, скажем так сделать аналог плагина CaptureClipboard.
т.е. примерно так:
при запуске скрипта в файл на активной вкладке в то место, где стоит курсор вставляется разделитель (например, два перехода на новую строчку), а после вставляется находящийся в буфере текст.
очень здорово было бы если также была возможность выбора поведения скрипта:
-проводить эту операцию в фоне (т.е. AkelPad не активировался)
-и наоборот
также хочется чтобы в самом скрипте можно было бы настроить разделитель.
заранее спасибо |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Sun May 02, 2010 2:37 am Post subject: |
|
|
laburj
Чтобы вставить разделитель надо просто изменить строчку | Code: | | AkelPad.ReplaceSel(pText); |
на
| Code: | | AkelPad.ReplaceSel("\n--------------------\n" + pText); |
Чтобы окно не разворачивалось комментируем или удаляем блок:
| Code: | if (oFunction.Call("user32::GetForegroundWindow") != hMainWnd)
{
//...
} |
|
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Sun May 02, 2010 6:36 pm Post subject: |
|
|
Instructor, а как сделать, чтобы при запуске скрипта в уже открытый файл на активной вкладке в то место, где стоит курсор вставлялся разделитель, а после вставлялся находящийся в буфере текст.
в данном случае каждый раз создаётся новая вкладка |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Mon May 03, 2010 3:56 am Post subject: |
|
|
laburj
Чтобы не создавалась вкладка комментируем строку:
| Code: | | AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4101 /*IDM_FILE_NEW*/, 0); |
|
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Mon May 03, 2010 5:24 am Post subject: |
|
|
Instructor
в таком случае используется та же вкладка, но содержимое вкладки полностью затирается содержимым буфера |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Mon May 03, 2010 5:28 am Post subject: |
|
|
Тогда меняем:
| Code: | | AkelPad.SetSel(0, -1); |
на
| Code: | | AkelPad.SetSel(-1, -1); |
 |
|
| Back to top |
|
 |
laburj
Joined: 26 Nov 2007 Posts: 37
|
Posted: Mon May 03, 2010 6:16 am Post subject: |
|
|
| уже лучше) но текст вставляется в конце файла, а не в то место, где стоит курсор |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Mon May 03, 2010 6:21 am Post subject: |
|
|
laburj
Тогда вообще уберите эту строчку. |
|
| Back to top |
|
 |
|