Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2007, 15:50   #1
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию Текущая политика безопасности не позволяет получать доступ к файловой системе. JavaScript

Доброго дня всем!
Вот интересная проблемка со скриптом на JS.
Попробовал интерпретировать банальный пример,
получить пути до "специальных директорий" (мои документы, папка Windows и.т.д.), потом запустить блокнот....и послать в него сообщение....с этими путями. В общем вот что получилось:

Код:
 
//массив, содержащий текстовые константы для последущего использования
//в функции, возвращающей адреса специальных директорий
var Names = new Array("Favorites", "MyDocuments", "PrintHood","Recent", 
"StartMenu", "Templates", "Desktop", "Fonts", "NetHood", "SendTo"); 
var ProgramPath = "notepad.exe"; //путь к программе блокнот 
var Title = "Блокнот"; //заголовок программы блокнот
var Path = ""; //путь к папке 
//создаем обект класса shell
var shell = new ActiveXObject("WScript.shell");
//запускаем программу блокнот
shell.Run(ProgramPath);
//ждем 2 секунды, пока загрузится блокнот
WScript.Sleep(2000);
//запускаем цикл перебора массива и получения путей папок
for(var i=0; i<Names.length; i++)
{ 
shell.AppActivate(Title); //активируем окно прогр. блокнот
Path = shell.SpecialFolders(Names[i]); //получение пути папки
//посылаем в него строку, в блокнот:)
shell.SendKeys(Names[i] + ": " + Path + "\n"); 
}
WScript.Quit(0);
Но, что интересно, скрипт не работает правильным образом на моей тачке (у соседа все работает ОК). Происходит вот что, открывается блокнот, и начинается....
следом открывается менюшка поиска текста, и уже в этот едит идет весь текст, который я посылал в блокнот...
причем периодически нажимается кнопка "Найти"%)
короче ужас.
Я JS не так давно учу...помогите люди добрые!

Научитесь оформлять код сами, пожалуйста //SkyM@n
Бог сделал людей разными, а генерал Кольт уравнял шансы

Последний раз редактировалось SkyM@n; 01.10.2007 в 22:52.
studenth вне форума Ответить с цитированием
Старый 02.10.2007, 00:38   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Текущая политика безопасности не позволяет такого делать, а именно - получать доступ к файловой системе, что очень правильно. Не рекоммендую вам использовать WScript.shell в веб-документах. Во-первых, это далеко не будет работать во всех браузерах, во-вторых, это по умолчанию запрещено делать с соображений безопасности.
Разрешите поинтересоваться, зачем вам это? Возможно, есть другие пути решения ваших задач?
SkyM@n вне форума Ответить с цитированием
Старый 02.10.2007, 16:57   #3
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

да, за код простите, чего то я дуркую
Кстати, я не делаю web-приложения.
Я просто не нашел раздела посвященного администрированию систем (JS сценарии я использую в этом направлении).
Написал этот сценарий и хотел выполнить его локально.
И вот начали эти странности происходить....Такое ощущение, что WSH работает неправильно, как будто сообщения застревают в очереди....так как на W2K3 Server все ОК работает....

ну еще стоит отметить, что Windows на этой машине стоит левее некуда, ошибки в explorer.exe не редкость - они происходят почти постоянно...а так как идет отправка сообщений в окно....могу предположить, что тут то и происходит эта чертовщина. Уж не знаю насколько это реально....
Бог сделал людей разными, а генерал Кольт уравнял шансы

Последний раз редактировалось studenth; 02.10.2007 в 16:59.
studenth вне форума Ответить с цитированием
Старый 02.10.2007, 17:29   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от studenth Посмотреть сообщение
Я просто не нашел раздела посвященного администрированию систем (JS сценарии я использую в этом направлении).
А какое отношение имеет данный скрипт к администрированию с-мы?
SkyM@n вне форума Ответить с цитированием
Старый 02.10.2007, 18:09   #5
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

Часто возникают задачи, которые нужно как то автоматизировать....
Так вот, для некоторых задач, хорошо было бы получить пути до этих "специальных директорий", потому как, к примеру папку "Мои документы", можно перенести (есть для этого программы). Ну и вотс...
Очень удобно создать сценарий, который будет, в три ночи (если мы работам с Нью-Йоркским офисом) открывать Outlook и эмулируя нажатия клавишь отправлять почту куда нужно....

Разве плохо, что не нужно бегать на работу для того, чтобы выполнять типовые действия???
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Старый 03.10.2007, 06:19   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

А JavaScript тут при чем? Тут Дельфи, Бейсик, С++, но жабаскрипт в администрировании? Неет уж. Уж лучше VBS+WMI
SkyM@n вне форума Ответить с цитированием
Старый 03.10.2007, 09:24   #7
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

Компонент ОС Win, Windows Script Host работает со сценариями написанными на Java Script, и предоставляет в распоряжение администратора объектную модель ОС. Можно сделать все.
Остается лишь вопрос вкуса, что то вроде "Я в детстве учил VBS мне так удобно"....ну а я учил Си, и мне удобно на JS....
Почему так критически относитесь к использованию JS в этом направлении????

P.S. а почему удобнее использовать WSH...вот банальный пример, задача с подсчетом веса директории. Ну напишем рекурсивную функцию, которая будет обходить все дочернии каталоги. Если папка весит 20 гигов, то размер будет вычисляться дольше, чем это делает, скажем проводник(в меню свойства). Да, не спорю, можно и на C++ работать с WMI, но это требует больших усилий....
чем технология JS + WSH
Бог сделал людей разными, а генерал Кольт уравнял шансы

Последний раз редактировалось studenth; 03.10.2007 в 11:24.
studenth вне форума Ответить с цитированием
Старый 03.10.2007, 12:38   #8
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Да не совже уж так критически, но в администрировании имхо этот язык только может как подручное средство. Если удобней больше JS, чем VBS, используйте ее. Просто я веду к тому, что к ВЕБ-программировании весь этот флейм не относится Кстати, вопрос еще актуален?
SkyM@n вне форума Ответить с цитированием
Старый 03.10.2007, 12:41   #9
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию


конечно, закрывай
я уже понял, что не туда попал
вопрос сам собой решился.
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Старый 03.10.2007, 12:53   #10
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от studenth Посмотреть сообщение

конечно, закрывай
я уже понял, что не туда попал
вопрос сам собой решился.
Отлично) Да, и в догонку - а WScript.Quit(0); не лишний?
SkyM@n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получать пришедшие файлы N!ckeL Работа с сетью в Delphi 1 06.04.2008 09:49
Текущая дата в Эдит Ermiss Общие вопросы Delphi 4 22.12.2007 00:08
Delphi. Программа, которая использует системные функции для получения информации о файловой системе metamfetamin Помощь студентам 16 08.11.2007 13:24
Junk E-Mail Reporting Program, Как получать от нее инфу? timax PHP 3 16.10.2007 14:49
Текущая дата Nasya Microsoft Office Excel 8 26.06.2007 10:33