|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Программное открытие ссылки |
|
.NET - Программное открытие ссылки
|
Пользователь Сообщения: 78 |
Профиль | Отправить PM | Цитировать На WinForm имеется DataGridView, в ячейках которого содержатся ссылки на HTML страницы в Инете. При CellFormatting отображается только текст ссылки, при клике (CellContentClick) запускается процесс Process.Start(URI ссылки).
Ворос: как открывать такую ссылку в новом окне (если Браузер закрыт) и в новой вкладке (если есть окно Браузера), при этом чтобы фокус оставался на моем приложении? |
|
Отправлено: 19:33, 20-09-2009 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата avmir:
Скорее всего, вручную задать способ открытия не получится, т.к. функцией Process.Start вы передаете параметр URL, а дальше его уже обрабатывает операционка, и процесс обработки уже не зависит от Вашей программы. |
|
------- Отправлено: 01:19, 21-09-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Если свёрнутое окошко запустить - покатит? ShowState = WS_MINIMIZED
|
Отправлено: 08:43, 21-09-2009 | #3 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Все дело в том, что:
1. при каждом нажатии на такую ссылку открывается новое окно IE и фокус переходит на него; 2. пробовал передавать методу Process.Start параметр ProcessStartInfo: ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); startInfo.WindowStyle = ProcessWindowStyle.Minimized; startInfo.Arguments = link.NavigateUrl; startInfo.CreateNoWindow = true; Process.Start(startInfo); Мне нужно, нажать несколько ссылок, потом перейти в окно Эксплорера... |
Отправлено: 18:05, 21-09-2009 | #4 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать вот так у меня сработало (XP, Explorer 6.0):
void __fastcall TForm1::Button1Click(TObject *Sender) { STARTUPINFO start_info = {sizeof(STARTUPINFO), 0, 0, 0, // screen info 100, 100, // position 320, 200, // size, 80, 25, 0, // STARTF_USEPOSITION|STARTF_USESHOWWINDOW|STARTF_USESIZE, SW_MINIMIZE}; PROCESS_INFORMATION process_info = {}; if (!CreateProcess(0, "c:\\program files\\internet explorer\\iexplore.exe http://forum.oszone.net/forum-21.html", 0, 0, // default security false, // no inheritance NORMAL_PRIORITY_CLASS, 0, // default environment, 0, &start_info, &process_info)) { ShowMessage("failed"); } } сделай то же самое для .net |
|
Последний раз редактировалось pva, 22-09-2009 в 13:57. Отправлено: 13:40, 22-09-2009 | #5 |
runs with scissors Сообщения: 642
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 17:15, 22-09-2009 | #6 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Спасибо pva, но к сожалению я не профессиональный программист - любитель, и с С++ знаком слабо, так что у меня не получится сделать тоже самое в .NET
|
Отправлено: 00:51, 23-09-2009 | #7 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата avmir:
#define STARTF_USESHOWWINDOW 0x00000001 #define STARTF_USESIZE 0x00000002 #define STARTF_USEPOSITION 0x00000004 #define STARTF_USECOUNTCHARS 0x00000008 #define STARTF_USEFILLATTRIBUTE 0x00000010 #define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms #define STARTF_FORCEONFEEDBACK 0x00000040 #define STARTF_FORCEOFFFEEDBACK 0x00000080 #define STARTF_USESTDHANDLES 0x00000100 или если сможешь использовать ShellExecute, предложенный arrest, получится то же самое, но без бубна |
|
Отправлено: 06:50, 23-09-2009 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Графика - Программное обеспечение от Adobe | Student00 | Программное обеспечение Windows | 3 | 20-04-2009 06:42 | |
Программное получение IP из DNS | rarelang | Программирование и базы данных | 2 | 05-07-2004 10:48 | |
Программное обеспечение принтера НР 5550. | Belopolskiy | Microsoft Windows 95/98/Me (архив) | 1 | 14-06-2003 23:48 | |
Программное отключение HDD | dascon | Программирование и базы данных | 1 | 19-12-2002 13:38 |
|