Хэндл окна формы19.09.2012, 19:56. Показов 5139. Ответов 21
Метки нет (Все метки)
0
|
|
| 19.09.2012, 19:56 | |
|
Ответы с готовыми решениями:
21
Перевести хэндл окна в строковую переменную Узнать хэндл окна и отправить нажатие клавиш |
|
|
|
| 20.09.2012, 00:31 | |
|
Van111, через FindWindow
HWND hwnd- получение...
1
|
|
| 20.09.2012, 15:05 [ТС] | |||||||
журнал компиляции
------ Построение начато: проект: mail_spam_admin, Конфигурация: Debug Win32 ------
1> mail_spam_admin.cpp 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(484): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(105): см. объявление "strcpy" 1>mail_spam_admin.obj : error LNK2028: ссылка на неразрешенную лексему (0A00009D) "extern "C" struct HWND__ * __stdcall FindWindowA(char const *,char const *)" (?FindWindowA@@$$J18YGPAUHWND__@@PBD0@Z) в функции "private: void __clrcall mail_spam_admin::Form1::launch_listen_Cl ick(class System::Object ^,class System::EventArgs ^)" (?launch_listen_Click@Form1@mail_spam_ad min@@$$FA$AAMXP$AAVObject@System@@P$AAVE ventArgs@4@@Z) 1>mail_spam_admin.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" struct HWND__ * __stdcall FindWindowA(char const *,char const *)" (?FindWindowA@@$$J18YGPAUHWND__@@PBD0@Z) в функции "private: void __clrcall mail_spam_admin::Form1::launch_listen_Cl ick(class System::Object ^,class System::EventArgs ^)" (?launch_listen_Click@Form1@mail_spam_ad min@@$$FA$AAMXP$AAVObject@System@@P$AAVE ventArgs@4@@Z) 1>C:\Projects\mail_spam_admin\Debug\mail _spam_admin.exe : fatal error LNK1120: 2 неразрешенных внешних элементов ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Добавлено через 25 секунд с win приложением или с консолью это проходит
0
|
|||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 20.09.2012, 15:44 | |
|
Тебя забанили в MSDN ??? Используй свойство формы Handle.
0
|
|
| 20.09.2012, 20:14 [ТС] | ||||||||
журнал
1>------ Построение начато: проект: mail_spam_admin, Конфигурация: Debug Win32 ------
1> mail_spam_admin.cpp 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(335): error C2275: mail_spam_admin::Form1: недопустимое использование этого типа в качестве выражения 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(335): error C2227: выражение слева от "->Handle" должно указывать на тип класса, структуры или объединения либо на универсальный тип ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
|
||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
||
| 20.09.2012, 20:20 | ||
|
Добавлено через 3 минуты например вот нашел за 5 минут в MSDN ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ru/fxref_system.windows.forms/html/86f8ba57-db54-0a05-ffcb-96ce6e1cf474.htm Добавлено через 1 минуту та же статья в интернете http://msdn.microsoft.com/ru-r... andle.aspx
0
|
||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
||
| 20.09.2012, 20:30 | ||
|
чтобы показать cli в MSDN присутсвует ниже Он лайн еще раз http://msdn.microsoft.com/ru-r... andle.aspx
0
|
||
| 20.09.2012, 20:35 [ТС] | |||||||||||
|
вроде всё ок , ну почему это работает,
min\Form1.h(335): error C2275: mail_spam_admin::Form1: недопустимое использование этого типа в качестве выражения 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(335): error C2228: выражение слева от ".Handle" должно представлять класс, структуру или объединение
0
|
|||||||||||
|
|
|
| 20.09.2012, 20:36 | |
|
Van111, любое окно имеет HWND и спокойно определяется либо через тайт окна (формы, диалогового окна, не важно), либо через класснэйм. В MFC скажем в dialog based конфигурации хендл главного окна находится совсем просто CDialog::m_hWnd либо вобще просто m_hWnd (конечно если эту переменную не переобределили в коде то можно и без CDialog:: ). Уверен в КЛИ есть аналог этого, но в кли я не пишу и помочь для него не в состоянии
1
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
|||||
| 20.09.2012, 20:47 | |||||
|
http://msdn.microsoft.com/ru-r... ex0x9.aspx как видишь ни одного метода ты должен от формы что то взять Что не знаю, ибо в КЛИ не силен побаловался месяц и понял это для красявостей, для серьезной работы с системой непригодна (к тому же фрейм ворк за собой тянет) кстати по слухам Микрософт прекратил поддержку CLI Добавлено через 4 минуты
0
|
|||||
|
|
||
| 20.09.2012, 21:02 | ||
|
За m_hWnd чтобы Ван поискал аналогичную переменную в проекте кли, вот и всё Добавлено через 40 секунд Van111, какой тайтл у твоей формы?
0
|
||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 20.09.2012, 21:11 | |
|
Van111, без конкретного кода можно только гадать, где у тебя ошибка. Приведи пример кода.
0
|
|
| 20.09.2012, 21:20 [ТС] | ||||||||||||
1> mail_spam_admin.cpp 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(337): error C2275: mail_spam_admin::Form1: недопустимое использование этого типа в качестве выражения 1>c:\projects\mail_spam_admin\mail_spam_ admin\Form1.h(337): error C2227: выражение слева от "->Handle" должно указывать на тип класса, структуры или объединения либо на универсальный тип ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== всё работает , всем спасибо вот решение
0
|
||||||||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 21.09.2012, 09:51 | |
|
Вот только в CLI лучше, если твой HWNDWindowMain будет иметь тип не HWND, а UINT_PTR.
0
|
|
|
|
|||||||
| 21.09.2012, 10:57 | |||||||
|
CheshireCat, а явное преобразование к
1
|
|||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 21.09.2012, 11:19 | ||
|
Кстати, я ошибся. HWNDWindowMain должен иметь тип IntPtr.
Насчет "не более чем номер окна в системе" - это неверно. Верно так: HWND - это уникальный идентификатор окна в системе. Смысл же этого идентификатора - будет ли это номер, либо индекс в какой-нибудь внутренней таблице ядра, или еще что-нибудь, - нам неведом и никто никаких гарантий не дает, этим идентификатором заведует ядро.
1
|
||
| 21.09.2012, 11:27 | |
|
Не по теме: CheshireCat, HWND это просто номер и никаких граблей с тем хранить его как int либо как HWND не существует (за 10 лет своей практики по крайней мере я не встретил)
0
|
|
| 21.09.2012, 11:41 | |
|
Не по теме: Значит, все еще впереди :-) Полагаю, упомянутые 10 лет практики были на 32-разрядных системах? Тогда да, все хорошо - разрядность совпадает.
0
|
|
|
|
|
| 21.09.2012, 12:00 | |
|
CheshireCat, ещё раз HWND как и HANDLE тот же (void *) т.е содержит адрес на ячейку с номером окна либо номером открытого процесса и т.д. Меня немного шкалит твоя дурацкая уверенность, что мол ты знаешь всё, а мои слова так сошка. Я не хочу спорить и холиворить, повторюсь просто ещё раз HWND - это номер окна не более, и разрядность совершенно никак не сказывается на этом номере
0
|
|
| 21.09.2012, 12:00 | |
|
Помогаю со студенческими работами здесь
20
Как получить хэндл меню окна Excel'a? Как зная ProcessID получить хэндл окна? Как правильно получить хэндл окна по его заголовку? Как узнать имя окна (обьекта), зная его хэндл? Как получить хэндл окна среди окон с одинаковыми классами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|