Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268

Как получить Class окна в коде по типу класса в Spy++?

23.03.2015, 16:54. Показов 2376. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В Spy++, Window Info и еще нескольких подобных программах можно кроме тайтла и хендла посмотреть некий Class окна, в отличии от тайтла класс всегда уникальный. Как можно получить это свойство окна из кода? В классе Process такого свойства я не нашел.
Заранее спасибо за ответ.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2015, 16:54
Ответы с готовыми решениями:

Как получить имя класса окна?
Всем привет! Написал вот такой код: #include "stdafx.h" #include <windows.h> #pragma comment(lib, "User32.lib") int...

Как из класса получить доступ к элементу дочернего окна главной формы?
Есть структура MDI - Главная форма-дочерняя. И есть класс. Из класса мне нужно получить данные о состоянии некоего элемента на дочерней...

Как сделать явное приведения переменной типа класса-наследника к типу базового класса?
Читал, что для этого нужно явное приведение к типу, но на практике выдаёт ошибку. Вот код: using System; using System.Linq; namespace...

2
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
23.03.2015, 17:20
Лучший ответ Сообщение было отмечено ATop как решение

Решение

C#
1
2
3
4
5
6
7
8
9
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
public static string GetWindowClassName(IntPtr hWnd)
{
   StringBuilder buffer = new StringBuilder(128);
   GetClassName(hWnd, buffer, buffer.Capacity);
   return buffer.ToString();
}
2
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268
24.03.2015, 02:27  [ТС]
Работает, но выдает не корректный результат. Результат меняется при каждом запросе.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
private static Process[] AllProcess = Process.GetProcesses();
...
private void ReScanProcess()
        {
            foreach (Process i in AllProcess)
            {
                if (i.MainWindowHandle != null)
                {
                    if (i.MainWindowTitle != "")
                    {
                        if (i.MainWindowTitle.Contains("НикомуНеИзвестнаяИгра"))
                        {
                            AllWindow.Add(i);
                            MyProcess myProcess = new MyProcess(GetWindowClassName(i.Handle));
                            AllWindowClass.Add(myProcess);
                        }
                    }
                }
            }
        }
...
Через Findwindow не пробывал потому что у меня куча окон с одинаковым хендлом. Вероятно из-за этого и результат рандомный.
(Столько условий не помню почему, этот кусок писал полтора года назад видимо были проблемы).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2015, 02:27
Помогаю со студенческими работами здесь

Член класса управляемый не может относиться к типу класса неуправляемый
Подскажите пожалуйста, что за ошибка "Член класса управляемый не может относиться к типу класса неуправляемый"? #include...

Получить значение из child class в parent class
добрый. Я нуб в php, в классах не особо разбираюсь. Вообщем задача такая: Есть класс, есть 2-3-10 слассов которые его расширяют. ...

Как получить координаты окна в относительно его родительского окна?
А то походу GetWindowRect(Window, &WindowRectangle); относительно экрана получает. А надо относительно клиентской области родительского...

Как получить размеры клиентской области окна-родителя в функции дочернего окна?
задание такое: имеется дочернее окно,которое "убегает" от курсора мыши в пределах родительского окна. я создала главное окно,и дочернее,...

СКД. Как получить последние цены по каждому типу цен?
Всем привет. Подскажите пожалуйста, как реализовать сабж? т.е. в первой колонке номенклатура, далее идут все типы цен в программе. на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru