![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Правильное открытие в браузере [D7, XP]
DJ_UZer © (2008-06-13 18:27:00)Всем привет..
Такая проблема:
описываю по нажатии на кнопку событие открытия файла в определенном браузере:
WinExec(C:\Program Files\Opera\Opera.exe C:\Documents and Settings\User\Рабочий стол\1.html, 1);
Если за место opera.exe будет IE, то все будет открываться нормально, а вот когда opera, то параметр который я ему передаю, он распознает как несколько через пробел, то есть если я нажму на кнопку с данным кодом (который описан выше), то он откроет четыре вкладки:
1. C:\Documents
2. and
3. Settings\User\Рабочий
4. стол\1.html
А мне нужно само открытие файла, подскажите как можно правильно открыть файл в браузере?
Anatoly Podgoretsky (2008-06-15 11:13:00) [1]> Германн (15.06.2008 2:47:12) [12]
Или в крайнем случае идет в ДОС и изучает, как работать с файлами, содержащими специальные символы.
Германн (2008-06-15 02:47:00) [2]
> DJ_UZer © (15.06.08 02:35) [11]
Давай сделаем так. Ты осознаешь, что есть функция CreateProcess.
Прочитаешь про эту функцию. Потом поговорим.
DJ_UZer (2008-06-15 02:35:00) [3]
> WinExec('C:\Program Files\Opera\Opera.exe "'+Edit1.Text+'"',
> 1);
Все ровно delphi ругается
palva (2008-06-13 23:42:00) [4]
> Опера получив пробелы кодирует их перед отображением в адресной строке
Автор написал, что Опера не понимает пробелы. Впрочем, я не знаком с Оперой...
McSimm (2008-06-13 23:23:00) [5]
> PChar("edit1.text")
это указатель на строковую константу 'edit1.text', а вовсе не на содержимое Edit
WinExec('C:\Program Files\Opera\Opera.exe "'+Edit1.Text+'"', 1);
McSimm (2008-06-13 23:20:00) [6]Это не он, это Опера получив пробелы кодирует их перед отображением в адресной строке
palva (2008-06-13 23:15:00) [7]Если вы будете пробелы кодировать как %20, то ставить внутренние кавычки вам будет уже не нужно. Кодировать надо не только пробелы но и другие служебные символы и русские буквы. Закодированный URL должен срабатывать не только в Опере, но и в других браузерах.
В классе IdURI есть классовая функция URLEncode Попробуйте ее для кодирования.
DJ_UZer (2008-06-13 22:29:00) [8]
> WinExec('C:\Program Files\Opera\Opera.exe "C:\Documents
> and Settings\User\Рабочий стол\1.html"', 1);
Получается, а если, но если я хочу чтобы путь к файлу считывался из едита, то делаю так:
WinExec('C:\Program Files\Opera\Opera.exe '+PChar("edit1.text"), 1);
и опять же возникает проблема в опере, он не понимает русских символ, то есть выводит что-то типа того
file://localhost/C:/Documents%20and%20Settings/User/%2001%3EG89%20AB%3E;/temp.html
Где должны быть русские символы, каля баля.. Что мне теперь делать..подскажите пожалуйста!
DJ_UZer (2008-06-13 21:57:00) [9]
> McSimm
Просто мне нужно открытие для определенной программы
McSimm (2008-06-13 20:12:00) [10]
> как можно правильно открыть файл в браузере?
Документы лучше открывать shellexecute, предоставив системе/пользователю право выбора программы для открытия.
palva (2008-06-13 20:09:00) [11]Попробуйте поставить еще одни кавычки внутри:
WinExec('C:\Program Files\Opera\Opera.exe "C:\Documents and Settings\User\Рабочий стол\1.html"', 1);
DJ_UZer (2008-06-13 19:05:00) [12]Извеняюсь, немного непривильно, вот так:
WinExec('C:\Program Files\Opera\Opera.exe C:\Documents and Settings\User\Рабочий стол\1.html', 1);
palva (2008-06-13 18:33:00) [13]Прикалываетесь или издеваетесь?
Ваш код не будет даже компилироваться, не то что открывать что-нибудь.