Форум
Написать нам
Страница 1 из 11
Модератор форума: Peter 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Как определить программу используемую по умолчанию? ((скриптом, выполняя его на компьютере пользователя))
Как определить программу используемую по умолчанию?
ВадимДата: Понедельник, 01 Февраль 2010, 19:14 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Собственно, вообще интересует, где, в каком месте реестра, прописываются пути к программам, выбранным по умолчанию на компьютере пользователя (чтобы пути к ним считать). Обыскался, не нашел...
Или используемые по умолчанию программы возможно узнать только по каждому зарегистрированному расширению файла - с какой прогой он ассоциирован?

Смысл в том, чтобы скриптом узнать этот путь к внешней проге и отправить по нему соответствующий файл на открытие, к примеру, командой:

DropFile "путь к программе" "путь к файлу"

или

Run "путь к программе" "путь к файлу" "Normal" "" ""

Конкретная задача сейчас двойная:

1) нужно реализовать открытие-для-просмотра (т.е. файл .png должен открыться в просмотрщике, используемом по умолчанию);

2) нужно реализовать открытие-для-редактирования (т.е. файл .png должен открыться в редакторе изображений, используемом по умолчанию).

Или я перемудрил и можно как-то простой командой (типа OpenFile, сочиняю конечно) запустить файл на открытие, а какой-то командой на редактирование? :)

И (связанный вопрос):

Как вызвать из проекта NB системный диалог "Открыть с помощью..."? Чтобы пользователь мог сам выбрать программу для открытия файла.


С уважением, Вадим
 
DEMBELДата: Понедельник, 01 Февраль 2010, 19:41 | Сообщение # 2
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Вадим)
Собственно, вообще интересует, где, в каком месте реестра, прописываются пути к программам, выбранным по умолчанию на компьютере пользователя (чтобы пути к ним считать). Обыскался, не нашел...

Это возможно сделать.
Quote (Вадим)
Или используемые по умолчанию программы возможно узнать только по каждому зарегистрированному расширению файла - с какой прогой он ассоциирован?

И это тоже.
Quote (Вадим)
1) нужно реализовать открытие-для-просмотра (т.е. файл .png должен открыться в просмотрщике, используемом по умолчанию); 2) нужно реализовать открытие-для-редактирования (т.е. файл .png должен открыться в редакторе изображений, используемом по умолчанию).

А это нет. Программа "по-умолчанию" для каждого типа файлов только одна. В зависимости от того какая (просмотрщик или редактор), и будет выполнено соответствующее действие. Можно как вариант указать программы из стандартного набора винды для каждого из действий вручную.

---------------------------------------------

Quote (Вадим)
Как вызвать из проекта NB системный диалог "Открыть с помощью..."?

Вернемся к разговору о RunDLL32 - вызовем эту функцию из системной библиотеки
shell32.dll где хранятся все функции оболочки:

rundll32.exe shell32.dll, OpenAs_RunDLL путь/имя файла

 
ВадимДата: Понедельник, 01 Февраль 2010, 19:42 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (DEMBEL)
Это возможно сделать.
Это радует! :) Только не знаю где искать. Ассоциации, если я правильно понимаю, надо смотреть в HKEY CLASSES ROOT, а вот где найти дефолты, подставляемые для сходных типов файлов?

Quote (DEMBEL)
А это нет. Программа "по-умолчанию" для каждого типа файлов только одна.
Я думаю, что и это можно, но для этого придется обработать результаты сканирования реестра и иметь два заранее заготовленных списка Просмотрщиков и Редакторов для сравнения. К примеру, если полученное из реестра значение совпадает с одним из значений списка Просмотрщиков, а нужен Редактор, то тогда определяем наличие в системе Редактора (тоже по списку, от простого к сложному) и открываем файл в нем.

С уважением, Вадим

Сообщение отредактировал Вадим - Понедельник, 01 Февраль 2010, 19:47
 
DEMBELДата: Понедельник, 01 Февраль 2010, 19:46 | Сообщение # 4
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Вадим)
Я думаю, что и это можно, но для этого придется обработать результаты сканирования реестра и иметь два заранее заготовленных списка Просмотрщиков и Редакторов для сравнения.

нет так делать ненада. Во-первых, в реестре не написано ЧТО это за программа просмотрщик или редактор, их бывают десятки разных.
Quote (Вадим)
олько не знаю где искать. Ассоцииации, если я правильно понимаю надо смотреть в HKEY CLASSES ROOT, а вот где найти дефолты, подставляемые для сходных типов файлов?

да там же в подразделах, попозже скажу точно, или еще кто нибудь ответит
Quote (Вадим)
А есть информация на предмет вызова диалога "Открыть с помощью..."?

см. выше. это самый цивилизованный вариант.
 
ВадимДата: Понедельник, 01 Февраль 2010, 20:04 | Сообщение # 5
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (DEMBEL)
rundll32.exe shell32.dll, OpenAs_RunDLL путь/имя файла
УРА!!!! Работает!!! :) thumbs_up Спасибо, DEMBEL!

Я на форуме (в разделе MMB) видел список функций этой проги, но вывода диалога "Открыть с помощью" там нет. У тебя есть полный список функций/команд?

Quote (DEMBEL)
нет так делать ненада. Во-первых, в реестре не написано ЧТО это за программа просмотрщик или редактор, их бывают десятки разных.
Я имел ввиду, что я сам их разнесу по спискам - что просмотрщик, а что редактор. Но ты прав, конечно, это слабое решение, не стоит так делать. Не универсально.

Наверное для целей редактирования надо предложить пользователю выбрать прогу диалогом "Открыть с помощью" (тем более, что для разных целей он может пожелать воспользоваться разными программами), а для целей просмотра достаточно будет вызвать обычную программу просмотра изображений и факсов. Наверное есть такая команда в Run? Тогда и реестр парсить даже не придется.

Добавлено (01 Февраль 2010, 20:04)
---------------------------------------------
А, дошло! Вот почему у меня не получалось. Я запятую ставил перед путем к файлу.

Вот решение для открытия в просмотрщике:

Run "Rundll32.exe" "shimgvw.DLL,ImageView_Fullscreen [путь к файлу]" "Normal" "" ""


С уважением, Вадим

Сообщение отредактировал Вадим - Понедельник, 01 Февраль 2010, 19:58
 
YURIYДата: Понедельник, 01 Февраль 2010, 20:36 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 2486
Репутация: 54
Награды: 19
Статус: Offline
Quote (Вадим)
Ассоциации, если я правильно понимаю, надо смотреть в HKEY CLASSES ROOT, а вот где найти дефолты, подставляемые для сходных типов файлов?

Вроде здесь:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

А вот полезная тема:

http://mmbuilder.ru/forum/12-206-1



Вечная память Андрею Сергееву!
 
DEMBELДата: Понедельник, 01 Февраль 2010, 20:57 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Вадим)
У тебя есть полный список функций/команд?

Это не список команд RunDLL32, это метод запуска функций библиотек. Библиотеки любые могут быть, в системе их тьма, а функций еще больше, смысла в таком полном списке нет, есть только наиболее употребительные (для библ USER32.DLL, SHELL32.DLL, PRINTUI.DLL и еще нескольких) и 100% рабочие... будем искать в зависимости от надобности.
 
ВадимДата: Понедельник, 01 Февраль 2010, 21:57 | Сообщение # 8
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (YURIY)
Вроде здесь: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
Спасибо! Похоже, что здесь. И за ссылку спасибо - любопытная инфа! Особенно для случаев, когда надо сделать свои специфичные файлы для проги.

Правильно ли я понял, что параметры а, b, c, d, e - это порядок подстановки (в случае если нужной проги нет) ассоциированных с данным файлом программ (указанных как значения)?

Quote (DEMBEL)
будем искать в зависимости от надобности.
Ок! Спасибище! :)

С уважением, Вадим
 
mishemДата: Понедельник, 01 Февраль 2010, 22:19 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (DEMBEL)
будем искать в зависимости от надобности.

Наиболее значимые :)
http://www.mmbuilder.ru/forum/22-1632-1

Я люблю думать что умею рисовать
 
ВадимДата: Понедельник, 01 Февраль 2010, 22:43 | Сообщение # 10
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (mishem)
Наиболее значимые
Спасибо! Пригодится обязательно!

С уважением, Вадим
 
mishemДата: Вторник, 02 Февраль 2010, 00:08 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Вадим, почитай вот это еще http://www.diwaxx.ru/win/reg-file.php

Я люблю думать что умею рисовать
 
ВадимДата: Среда, 03 Февраль 2010, 07:53 | Сообщение # 12
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (mishem)
почитай вот это еще http://www.diwaxx.ru/win/reg-file.php
Спасибо, mishem! Хорошая статейка!

Только я малость запутался. Все-таки можно любой из этих двух ключей использовать или только оба сразу, или какой-то конкретный? Или для разных случаев разные? %)

Вариант 1.
HKEY_CLASSES_ROOT\

Вариант 2.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

?

P.S.: и мне кажется, что в статье какая-то шкодливая опечатка - разве может существовать корневой ключ с именем HKEY_CLASSES_ROOTDIZ ?

Добавлено (03 Февраль 2010, 07:53)
---------------------------------------------
С реестром вопрос повис, однако, необходимо отметить в этой теме, что касается возможности открыть файл в программе по умолчанию (на компьютере пользователя), то исчерпывающее решение создал Peter, добавив соответствующую команду к своему плагину zmFunctions.


С уважением, Вадим

Сообщение отредактировал Вадим - Вторник, 02 Февраль 2010, 01:48
 
PeterДата: Среда, 03 Февраль 2010, 11:28 | Сообщение # 13
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Гм...
Не сразу заметил это:
Quote (Вадим)
открытие-для-редактирования

У меня аж мозг весь вспотел, но я так и не понял - ДЛЯ ЧЕГО?
%)
Подавляющее большинство пользовательских файлов и редактируется в тех программах, в которых открывается.
Исключения составляют файлы мультимедиа и картинки, если ничего не забыл...
В общем, Вадим, попробуй "это" в прикреплении.
Если нормально заработает, то хорошо, а не заработает - ещё лучше!
:)
Только программа для редактирования должна быть НАЗНАЧЕНА, а если её нет, то ничего не откроется.

P.S.Впрочем, все-равно не откроется... :D

Прикрепления: Project1.rar(175Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
ВадимДата: Среда, 03 Февраль 2010, 14:36 | Сообщение # 14
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
У меня аж мозг весь вспотел, но я так и не понял - ДЛЯ ЧЕГО?

Да, верно, я не очень удачно выразился. Но суть такая - есть проги ориентированные на Просмотр (просмотрщики - айсидиси, просмотр изображений и факсов и море других), а есть Редакторы (всяческие пайнты, фотошопы энд корелы и т.д.). И чтобы просмотреть фотографию грузить фотошоп как-то, мягко говоря, странно...
Quote (Peter)
Исключения составляют файлы мультимедиа и картинки
Вот я о ".png" в первом посте и писал. Хотя я бы к этой категории и просто аудио добавил (плеер не всегда редактор).
Quote (Peter)
Прикрепления: Project1.rar(175Kb)
Сейчас проверю!

Добавлено (03 Февраль 2010, 14:36)
---------------------------------------------

Quote (Peter)
P.S.Впрочем, все-равно не откроется...
Открылось!! :)
Более того, "Открывает" в просмотрщике изображений и факсов, а на "Редактирование" открывает в Paint.NET. Так что работает!
Интересно, что именно работает?
Как реализовано? Просто выбраны две стандартные программы или используются значения по умолчанию?

С уважением, Вадим
 
PeterДата: Среда, 03 Февраль 2010, 15:02 | Сообщение # 15
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Вадим)
Интересно, что именно работает?

Компьютер.
Quote (Вадим)
Как реализовано?

Delphi+WinApi
Quote (Вадим)
Просто выбраны две стандартные программы или используются значения по умолчанию?

Ну да, делать мне больше нечего, чтобы вычислять какие там у тебя программы установлены!
:)
По умолчанию.

Но больше всего интригует вот это:

Quote (Вадим)
И чтобы просмотреть фотографию грузить фотошоп как-то, мягко говоря, странно...

А что, у тебя упорно грузится фотошоп?
:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
ВадимДата: Четверг, 04 Февраль 2010, 04:56 | Сообщение # 16
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline

Quote (Peter)
А что, у тебя упорно грузится фотошоп?
Не поверишь, но именно так и было однажды. Не помню уже почему, возможно я в самом Фотошопе что-то не так установил, но все файлы изображений открывались у меня именно в Фотошопе, если не выбрать другую прогу.

С уважением, Вадим
 
DEMBELДата: Четверг, 04 Февраль 2010, 05:07 | Сообщение # 17
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
после установки ps cs3/4 все картинки по умолчанию открывает именно он, в предыдущих версиях был диалог выбора расширений, а щас он сразу себе все забирает.
 
PeterДата: Четверг, 04 Февраль 2010, 15:25 | Сообщение # 18
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Вадим)
но именно так и было однажды.

Гм...
И вот из-за этого весь сыр-бор, и вся эта тема?
mda
Шторм в рюмке!
Подобные "неувязки" устраняются самим пользователем максимум за минуту!
:)
И главное - причем тут проекты NeoBook?
%)
Quote (DEMBEL)
щас он сразу себе все забирает

А вот это уже полнейшее свинство!
Мое убеждение, что никакие программы не должны иметь права менять что-либо в настройках пользователя без его ведома.
Подобные проги я сношу со своего компа моментально и навсегда.

Но зачем фотошопу творить подобные нелюбезности?
%)

P.S. Кстати, вот вроде бы понял зачем Вадиму так нужно было "редактирование" в NeoBook.
Есть смысл...


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
mishemДата: Четверг, 04 Февраль 2010, 22:53 | Сообщение # 19
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (DEMBEL)
после установки ps cs3/4 все картинки по умолчанию открывает именно он

У меня cs4 стоит. Так ни чего он под себя не забирает ;) Даже не припомню что б какая ни будь вообще ассациация с файлами предлагалась. Единственный формат, который он под себя забрал, psd. и фсе.

Я люблю думать что умею рисовать
 
PeterДата: Четверг, 04 Февраль 2010, 23:01 | Сообщение # 20
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (mishem)
У меня cs4 стоит. Так ни чего он под себя не забирает
он под себя забрал, psd. и фсе

Именно так и должно быть по логике вещей.
Возможно тут дело в разных версиях, точнее инсталляторах - бывают оригинальные (от разработчиков), а бывают - переделанные дистрибутивы и инсталляторы разными нашими деятелями, и вот от этих "сборок" можно ожидать любых сюрпризов!
Последнее - самое расхожее на наших "просторах".
И это не только к фотошопу относится.

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
ВадимДата: Пятница, 05 Февраль 2010, 14:14 | Сообщение # 21
Ветеран форума
Группа: Проверенные
Сообщений: 672
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
зачем фотошопу творить подобные нелюбезности?
Да я не думаю, что фотошоп в чем-то виноват или разного рода сборки. Просто я, при его установке, скорее всего, в диалоге выбора ассоциированных расширений выбрал "все". Думаю именно так и было. Но дело не в этом.

Делаю, так сказать, "инструмент тестера" - чтобы человек мог быстро и без затей сделать скриншот и отправить его мне. И в зависимости от целей нужно дать тестеру возможность открыть изображение для просмотра (убедиться, что сделано то, что надо) или для редактирования (если умеет и хочет) - например, чтобы в созданном скриншоте можно было сделать пометки или убрать лишнее. Т.е. задача сугубо практическая. Да и в других случаях, предполагаю, что возможность открытия файла в "просмотрщике" или "редакторе" (условные термины, конечно) может весьма пригодится (в работе с рисунками, аудио и видео всех форматов).


С уважением, Вадим
 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Как определить программу используемую по умолчанию? ((скриптом, выполняя его на компьютере пользователя))
Страница 1 из 11
Поиск: