Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.03.2012, 08:20
Аватар для TolAlik
TolAlik TolAlik вне форума
Прохожий
 
Регистрация: 02.10.2009
Сообщения: 41
Репутация: 10
По умолчанию повторное открытие файла через ShellExecute

Здрасте!
Есть проблема при использовании ShellExecute.
Открываю с помощью этой команды html-страницу(напимер: C:\html.html) в браузере (который стоит в ОС по умолчанию). При первом выполнении все замечательно работает: открывается браузер и показывается моя страничка. Не закрывая программы при повторном вызове это команды вылетает ошибка что этот файл занят другим процессом и так до перезапуска самой программы.
Так открываю страницу html:
Код:
ShellExecute( 0, 'open',Pansichar(ExtractFilePath(Application.ExeName) + 'html.html'), nil, nil, SW_NORMAL )
Тоже самое происходит при использовании WinExec и CreateProcess
Кто знает как решить эту проблему? Заранее спасибо!)
Ответить с цитированием
  #2  
Старый 27.03.2012, 09:37
Аватар для DelphiM0ZG
DelphiM0ZG DelphiM0ZG вне форума
Новичок
 
Регистрация: 22.10.2011
Сообщения: 62
Репутация: 666
По умолчанию

Попробуйте так:
Код:
If (ShellExecute(Application.MainForm.Handle, PChar('open'),
    PChar('http://...'),
    Nil, Nil, SW_ShowNormal)<32) Then
      MessageBox(0,
        PChar('Не могу запустить браузер!'),
        PChar('Ошибочка вышла'),
        MB_OK + MB_ICONERROR + MB_APPLMODAL + MB_TOPMOST);

У меня работает. У меня стоит Firefox по умолчанию, при повторном нажатии на пункт меню появляется новая закладка (такая же) в браузере.
__________________
Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!..
Ответить с цитированием
  #3  
Старый 27.03.2012, 10:56
Аватар для TolAlik
TolAlik TolAlik вне форума
Прохожий
 
Регистрация: 02.10.2009
Сообщения: 41
Репутация: 10
По умолчанию

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


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025