| View previous topic :: View next topic |
| Author |
Message |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Fri Jul 06, 2007 6:29 pm Post subject: Scripts discussion (1) |
|
|
RUS: Обсуждение скриптов.
ENG: Scripts discussion.
Scripts discussion (1) 07.07.2007 - 08.09.2011
Scripts discussion (2)
Last edited by Instructor on Tue Sep 11, 2012 10:02 am; edited 3 times in total |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Wed Jul 18, 2007 11:38 am Post subject: |
|
|
Это и последующие сообщения: #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: | 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 |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 12:03 pm Post subject: ошибка |
|
|
wisgest
В таком варианте у меня сразу автоматом стартует DownloadMaster (у меня там галка "отслеживать URL в буфере обмена", без неё неудобно..) с параметром |"javascript:"<FORM><INPUT type='file'></FORM>";|
а потом на строке 7 вылетает ошибка 80004005. |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Wed Jul 18, 2007 12:17 pm Post subject: |
|
|
А если так?: | Code: | 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();
|
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 12:32 pm Post subject: ничего |
|
|
wisgest
Ничего не происходит, но и ошибок нет.
Updated: oops! Диалоги на самом деле есть, но ПОД AkelPad'ом! |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Wed Jul 18, 2007 2:06 pm Post subject: |
|
|
Кстати, если нет открытых окон Internet Explorer, то диалог выводится на переднем плане.
Для того, чтобы на панели задач появлялась кнопка (она будет подмаргивать), позволяющая переключится на диалог, не сворачивая AkelPad, после строки | Code: | | IE.document.close(); | можно добавить: | Code: | IE.document.title = WScript.ScriptName;
IE.height = 0; IE.width = 0; IE.visible = true;
|
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 2:29 pm Post subject: Работает! |
|
|
wisgest
Да, прикольно,
ещё такое маленькое окошко вылазит под диалогом открытия файла.. без него никак низя?
Кстати у меня и IE и EXPLORER запущены и ничего не мигает - всё нормально открывается поверх Akel'а!
P.S. WinXP sp2 ru |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Wed Jul 18, 2007 4:36 pm Post subject: Re: Работает! |
|
|
У меня никаких окошек нет (SP1). Возможно дело в SP2, не позволяющий "из соображений безопасности" задать нулевые размеры окна (IE.height = 0; IE.width = 0;)? Может попробовать перемещать окошко за пределы экрана: | Code: | | IE.document.Script.moveTo(-500, -500); | но опять же, если дело в SP2, то неуверен, что она это позволит.
Мигание, в принципе, могло быть отключено (или не включено), см. http://doclab.org/2007/01/21/print:page,1,miganie_knopki_na_paneli_zadach.html | VladSh wrote: | | всё нормально открывается поверх Akel'а! | Так поверх или под?!!
Вместо wsh-сценария можно создать приблизительно такое hta-приложение | Code: | <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-файлу>"'), в этом случае диалог выбора файла у меня всегда выводится на переднем плане. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 5:07 pm Post subject: Re: Работает! |
|
|
| wisgest wrote: | Может попробовать перемещать окошко за пределы экрана: | Code: | | IE.document.Script.moveTo(-500, -500); | но опять же, если дело в SP2, то неуверен, что она это позволит. |
Точно - вылетает ошибка "Отказ в доступе".
| wisgest wrote: |
| VladSh wrote: | | всё нормально открывается поверх Akel'а! | Так поверх или под?!! |
После тех 2-х строк стало открываться поверх! и маленькое окошко видно только если перемещать окно выбора файла. Так что всё нормально!
| wisgest wrote: |
Вместо wsh-сценария можно создать приблизительно такое hta-приложение... |
Попробую. Конечно же лучше, когда работает под любой виндой.
А ещё лучше если независимо от платформы
Updated:
----------
Попробовал - диалог мерзко дёргается, как бы с запаздываением, а маленькое окошко всё равно видно - маленький квадратик в левом верхнем углу диалога
Недостаток обоих вариантов - можно свернуть AkelPad и потом очень долго искать окно с диалогом. Плохо что нельзя задать APPLMODAL, чтобы диалог был привязан к окну Akel'а, а так получается Akel можно закрыть, а окно будет болтаться.
Так что останавливаюсь пока на чистом JavaScript'е.
Спасибо за помощь!
----------
ПыСы: никогда не думал, что такая простая вещь - проблема :-\ |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Thu Jul 19, 2007 5:05 am Post subject: Re: СКРИПТ ДЛЯ ВСТАВКИ ФАЙЛА |
|
|
VladSh
В InsertFile.js в строке: | Code: | | var File = fso.OpenTextFile(fileName, 1, false, 0); | вместо 0 лучше поставить -2 - тогда можно будет вставлять файлы и в юникоде. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Thu Jul 19, 2007 7:47 am Post subject: Re: СКРИПТ ДЛЯ ВСТАВКИ ФАЙЛА |
|
|
| wisgest wrote: | в строке: | Code: | | var File = fso.OpenTextFile(fileName, 1, false, 0); | вместо 0 лучше поставить -2 - тогда можно будет вставлять файлы и в юникоде. |
Согласен. Изменил код InsertFile.
UPDATED:
| Code: | //Открытие файла
var OpenFileDialog = new ActiveXObject("UserAccounts.CommonDialog");
OpenFileDialog.Filter = 'All Files|*.*';
OpenFileDialog.ShowOpen();
fileName = OpenFileDialog.FileName; |
Взято здесь: http://www.microsoft.com/technet/scriptcenter/resources/qanda/jan05/hey0128.mspx
Большая просьба! ПОЖАЛУЙСТА попробуйте и отпишитесь!
Т.к. я сначала пытался использовать MSComDlg.CommonDialog, так он писал что-то типа "Нелицензированное использование..." А этот вариант заработал без вопросов. Нужно знать, он у всех работает?
Last edited by VladSh on Wed Jun 23, 2010 2:46 pm; edited 2 times in total |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Thu Jul 19, 2007 6:38 pm Post subject: UserAccounts.CommonDialog |
|
|
| Апплет "Учётные записи пользователей" Панели управления в Windows XP фактически представляет собой hta-приложение (nusrmgr.hta), находящееся в ресурсах файла nusrmgr.cpl. Для того чтобы из него можно было вызывать диалог выбора рисунка пользователя и создан объект UserAccounts.CommonDialog. Насколько я знаю, до Windows XP он недоступен. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Fri Jul 20, 2007 9:23 am Post subject: К сожалению |
|
|
действительно... Только что проверил на Win2000 - не работает а так всё было бы красиво... |
|
| Back to top |
|
 |
Idjo
Joined: 06 May 2007 Posts: 21
|
Posted: Mon Aug 06, 2007 8:20 pm Post subject: |
|
|
| 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.
|
Thanks for the English. Google Translate doesn't do a very good gob.
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.  |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Tue Aug 07, 2007 10:39 am Post subject: просьба |
|
|
| Instructor wrote: | SelCompliteLine.js
| Code: | /// Select complite lines
... |
|
Код отличный! Только нужно, чтобы он работал и без выделения, т.е. когда я просто установил курсор в определённую строку.
Можете подправить? /здесь должно быть просящая рожа/
| 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.  |
EN: On ...+Enter at me too it has not turned out to appoint a combination of keys therefore I use Ctrl+Down.
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 |
|
| 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
|