Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#1: 2017-11-22 19:08:41 ЛС | профиль | цитата
Нужно по клику на кнопку открыть ссылку в браузере который находится по заданному адресу, например "C:\Google\Chrome\Application\chrome.exe" нужно открывать ссылки не в браузере по умолчанию, а именно в указанном. Если браузер уже запущен, то просто открыть ссылку в новой вкладке.
Так не работает
Add(MainForm,14268685,112,119)
{
}
Add(Button,6611575,203,112)
{
@Hint=#33:Открывает в браузере по умолчанию|
Top=5
Data=String()
link(onClick,2114691:doText,[])
AddHint(-13,-51,148,26,@Hint)
}
Add(WinExec,14753355,308,98)
{
Point(doConsoleExec)
}
Add(VisualStrings,2114691,252,112)
{
Lines=#60:rundll32 url.dll,FileProtocolHandler http://forum.hiasm.com/|
Point(doText)
Point(onText)
link(onText,14753355:doConsoleExec,[])
}
Add(Button,9372492,203,245)
{
@Hint=#24:Запускает браузер заново|
Left=70
Top=5
Data=String()
link(onClick,9581394:doText,[])
AddHint(-16,-39,151,13,@Hint)
}
Add(WinExec,3877612,308,231)
{
Point(doConsoleExec)
link(FileName,7583909:Value,[])
}
Add(VisualStrings,9581394,252,245)
{
Lines=#60:rundll32 url.dll,FileProtocolHandler http://forum.hiasm.com/|
Point(doText)
Point(onText)
link(onText,3877612:doConsoleExec,[])
}
Add(Memory,7583909,308,161)
{
Default=String(C:\Google\Chrome\Application\chrome.exe)
}
Add(Button,8023016,210,378)
{
@Hint=#21:Тоже запускает заново|
Left=140
Top=5
Data=String()
link(onClick,16431364:doText,[])
AddHint(-13,-51,136,13,@Hint)
}
Add(WinExec,9172844,322,378)
{
Point(doConsoleExec)
}
Add(VisualStrings,16431364,259,378)
{
Lines=#65:C:\Google\Chrome\Application\chrome.exe "http://forum.hiasm.com/"|
Point(doText)
Point(onText)
link(onText,9172844:doExec,[])
}


Редактировалось 1 раз(а), последний 2017-11-22 19:10:18
карма: 4

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2017-11-22 20:36:13 ЛС | профиль | цитата
В указанном и уже запущенном есть разница!
Смотришь какие программы запущены и смотришь какая из них браузер, их не так уж много.
Примеров полно на тему "запущенных" программ.
Если запущенно несколько разных браузеров, тогда в указанном.

Только это ерунда. Грош цена такой программе.
Надо делать программу так, чтобы со всеми браузерами работала одинаково.
И если у кого-то стоит один любимый браузер, то скорее надо выкинуть программу, а не устанавливать ещё один!
Правильно будет - по умолчанию!

Редактировалось 3 раз(а), последний 2017-11-22 20:50:43
карма: 6

0
Ответов: 537
Рейтинг: 14
#3: 2017-11-22 20:52:44 ЛС | профиль | цитата
Может кто знает, где в реестре ссылка на браузер по умолчанию? Можно при открытии своей программы подправить реестр, а при закрытии вернуть все на место.
карма: 4

0
Ответов: 2059
Рейтинг: 131
#4: 2017-11-22 20:56:43 ЛС | профиль | цитата
Поиск по реестру сделать трудно?
Статей на эту тему полно! (по записям браузеров в реестре по умолчанию.)
Почему такие вопросы надо здесь задавать?
Можно при открытии своей программы подправить реестр, а при закрытии вернуть все на место.

А ещё левое ухо правой рукой чесать удобно.

Редактировалось 2 раз(а), последний 2017-11-22 21:00:05
карма: 6

0
Ответов: 537
Рейтинг: 14
#5: 2017-11-22 21:08:01 ЛС | профиль | цитата
Редактировать реестр это последнее дело. По другому, что не как
карма: 4

0
Ответов: 2059
Рейтинг: 131
#6: 2017-11-22 21:16:40 ЛС | профиль | цитата
Конечно можно!
Но что тебе нужно не понятно!?
1 Запустить Internet Explorer, Chrome, или ... и не важно, какой по умолчанию.
(Name.exe и http:адрес в командной строке).
2. При запущенном Chrome добавить новую вкладку, или запустить Mozilla, или ...

А что делать, если нужного браузера не установлено?

Редактировалось 4 раз(а), последний 2017-11-22 21:22:32
карма: 6

0
Ответов: 537
Рейтинг: 14
#7: 2017-11-22 21:28:45 ЛС | профиль | цитата
Вы примеры смотрели вообще. Какой вопрос? Неужели не понятно написано?
карма: 4

0
Ответов: 2059
Рейтинг: 131
#8: 2017-11-22 22:15:46 ЛС | профиль | цитата
Из примера не понятно, какую роль играет слово "по умолчанию"?
Может так надо?
Add(MainForm,14268685,203,112)
{
}
Add(Button,6611575,294,105)
{
@Hint=#33:Открывает в браузере по умолчанию|
Top=5
Data=String()
link(onClick,2114691:doText,[])
AddHint(-13,-51,148,26,@Hint)
}
Add(WinExec,14753355,399,91)
{
Param="http://forum.hiasm.com/"
Point(doConsoleExec)
}
Add(VisualStrings,2114691,343,105)
{
Lines=#23:http://forum.hiasm.com/|
Point(doText)
Point(onText)
link(onText,14753355:doShellExec,[(387,111)(387,104)])
}
Add(Button,9372492,294,238)
{
@Hint=#24:Запускает браузер заново|
Left=70
Top=5
Data=String()
link(onClick,9581394:doText,[])
AddHint(-16,-39,151,13,@Hint)
}
Add(WinExec,3877612,399,224)
{
Point(doConsoleExec)
}
Add(VisualStrings,9581394,343,238)
{
Lines=#59:C:\Program Files (x86)\Google\Chrome\Application\chrome.exe|
Point(doText)
Point(onText)
link(onText,3877612:doExec,[(387,244)(387,230)])
}
Add(Memory,7583909,399,154)
{
Default=String(http://forum.hiasm.com/)
}

Или не так?

Редактировалось 3 раз(а), последний 2017-11-22 22:20:44
карма: 6

0
Ответов: 1925
Рейтинг: 172
#9: 2017-11-23 00:26:28 ЛС | профиль | цитата
flint2 писал(а):
2. При запущенном Chrome добавить новую вкладку

Вот в этом-то и проблема! Я глянул в интернете - толком ничего не нашёл. Везде написано, как просто открыть адрес в браузере по умолчанию (ShellExecute(Handle, 'open', 'http://sources.ru', nil, nil, SW_SHOWNORMAL);) или любом другом (ShellExecute(handle, 'open', 'iexplore.exe', 'http://sources.ru', nil, SW_SHOWNORMAL);). Но вот если браз "не по умолчанию" открыт уже - как открыть в нём новую вкладку и передать в неё адрес?

Sersey, я думаю, копать надо в сторону запуска с параметром, к-ый позволит открыть адрес именно в новой вкладке. Хотя я и этого не смог найти.

Редактировалось 1 раз(а), последний 2017-11-23 00:26:43
карма: 9
0
Ответов: 2059
Рейтинг: 131
#10: 2017-11-23 02:08:13 ЛС | профиль | цитата
3042, как раз мой пример выше так и работает.
Всё зависит, каковы настойки браузера и какой браузер по умолчанию.
Например у меня всё правильно работает, как я понял вопрос
На другой машине будет совсем другой эффект. Тут вопрос тонкий, а не как кажется с первого взгляда. У кого то путь до хрома другой, у кого то - открывать в отдельном окне, а не открывать новую вкладку.
По этому надо понимать для кого делается программа.
Если для себя, то можно всё легко настроить и прописать, если для широкого круга пользователей, я именно так и думаю, то простого решения нет. И стоит ли овчинка выделки? Вот я и пристал с расспросами.
P.S.
Но вот если браз "не по умолчанию" открыт уже - как открыть в нём новую вкладку и передать в неё адрес?

А у меня как-раз обратный вопрос возник, как открыть новое окно, если уже одно открыто, добавляются только вкладки.

Редактировалось 6 раз(а), последний 2017-11-23 02:32:53
карма: 6

0
Ответов: 537
Рейтинг: 14
#11: 2017-11-23 08:04:21 ЛС | профиль | цитата
У меня два браузера хром, один обычный, настроен как браузер по умолчанию в windows, другой портативный. Так вот нужно в своей программе иметь возможность указать в каком браузере открывать ссылки, в первом или втором, если портативный браузер сделать по умолчанию, то ссылки все равно открываются в обычном. А примеры не работают как нужно. Если указать путь к браузеру, то он пытается запустится еще раз, в место того, чтобы открыть новую вкладку и вылазит ошибка, что браузер уже запущен

--- Добавлено в 2017-11-23 08:26:31

А нет, компонент не тот OpenURL, совсем не подходит.

Редактировалось 1 раз(а), последний 2017-11-23 08:26:31
карма: 4

0
Ответов: 537
Рейтинг: 14
#12: 2017-11-25 10:18:47 ЛС | профиль | цитата
3042 писал(а):
Простая задача на первый взгляд. Изменял реестр, все равно не получилось. Нашел в интернете код по теме один, на весь Интернет. Но там для IE


Простая задача на первый взгляд. Изменял реестр, все равно не получилось. Нашел в интернете код по теме один, на весь Интернет. Но там для IE
https://ru .stackoverflow.com/questions/114520/%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83-%D0%B2-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-ie
3042 Помогите сделать для хрома

Редактировалось 1 раз(а), последний 2017-11-25 10:19:47
карма: 4

0
Ответов: 2059
Рейтинг: 131
#13: 2017-11-25 12:11:19 ЛС | профиль | цитата
Сам-то пробовал по такой ссылке перейти?
Подставь своё.

Add(MainForm,2953706,21,105)
{
}
Add(Button,6857501,140,308)
{
Left=15
Top=50
Width=85
Caption="Browser"
link(onClick,9268460:doWork1,[(205,314)(205,342)])
}
Add(Edit,4732400,175,238)
{
Left=120
Top=85
Width=225
Text="https://www.youtube.com/"
}
Add(InlineCode,9268460,238,336)
{
WorkPoints=#7:doWork1|7:doWork2|7:doWork3|
EventPoints=#6:onTrue|0:|
DataPoints=#6:Param1|6:Param2|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,ShellAPI,Windows,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|8: |10: public|21: Param1: THI_Event;|22: Param2: THI_Event; |19: onTrue: THI_Event;|3: |50: Procedure doWork1(var _Data:TData; Index:Word); |49: Procedure doWork2(var _Data:TData; Index:Word);|49: Procedure doWork3(var _Data:TData; Index:Word);|5: end;|0:|2: |15: implementation|0:|3: |31:Procedure THiAsmClass.doWork1; |5:begin|0:|104:ShellExecute(0, 'open', PChar(ToStringEvent(Param2)), PChar(ToStringEvent(Param1)), nil, SW_SHOWNORMAL);|30: _hi_OnEvent(onTrue,'OK') ;|7: end;|31:Procedure THiAsmClass.doWork2; |5:begin|0:|80:ShellExecute(0, 'open', PChar(ToStringEvent(Param1)), nil, nil, SW_SHOWNORMAL); |30: _hi_OnEvent(onTrue,'OK') ;|7: end;|3: |32: Procedure THiAsmClass.doWork3; |5:begin|0:|62:ShellExecute(0, 'open', 'https://', nil, nil, SW_SHOWNORMAL); |30: _hi_OnEvent(onTrue,'OK') ;|9: end; |0:|4:end.|
link(Param1,4732400:Text,[(244,303)(181,303)])
link(Param2,14267906:Text,[(251,302)(301,302)])
}
Add(Edit,14267906,295,238)
{
Left=120
Top=50
Width=225
Text="d:\UTIL\Сеть\Browser.exe"
}
Add(Button,4272316,140,364)
{
Left=15
Top=90
Width=85
Caption="По умолчанию"
link(onClick,9268460:doWork2,[(190,370)(190,349)])
}
Add(Button,5819255,140,413)
{
Left=20
Top=125
Width=75
Caption="New"
link(onClick,9268460:doWork3,[(205,419)(205,356)])
}


Редактировалось 3 раз(а), последний 2017-11-25 13:10:44
карма: 6

0
Ответов: 537
Рейтинг: 14
#14: 2017-11-25 13:21:48 ЛС | профиль | цитата
Нет возможности проверить, мы в Судане, нев тету

Редактировалось 1 раз(а), последний 2017-11-25 13:34:28
карма: 4

0
Ответов: 1925
Рейтинг: 172
#15: 2017-11-25 15:09:06 ЛС | профиль | цитата
Sersey писал(а):
https://ru .stackoverflow.com/questions/114520/%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83-%D0%B2-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-ie

Не открывается, сразу переходит на гугл.

flint2 писал(а):
Подставь своё.

Так тут и проблема, я понял, в том, что в браузере по умолчанию страницы открываются в новых вкладках, а если указать так: ShellExecute(0, 'open', PChar(ToStringEvent(Param2)), PChar(ToStringEvent(Param1)), nil, SW_SHOWNORMAL);, то при каждом нажатии кнопки открывается новое окно, а не вкладка.
карма: 9
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)