Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
1

Как закрыть процесс только одной вкладки в Google Chrome?

21.05.2015, 17:21. Показов 3121. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
В браузере Google Chrome открыто несколько вкладок.
Подскажите, каким образом можно закрыть процесс только одной вкладки?
Пробовал по дескриптору дочернего окна (в Google Chrome окна во вкладках открываются как дочернии).
VB.NET
1
2
3
4
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Const WM_CLOSE = &H10
 
SendMessage (hwnd, WM_CLOSE, 0&, 0&)
Ничего не получается! Закрывается полностью весь процесс браузера.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2015, 17:21
Ответы с готовыми решениями:

Как мягко закрыть браузер Google Chrome?
Здравствуйте! Подскажите пожалуйста, как мягко закрыть браузер Гугл Хром! Пробовал так: ...

Как заполучить индекс активной вкладки Google Chrome в Selenium
Привет народ. Я разрабатываю программу для полу-автоматизации моей работы в Хром. Но для работы с...

Как программно получить URL адрес открытой вкладки Google Chrome?
Доброго времени суток форумчани=)) суть вопроса такая, как программно можно получить URL адрес ...

Вкладки в Google Chrome
Здравствуйте, помогите пожалуйста, периодически при работе браузера Google Chrome открываются...

7
1568 / 1447 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
22.05.2015, 13:43 2
Edgar4,
VB.NET
1
SendKeys.Send("^(w)")
1
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
22.05.2015, 20:16  [ТС] 3
Цитата Сообщение от edward_freedom Посмотреть сообщение
SendKeys.Send("^(w)")
Но здесь посылается сообщения о нажатии клавиш активному приложению!
А у меня активна форма которая над браузером!
Как же передать подобное сообщения о нажатии клавиш не активному приложению.
Я подозреваю, что необходимо каким-то образом использовать SendMessage с дескриптор окна браузера и комбинацией клавиш ("^(w)").
Но как?

Добавлено через 5 часов 4 минуты
edward_freedom, спасибо за подсказку
Вроде написал все правильно! Но не работает код?
Подскажите, где ошибка?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Class Form1
    Declare Auto Function FindWindow Lib "USER32.DLL" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim chrome_Handle As IntPtr = FindWindow("Chrome_WidgetWin_1", "Яндекс - Google Chrome") 
 
        SetForegroundWindow(chrome_Handle)
        'SendKeys.SendWait("^(w)")
        SendKeys.Send("^(W)")
 
    End Sub
 
End Class
0
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
23.05.2015, 00:13  [ТС] 4
Есть вариант закрытия вкладки через Ctrl+W!
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Class Form1
    Declare Auto Function FindWindow Lib "USER32.DLL" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim chrome_Handle As IntPtr = FindWindow("Chrome_WidgetWin_1", "Яндекс - Google Chrome") 
 
        SetForegroundWindow(chrome_Handle)
        SendKeys.SendWait("^(w)")
        'SendKeys.Send("^(W)")
 
    End Sub
 
End Class
Как не крутил, закрыть вкладку через
VB.NET
1
SendKeys.SendWait("^(w)")
ни как не получается.
Если использовать не буквенную клавишу, а функциональную (Ctrl+F5 - перезагрузка текущей страницы без учета кэшированного содержания), то все отлично получается!
VB.NET
1
 SendKeys.SendWait("^{F5}")
Пожалуйста, помогите решить эту проблему!
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
23.05.2015, 00:52 5
Edgar4, а так?
VB.NET
1
SendKeys.Send("^ц")
1
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
23.05.2015, 08:58  [ТС] 6
Памирыч, спасибо!
Все работает!
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
23.05.2015, 11:55 7
Edgar4, так я ж шучу.
Это не дело, когда посыл клавиш зависит от текущей раскладки Вашего приложения.
Я просто указал Вам на это
0
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
26.05.2015, 10:29  [ТС] 8
Цитата Сообщение от Памирыч Посмотреть сообщение
Это не дело, когда посыл клавиш зависит от текущей раскладки Вашего приложения.
Я просто указал Вам на это
Я это сделал через
VB.NET
1
2
'Устанавливаем английскую раскладку
System.Windows.Forms.InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.CultureInfo.GetCultureInfo(1033))
А вообще, я рассматриваю закрытие вкладки в браузере через перехват Ctrl+W, как вариант!
Наверняка есть способ закрытия дочернего окна в стороннем процессе! В Хроме все вкладки идут как дочернии окна.
Памирыч подскажите как закрыть дочернее окно в чужом процессе или в каком направлении копать!
0
26.05.2015, 10:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2015, 10:29
Помогаю со студенческими работами здесь

Не удается закрыть Google Chrome
При закрытии google chrome (работает в полноэкранном режиме (ключик -kiosk)) вылетает сообщение что...

Открываются вкладки в Google Chrome
Когда сижу в Google Chrome,при первый двух кликах все работает нормально,с третьего клика начинают...

Открываются вкладки в google chrome
Добрый день! стали открываться рекламные вкладки в гугл хром. помогите, пожалуйста, удалить

Вкладки с рекламой в Google Chrome
В Google Chrome, при нажатии на ссылку, открытый сайт загружается в новой вкладке, а в текущей -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru