Вверх ↑
Ответов: 176
Рейтинг: 12
#1: 2011-01-27 06:08:38 ЛС | профиль | цитата
nesco писал(а):
Откуда взято, что имя сервиса должно быть именно METAED~1 и подавать надо именно команду, а не что-либо еще

Если установлен Windows XP, то команды запуска можно посмотреть так: сервис >> свойства папки >> типы файлов >> ищем в списке mq5 >> нажимаем "дополнительно" >> выбираем в списке команду open и жмём "изменить".

Если установлена виста или семёрка, то надо лезть в реестр. Сама привязка к расширению хранится здесь: HKEY_CLASSES_ROOT.mq5. Команды open со всеми параметрами находится вот в этом ключе: HKEY_CLASSES_ROOTMQL5.Fileshellopen.

nesco писал(а):
К тому же, в результате экспериментов, угробил у себя расширение, теперь не могу прописать его по новой, откликаться не хочет больше на DDE при запуске расширения

Если удалить HKEY_CLASSES_ROOT.mq5 и HKEY_CLASSES_ROOTMQL5.File, то должно получиться восстановить привязку к расширениям при следующем запуске редактора.

nesco писал(а):
А другого способа нет их открывать

Можно ещё открывать файл в связанной с ним программе. Вот так:


Add(WinExec,6516148,189,126)
{
Param=" /dde"
FileName="E:\_TOROP~1METATR~3NORDFX~1.COMMETAED~1.EXE"
}
Add(Button,14454563,133,133)
{
Left=5
Top=5
link(onClick,6516148:doShellExec,[])
}
Но такой способ не подходит, потому, что здесь именно ОС выбирает в чём открыть файл, а не программа.
------------ Дoбавленo в 06.08:
Попробовал открыть файл в ворде. У меня стоит офис 2007. Посмотрел ключи запуска вот тут: HKEY_CLASSES_ROOTWord.Document.12shellOpen

Add(MainForm,14332235,35,126)
{
Position=1
}
Add(Button,4222831,161,126)
{
Left=45
Top=25
link(onClick,3544816:doExec,[])
}
Add(DDEClient,8066386,280,140)
{
ServiceName="WinWord"
TopicName="System"
Point(onError)
Point(doExecute)
Point(onExecute)
link(onOpenLink,3285838:doText,[])
}
Add(Edit,3285838,350,140)
{
Left=125
Top=65
Width=150
Text="Ожидаем коннект"
link(onChange,14934731:doData,[(400,146)(400,215)(205,215)(205,174)])
}
Add(DoData,14934731,217,168)
{
@Hint=#44:Прописать путь к файлу, который надо открыть|
Data=String([REM _DDE_Direct][FileOpen("E:\_ToropchinHiAsmProjectsProject1.mq5")])
link(onEventData,8066386:doExecute,[])
AddHint(44,60,190,26,@Hint)
}
Add(WinExec,3544816,217,126)
{
@Hint=#36:Прописать свой путь к metaeditor.exe|
Param="/dde"
FileName="C:Program FilesMicrosoft Office 2007Office12WINWORD.EXE"
link(onExec,8066386:doOpenLink,[(265,132)(265,146)])
AddHint(51,-46,134,26,@Hint)
}

Ворд успешно открыл файл.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0