Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Злобный Зайц
11 / 11 / 1
Регистрация: 21.10.2010
Сообщений: 422
1

Требуется убить все дочерние окна стороннего приложения

10.06.2016, 18:07. Просмотров 165. Ответов 0
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace KillChildWindows
{
    public partial class Form1 : Form
    {
        private int WM_IME_NOTIFY = 0x0282;
        private int WM_DESTROY = 0x0002;
        private int WM_NCDESTROY = 0x0082;
        private int WM_CLOSE = 0x0010;
        private int IMN_CLOSESTATUSWINDOW = 0x0001;
        private int WM_KILLFOCUS = 0x0008;
        private int WM_COMMAND = 0x0011;
 
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
 
        public delegate bool EnumWindowProc(IntPtr hWnd, IntPtr parameter);
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowProc lpEnumFunc, IntPtr lParam);
 
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
        bool EnumChildProc(IntPtr hwnd, IntPtr lParam)
        {
            const int len = 200;
            StringBuilder str = new StringBuilder(len);
            GetClassName(hwnd, str, len);
            listBox1.Items.Add('*' + hwnd.ToString("X8") + "  " + str);
            //SendMessage(hwnd, WM_DESTROY, 0, 0);
            return true;
        }
        IntPtr hWnd = IntPtr.Zero;
        string windowName = "impacthost";
 
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            Process[] processes = Process.GetProcessesByName(windowName);
            foreach (Process p in processes)
                EnumChildWindows(p.Handle, new EnumWindowProc(EnumChildProc), IntPtr.Zero);
        }
        public Form1()
        {
            InitializeComponent();
        }
    }
}
Ничего не работает. И в текстбокс ничего не прилетает.

Добавлено через 18 минут
Понял, где собака порылася. Надо было работать не с хэндлом процесса, а с хэндлом его главного окна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 18:07
Ответы с готовыми решениями:

Развёртывание окна стороннего приложения
Мне необходим метод, который будет разворачивать окно скайпа. ИЛи скажите...

Определение размера окна стороннего приложения
Здравствуйте, есть вот такой вопрос... Как можно программно определить размер...

Считать текст из окна стороннего приложения
Здравствуйте. Скажите пожалуйста как считать текст из таких окон как...

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

Получить координаты окна стороннего приложения
Здравствуйте дорогие форумчане, встал вопрос как получить координаты СТОРОННЕЙ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2016, 18:07

Изменить размер окна стороннего приложения
Как изменить размер окна стороннего приложения. На данный момент есть доступ к...

Получить дескриптор окна стороннего приложения и контекстного меню
Здравствуйте. Подскажите пожалуйста. Как можно словить дескриптор...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru