Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/35: Рейтинг темы: голосов - 35, средняя оценка - 4.83
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81

Сделать активным окно сторонней программы

19.06.2015, 19:15. Показов 7286. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Прошу помощи в данном вопросе, т.к. поиски по гуглам-яндексам, форумам и статьям выдают что то рядом, но не то.
Имею программу (например test.exe)
Хотел использовать SetActiveWindow или SetForegroundWindow, но запутался в хэндлах и идпроцах...
Есть фрагмент закрытия такой программы:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
        Dim Processes() As Process
        Dim Proc As Process
        Processes = Process.GetProcessesByName("test.exe") 'Закрываем программу
        For Each Proc In Processes
            'Попытка закрыть программу по хорошему
            Proc.CloseMainWindow()
            'Если по хорошому не получилось то закрываем по плохому
            If Not Proc.HasExited Then
                Proc.Kill()
            End If
        Next
Так вот я не пойму: если я программу уже идентифицировал по имени процесса, ПОЧЕМУ я не могу по этому же имени сделать активной её окно???
Или как то можно?
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2015, 19:15
Ответы с готовыми решениями:

Сделать окно сторонней программы дочерним форме своего приложения
Возможно ли такое реализовать vb.net? Есть приложение .exe, запускал по команде, но открывается он не в отдельном окне а в моей форме.

Сделать рестарт сторонней программы
Доброе время суток! Банальное оповещение. Я начинающий человечек в этой сфере. Облазил много форумов и много просмотрел видео , но так...

Запрет на запуск сторонней программы
Здравствуйте!!! Помогите пожалуйста с вопросом: необходимо при запуске программы запретить запуск калькулятора в виндусе. После закрытия...

25
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
22.06.2015, 17:45  [ТС]
Студворк — интернет-сервис помощи студентам
А из свёрнутого состояния блокнота?
А в таком то варианте и меня SetWindowPos работает.
Надо из свёрнутого!
0
Почетный модератор
 Аватар для Памирыч
23251 / 9165 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.06.2015, 17:47
Emser, нет конечно. Это просто активация окна
0
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
22.06.2015, 18:58  [ТС]
Хорошо, возможно я не так выразился или скажем так: не знал терминов что ли...
А как тогда называется "доставание" программы из свёрнутого состояния, или например из трея?
И как это делать? Ну вот, всё сначала...
0
Почетный модератор
 Аватар для Памирыч
23251 / 9165 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.06.2015, 18:59
1
Почетный модератор
 Аватар для Памирыч
23251 / 9165 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.06.2015, 19:13
Лучший ответ Сообщение было отмечено Emser как решение

Решение

Цитата Сообщение от Emser Посмотреть сообщение
из свёрнутого состояния, или например из трея
Я не большой знаток API, но мне кажется, эти понятия совсем разные.
Развернуть окно, думаю, не большая проблема, но вот чтоб из трея... Это, имхо, не так просто

Добавлено через 10 минут
Из свернутого

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
    <DllImport("user32.dll")> _
Private Shared Function ShowWindowAsync(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
    End Function
 
    Private Const SW_SHOWNORMAL As Integer = 1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim P As Process = Process.GetProcessesByName("notepad")(0)
        Dim hWnd As IntPtr = P.MainWindowHandle
        If Not hWnd.Equals(IntPtr.Zero) Then
            ShowWindowAsync(hWnd, SW_SHOWNORMAL)
        End If
    End Sub
2
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
24.06.2015, 04:55  [ТС]
СПАСИБО!
Именно этот вариант помог!
Только с константой SW_RESTORE.
Предложенная "шоунормал" действительно "поднимает" из свёрнутого состояния, а вот из трея через раз как то.
А вот "рестор" отлично достаёт мою(нужную мне) программу и из трея и из свёрнутого.
Всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2015, 04:55

Заставка для сторонней программы
Ситуация такая: есть программа, которая загружается примерно минуты 4, т.е. в диспетчере задач она есть, а визуально еще нет. Я решил...

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

Извлечь из сторонней программы строки
Нужно извлечь строки из гарены - (My Host User List) Нашел что-то подобное для Теам Виева Тяжко самому разобраться Ссыль на форум...

Сделать в DataGridView активным только один столбец
Кликом по ячейке dgv открывается форма с параметром запроса из этой ячейки. a=datagridview1.CurrentCell.value form2.show() sqlcom=New...

Запуск сторонней программы с параметрами и чтение ее вывода
Собственно не знаю как реализовать такую вещь: запуск программы будет через cmd вроде такого test.exe test2.t Так вот как такое...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru