Тема: JavaScript/JS: диалоговое окно сохранения файла
Нужно скопировать файл с вызовом диалогового окна, в котором задаётся путь и имя файла, куда копируется, типа такого:
ОС: Windows 7/8. Возможно это сделать стандартными средствами Windows?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → JavaScript/JS: диалоговое окно сохранения файла
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Нужно скопировать файл с вызовом диалогового окна, в котором задаётся путь и имя файла, куда копируется, типа такого:
ОС: Windows 7/8. Возможно это сделать стандартными средствами Windows?
Интересный вопрос.
Папку можно вот так выбрать:
var objShellApp = new ActiveXObject('Shell.Application');
var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1+2+64+512+16);
А имя файла задать можно отдельным вопросом ввода текста.
Если придумаешь способ лучше, напиши, мне тоже надо.
Крепыш, пример на vbs (на js лень перекраивать):
Const HKCU = &H80000001
LID = "Software\CLASSES\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905"
With GetObject("winmgmts:\\.\root\default:StdRegProv")
If .EnumValues(HKCU, LID) <> 0 Then
.CreateKey HKCU, LID
.SetStringValue HKCU, LID,, "gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj"
End If
End With
With CreateObject("MSComDlg.CommonDialog")
.MaxFileSize = 256
.ShowSave
End With
Flasher
Возможно это сделать стандартными средствами Windows?
На сколько я знаю, MSComDlg.CommonDialog не является стандартным компонентом Windows, а входит в состав Microsoft Visual Studio. Ошибаюсь ?
Xameleon, в первой части не ошибаетесь. Входит, конечно, не только в Visual Studio. Другое дело — на него лицензия нужна .
На сколько я знаю, MSComDlg.CommonDialog не является стандартным компонентом Windows, а входит в состав Microsoft Visual Studio. Ошибаюсь ?
В компонентах обычно числится, но, начиная с Висты, не зарегистрирована, что решено в моём скрипте.
alexii
Xameleon, в первой части не ошибаетесь. Входит, конечно, не только в Visual Studio. Другое дело — на него лицензия нужна
.
Про лицензию давно в курсе. ) Со времён переноса VB-ных проектов с MSWinsock
Но опять же автор темы просит стандартное решение для Windows.
Предполагаю, что вместе с Microsoft Office он также попадает в систему, но считать это стандартом (типа офис сейчас стоит почти на всех компах), на мой взгляд, ошибочно.
Flasher
В компонентах обычно числится, но, начиная с Висты, не зарегистрирована, что решено в моём скрипте.
Проверил на наскольких компах. И с вистой и с семёркой. Ни на одном нет этого компонента в system32 и в syswow64. Логично, что и записей в реестре о нём нет. O_o.
Возвращаясь к Вашему скрипту - он производит именно добавление лицензии, но не регистрацию компонента в системе.
Поэтому ваш комментарий вызывает у меня непонимание. В каких компонентах он числится, если не зарегистрирован ? И как добавление лицензии решает проблему регистрации компонента ?
Проверил на наскольких компах. И с вистой и с семёркой. Ни на одном нет этого компонента в system32 и в syswow64.
Не знаю, у я тоже проверял на XP и на 7-ке, всё работало отовсюду.
Возвращаясь к Вашему скрипту - он производит именно добавление лицензии, но не регистрацию компонента в системе.
Это и имелось в виду, не точно выразился.
Flasher, ну согласитесь странная ситуация какая-то получается. У меня 3 чистых компа на работе + пара виртуалок домашних. Ни на одной из систем файла нет. Винда поставлена вчистую. Логично, то я бы его удалять специально не стал. Опять же исходя чисто из логики - Если компонент, на рассмотренных Вами машинах есть в системе, то странно почему он тогда не зареген и на него отсутствует лицензия в реестре ? Т.к компонент является разработкой мелкософта, то если он оказывается в чистой системе (как вы говорите), то по логике он должен быть автоматически зареген, иначе зачем ему там лежать ? O_o
Xameleon
Ситуация не странная. Вероятно 7/8-ке действительно не помочь. Машины были в основном на XP, где компонент встроен, на семёрке стоят 6 рантаймы. Вот и весь сказ. Про чистую систему я не писал. Лицензии по определённым причинам может не оказаться и без потери регистрации, это не такая уж редкая проблема при сносе "чего-то чем-то".
Но как правильно отметил alexii, библиотеки dll/ocx идут не только в составе Studio (взять к примеру MS HTML Help).
где компонент встроен,
Неа.
где компонент встроен,
Неа.
Присоединяюсь. )
Вы неумолимы. В мою поддержку.
Flasher
1) Честное программистское, я не думал "докапываться". Лишь хотел найти зерно истины. Ведь каждый может ошибаться и возможно мои суждения ранее были ошибочны. Поэтому и провёл исследование ещё раз. Но...
В мою поддержку
Видимо я что-то упустил, но не понял смысла этой ссылки. Там предложены теже варианты и обсуждение приходит к тем же выводам + решениям на NET. Или я невнимателен ?
2) Если вернуться к вопросу автора темы, то мне кажется, что ему в самой меньшей степени интересно её развитие. )
Типа спросил и забыл.
Или я невнимателен ?
Сломался Ctrl+F в браузере?
2) Если нет в системе компонента, то и стандартного решения тоже нет. C'est la vie.
Сломался Ctrl+F в браузере?
1) Бесполезно флудим или есть по существу возражения ?
2) Возможно и есть. Просто мы о нём ещё пока не знаем. )
1) Возражения чему? Чей-то внимательности или умению пользоваться поиском по "XP"?
2) Мне видится, что у этой теории сверхмалый потенциал.
Открываю образ Windows XP и ищу источник «comdlg32.ocx», реализующий объект ActiveX «MSComDlg.CommonDialog». Не нахожу:
Открываю образ Windows 7, извлекаю образ «install.wim», открываю его и ищю источник «comdlg32.ocx», реализующий объект ActiveX «MSComDlg.CommonDialog». Не нахожу:
alexii, SP3?
А safrcdlg.dll?
alexii, SP3?
Да.
А safrcdlg.dll?
Этот наличествует:
alexii
Т.е., коли не везде оно стоит (я позже сам ещё дистрибутивы проверю), то на XP сохраняем по SAFRCFileDlg.FileSave, на 7/8 скриптом проверяем, качаем нужный dll/ocx, регистрируем и выполняем.
Flasher,
1) Возражения чему? Чей-то внимательности или умению пользоваться поиском по "XP"?
1) Продолжаем бесполезно флудить ? Ок. Вопрос в лоб - что я по Вашему не нашёл поиском на той странице ? O_o
2) Мне видится, что у этой теории сверхмалый потенциал.
Если решение не нашли Вы, это не значит, что его не существует, а означает лишь, то что Вы его не нашли.
Как минимум вариантов решения несколько:
http://stackoverflow.com/questions/1133 … the-conten
https://gist.github.com/MrSwitch/3552985
http://hackworthy.blogspot.ru/2012/05/s … ed-in.html
Опять же есть метод ExecWB объекта InternetExplorer.Application позволяющий вызывать этот диалог.
Т.е., коли не везде оно стоит (я позже сам ещё дистрибутивы проверю), то на XP сохраняем по SAFRCFileDlg.FileSave, на 7/8 скриптом проверяем, качаем нужный dll/ocx, регистрируем и выполняем.
В очередной раз обращаю Ваше внимание на пожелания автора:
ОС: Windows 7/8. Возможно это сделать стандартными средствами Windows?
Т.е иные решения автора не интересуют.
В моей ли внимательности проблема ? O_o
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться