Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильное открытие в браузере [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]

Прикалываетесь или издеваетесь?
Ваш код не будет даже компилироваться, не то что открывать что-нибудь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо