Как поднять окно "Открыть с помощью"

Alex Alexeev
Дата: 07.02.2003 15:17:55
Как программно вызвать окно "Открыть с помощью" (ну как бы из контестного меню файла)
Jozo
Дата: 07.02.2003 15:31:44
см
http://mdelphi.far.ru/docs/view/commands.htm
Dim Grishin
Дата: 07.02.2003 15:47:29
под Win 2000 большенство функций не работает...
а где можно взять описание для win 2000?
Alex Alexeev
Дата: 08.02.2003 08:33:18
Jozo
БОЛЬШОЕ СПАСИБО!
Alex Alexeev
Дата: 11.02.2003 09:30:09
Спасибо Jozo за ссылку!

1. Определил с помощью каких приложений открывался файл с заданным расширением (хранится в
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xml\OpenWithList
для файлов с расширением .xml, например)
И нашел что открывался такой файл приложением EDITPLUS.EXE

2. далее сомтрю в
HKEY_CLASSES_ROOT\Applications\EDITPLUS.EXE
и вижу там
HKEY_CLASSES_ROOT\Applications\EDITPLUS.EXE\shell\open\command="c:\editplus\editplus.exe %1"

А теперь, собственно, вопрос:
как с помощью этой информации открыть документ С:\Example.xml с помощью приложения EDITPLUS.EXE?

Надеюсь на помощь ...
Белов Владимир
Дата: 11.02.2003 09:32:37
Прочитать значение переменнной из реестра, и запустить процесс через CreateProcess()
Jozo
Дата: 11.02.2003 09:37:04
если не ошибаюсь можно и
if winexec(Pchar('EDITPLUS.EXE С:\Example.xml'), sw_Show);
тока лучше указывать с порлным путем до него
Alex Alexeev
Дата: 11.02.2003 10:10:39
WINEXEC, ShellExecute, CreateProccess - это все конечно хорошо
но в реестре-то записано "c:\editplus\editplus.exe %1"
т.е. ShelLExecute(Handle, 'open', 'c:\editplus\editplus.exe %', 'c:\Example.xml', '', SW_SHOWNORMAL) - не прокатит (проверено)
равно как и
winexec(Pchar('EDITPLUS.EXE С:\Example.xml'), sw_Show), так как путь к EDITPLUS.EXE системе неизвестен
Jozo
Дата: 11.02.2003 10:18:07
ну дык и напиши
winexec(Pchar('трам-пам-пам\EDITPLUS.EXE С:\Example.xml')
Alex Alexeev
Дата: 11.02.2003 11:58:35
Ну то есть из вот этой фигни "c:\editplus\editplus.exe %1" вырезать :(
Это первое что мне и пришло в голову, но вот не хотелось...