Scripts discussion (1)
- Author
- Message
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Scripts discussion (1)
RUS: Обсуждение скриптов.
ENG: Scripts discussion.
Scripts discussion (1) 07.07.2007 - 08.09.2011
Scripts discussion (2) 08.09.2011 - 17.04.2014
Scripts discussion (3)
ENG: Scripts discussion.
Scripts discussion (1) 07.07.2007 - 08.09.2011
Scripts discussion (2) 08.09.2011 - 17.04.2014
Scripts discussion (3)
Last edited by Instructor on Thu Apr 17, 2014 6:45 am, edited 4 times in total.
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
Это и последующие сообщения: #1362 (VladSh), #1363 (wisgest), #1364 (VladSh), #1371 (wisgest), #1373 (VladSh), #1382 (wisgest), #1385 (VladSh), #1391 (wisgest), #1392 (VladSh), #1402 (wisgest), #1408 (VladSh) — перемещены из темы «Scripts collection» (эта тема — «Scripts discussion» — создана позднее), в которой являлись обсуждением вопроса «СКРИПТ ДЛЯ ВСТАВКИ ФАЙЛА».
Рассматривался способ вызова диалога выбора файла.
К сожалению, как это сдлелать штатными функциями я не знаю. Могу предложить следующий "финт ушами":
Рассматривался способ вызова диалога выбора файла.
К сожалению, как это сдлелать штатными функциями я не знаю. Могу предложить следующий "финт ушами":
Code: Select all
var IE = new ActiveXObject("InternetExplorer.Application");
IE.navigate("javascript:\"<FORM><INPUT type='file'></FORM>\";");
while (IE.Busy) WScript.Sleep(100);
IE.document.forms[0].elements[0].click();
var fileName = IE.document.forms[0].elements[0].value;
IE.Quit();
Last edited by wisgest on Thu Sep 03, 2009 2:31 pm, edited 4 times in total.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
ошибка
wisgest
В таком варианте у меня сразу автоматом стартует DownloadMaster (у меня там галка "отслеживать URL в буфере обмена", без неё неудобно..) с параметром |"javascript:"<FORM><INPUT type='file'></FORM>";|
а потом на строке 7 вылетает ошибка 80004005.
В таком варианте у меня сразу автоматом стартует DownloadMaster (у меня там галка "отслеживать URL в буфере обмена", без неё неудобно..) с параметром |"javascript:"<FORM><INPUT type='file'></FORM>";|
а потом на строке 7 вылетает ошибка 80004005.
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
А если так?:
Code: Select all
var IE = new ActiveXObject("InternetExplorer.Application");
IE.navigate("");
while (IE.Busy) WScript.Sleep(100);
IE.document.write("<FORM><INPUT type='file'></FORM>");
IE.document.close();
IE.document.forms[0].elements[0].click();
var fileName = IE.document.forms[0].elements[0].value;
IE.Quit();
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
Кстати, если нет открытых окон Internet Explorer, то диалог выводится на переднем плане.
Для того, чтобы на панели задач появлялась кнопка (она будет подмаргивать), позволяющая переключится на диалог, не сворачивая AkelPad, после строкиможно добавить:
Для того, чтобы на панели задач появлялась кнопка (она будет подмаргивать), позволяющая переключится на диалог, не сворачивая AkelPad, после строки
Code: Select all
IE.document.close();
Code: Select all
IE.document.title = WScript.ScriptName;
IE.height = 0; IE.width = 0; IE.visible = true;
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Работает!
wisgest
Да, прикольно,
ещё такое маленькое окошко вылазит под диалогом открытия файла.. без него никак низя?
Кстати у меня и IE и EXPLORER запущены и ничего не мигает - всё нормально открывается поверх Akel'а!
P.S. WinXP sp2 ru
Да, прикольно,
ещё такое маленькое окошко вылазит под диалогом открытия файла.. без него никак низя?
Кстати у меня и IE и EXPLORER запущены и ничего не мигает - всё нормально открывается поверх Akel'а!
P.S. WinXP sp2 ru
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
Re: Работает!
У меня никаких окошек нет (SP1). Возможно дело в SP2, не позволяющий "из соображений безопасности" задать нулевые размеры окна (IE.height = 0; IE.width = 0;)? Может попробовать перемещать окошко за пределы экрана:но опять же, если дело в SP2, то неуверен, что она это позволит.
Мигание, в принципе, могло быть отключено (или не включено), см. http://doclab.org/2007/01/21/print:page ... adach.html
Вместо wsh-сценария можно создать приблизительно такое hta-приложениеи создать для него в меню команду:
Exec('mshta "<путь к hta-файлу>"'), в этом случае диалог выбора файла у меня всегда выводится на переднем плане.
Code: Select all
IE.document.Script.moveTo(-500, -500);
Мигание, в принципе, могло быть отключено (или не включено), см. http://doclab.org/2007/01/21/print:page ... adach.html
Так поверх или под?!!VladSh wrote:всё нормально открывается поверх Akel'а!
Вместо wsh-сценария можно создать приблизительно такое hta-приложение
Code: Select all
<HTML>
<HEAD><HTA:APPLICATION
applicationName='AkelpadFileInsertion'
singleInstance='yes'
caption='no'
showInTaskBar='no'
/></HEAD>
<BODY><FORM><INPUT type='file'></FORM>
<SCRIPT language='JavaScript'>
window.resizeTo(0,0);
document.forms[0].elements[0].click();
var fileName = document.forms[0].elements[0].value;
/*
Делаем с fileName, что нам надо...
*/
window.close();
</SCRIPT>
</BODY></HTML>
Exec('mshta "<путь к hta-файлу>"'), в этом случае диалог выбора файла у меня всегда выводится на переднем плане.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Re: Работает!
Точно - вылетает ошибка "Отказ в доступе".wisgest wrote:Может попробовать перемещать окошко за пределы экрана:но опять же, если дело в SP2, то неуверен, что она это позволит.Code: Select all
IE.document.Script.moveTo(-500, -500);
После тех 2-х строк стало открываться поверх! и маленькое окошко видно только если перемещать окно выбора файла. Так что всё нормально!wisgest wrote:Так поверх или под?!!VladSh wrote:всё нормально открывается поверх Akel'а!
Попробую. Конечно же лучше, когда работает под любой виндой.wisgest wrote: Вместо wsh-сценария можно создать приблизительно такое hta-приложение...
А ещё лучше если независимо от платформы
Updated:
----------
Попробовал - диалог мерзко дёргается, как бы с запаздываением, а маленькое окошко всё равно видно - маленький квадратик в левом верхнем углу диалога
Недостаток обоих вариантов - можно свернуть AkelPad и потом очень долго искать окно с диалогом. Плохо что нельзя задать APPLMODAL, чтобы диалог был привязан к окну Akel'а, а так получается Akel можно закрыть, а окно будет болтаться.
Так что останавливаюсь пока на чистом JavaScript'е.
Спасибо за помощь!
----------
ПыСы: никогда не думал, что такая простая вещь - проблема :-\
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
Re: СКРИПТ ДЛЯ ВСТАВКИ ФАЙЛА
VladSh
В InsertFile.js в строке:вместо 0 лучше поставить -2 - тогда можно будет вставлять файлы и в юникоде.
В InsertFile.js в строке:
Code: Select all
var File = fso.OpenTextFile(fileName, 1, false, 0);
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Re: СКРИПТ ДЛЯ ВСТАВКИ ФАЙЛА
Согласен. Изменил код InsertFile.wisgest wrote:в строке:вместо 0 лучше поставить -2 - тогда можно будет вставлять файлы и в юникоде.Code: Select all
var File = fso.OpenTextFile(fileName, 1, false, 0);
UPDATED:
Code: Select all
//Открытие файла
var OpenFileDialog = new ActiveXObject("UserAccounts.CommonDialog");
OpenFileDialog.Filter = 'All Files|*.*';
OpenFileDialog.ShowOpen();
fileName = OpenFileDialog.FileName;
Большая просьба! ПОЖАЛУЙСТА попробуйте и отпишитесь!
Т.к. я сначала пытался использовать MSComDlg.CommonDialog, так он писал что-то типа "Нелицензированное использование..." А этот вариант заработал без вопросов. Нужно знать, он у всех работает?
Last edited by VladSh on Wed Jun 23, 2010 2:46 pm, edited 2 times in total.
-
Offline
- Posts: 63
- Joined: Sun Jun 24, 2007 4:03 pm
- Contact:
UserAccounts.CommonDialog
Апплет "Учётные записи пользователей" Панели управления в Windows XP фактически представляет собой hta-приложение (nusrmgr.hta), находящееся в ресурсах файла nusrmgr.cpl. Для того чтобы из него можно было вызывать диалог выбора рисунка пользователя и создан объект UserAccounts.CommonDialog. Насколько я знаю, до Windows XP он недоступен.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
К сожалению
действительно... Только что проверил на Win2000 - не работает а так всё было бы красиво...
-
Offline
- Posts: 21
- Joined: Sun May 06, 2007 10:14 am
Thanks for the English. Google Translate doesn't do a very good gob.VladSh wrote:Idjo, Instructor
Still there is an idea - by pressing Enter after a sign { on a new line at once to do the necessary space + on the third line to put closing }. And that this script worked always in a background, instead of on hotkeys. Is better to make small plug-in which would support it + automatic formation of spaces. It would be possible to take options of spaces from options AkelPad'а (spaces and their quantity or tabulation).
Idea with Shift+Right/Left not so good, even, I would tell, very bad - it is impossible to select the text!!! It is much better to use Alt+Right/Left etc.
I can make a plugin like but there is no option to assign it to the Enter key. And you're right, it'd be better as a plug-in.
And I assigned my plug-in to Alt+Right/Left, I just called it Shift+Right/Left because it shifts the text.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
просьба
Код отличный! Только нужно, чтобы он работал и без выделения, т.е. когда я просто установил курсор в определённую строку.Instructor wrote:SelCompliteLine.jsCode: Select all
/// Select complite lines ...
Можете подправить? /здесь должно быть просящая рожа/
EN: On ...+Enter at me too it has not turned out to appoint a combination of keys therefore I use Ctrl+Down.Idjo wrote:I can make a plugin like but there is no option to assign it to the Enter key. And you're right, it'd be better as a plug-in.
And I assigned my plug-in to Alt+Right/Left, I just called it Shift+Right/Left because it shifts the text.
Sorry, but I have not restrained - have written script itself Yet I do not wish to spread, as SelCompliteLine.js works not absolutely how it would be desirable...
Then it will be possible to do a plug-in.
RU: На ...+Enter у меня тоже не получилось назначить комбинацию клавиш, потому использую Ctrl+Down.
Прошу прощения, но я не сдержался - написал скрипт сам Пока не хочу выкладывать, так как SelCompliteLine.js работает не совсем так, как хотелось бы... т.е. скрипт ещё глючит.
Потом можно будет делать и плагин.
Last edited by VladSh on Wed Jun 23, 2010 2:48 pm, edited 1 time in total.