Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Программное открытие ссылки

Ответить
Настройки темы
.NET - Программное открытие ссылки

Пользователь


Сообщения: 78
Благодарности: 0

Профиль | Отправить PM | Цитировать


На WinForm имеется DataGridView, в ячейках которого содержатся ссылки на HTML страницы в Инете. При CellFormatting отображается только текст ссылки, при клике (CellContentClick) запускается процесс Process.Start(URI ссылки).

Ворос: как открывать такую ссылку в новом окне (если Браузер закрыт) и в новой вкладке (если есть окно Браузера), при этом чтобы фокус оставался на моем приложении?

Отправлено: 19:33, 20-09-2009

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата avmir:
как открывать такую ссылку в новом окне (если Браузер закрыт) и в новой вкладке (если есть окно Браузера), при этом чтобы фокус оставался на моем приложении? »
Смотря какой браузер. К примеру, у меня Opera. При открытой фоново опере ссылки открываются в новой вкладке, а фокус остается на моей программе. Если закрыт, то открывает в новом окне.
Скорее всего, вручную задать способ открытия не получится, т.к. функцией Process.Start вы передаете параметр URL, а дальше его уже обрабатывает операционка, и процесс обработки уже не зависит от Вашей программы.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:19, 21-09-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Если свёрнутое окошко запустить - покатит? ShowState = WS_MINIMIZED

Отправлено: 08:43, 21-09-2009 | #3


Пользователь


Сообщения: 78
Благодарности: 0

Профиль | Отправить 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

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить 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


Аватара для Arrest

runs with scissors


Сообщения: 642
Благодарности: 77

Профиль | Отправить PM | Цитировать


Ээээ...
Код: Выделить весь код
ShellExecute(0, "open", lpszAdress, 0, 0, SW_SHOWNA);
если я правильно понял задачу, то это решается в одну строку windows api.

-------
- Why do you call this version of software 'beta'?
- Coz it's beta than nothing.


Отправлено: 17:15, 22-09-2009 | #6


Пользователь


Сообщения: 78
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо pva, но к сожалению я не профессиональный программист - любитель, и с С++ знаком слабо, так что у меня не получится сделать тоже самое в .NET

Отправлено: 00:51, 23-09-2009 | #7

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата avmir:
не получится сделать тоже самое в .NET »
попробуй выставить свойство типа flags в STARTF_USESHOWWINDOW. Смысл такой: если в NET просто делается класс-обёртка, и не контролируется поправка этого свойства при изменении других свойств, то ты подал команду: запустить процесс, минимизировать окно, но не использовать информацию о том, что ты хочешь его минимизировать. У меня нет описания нетовских классов под рукой, поэтому как оно называется точно сказать не могу. Но должно быть что-то вроде flags или mask.
Код: Выделить весь код
#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
то есть тебе его надо установить в 1

или

если сможешь использовать ShellExecute, предложенный arrest, получится то же самое, но без бубна

Отправлено: 06:50, 23-09-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Программное открытие ссылки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Графика - Программное обеспечение от 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




 
Переход