Хэндл окна формы19.09.2012, 19:56. Показов 4915. Ответов 21
Метки нет Все метки)
(
0
|
19.09.2012, 19:56 | |
Ответы с готовыми решениями:
21
Перевести хэндл окна в строковую переменную Узнать хэндл окна и отправить нажатие клавиш |
![]() ![]() |
|
20.09.2012, 00:31 | |
Van111, через FindWindow
HWND hwnd- получение...
1
|
20.09.2012, 15:05 [ТС] | ||||||
думаете я так не пробовал)),студия 10 блокирует
журнал компиляции
------ Построение начато: проект: 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
|
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 ========== у меня вроде как CLI
0
|
Модератор
![]() 8961 / 6727 / 921
Регистрация: 14.02.2011
Сообщений: 23,748
|
|
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
|
20.09.2012, 20:27 [ТС] | |
0
|
Модератор
![]() 8961 / 6727 / 921
Регистрация: 14.02.2011
Сообщений: 23,748
|
|
20.09.2012, 20:30 | |
это ссылка на локальный MSDN
чтобы показать 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
|
Модератор
![]() 8961 / 6727 / 921
Регистрация: 14.02.2011
Сообщений: 23,748
|
|
20.09.2012, 20:47 | |
вот из за этого
вот тебе пространство имен Form http://msdn.microsoft.com/ru-r... ex0x9.aspx как видишь ни одного метода ты должен от формы что то взять Что не знаю, ибо в КЛИ не силен побаловался месяц и понял это для красявостей, для серьезной работы с системой непригодна (к тому же фрейм ворк за собой тянет) кстати по слухам Микрософт прекратил поддержку CLI Добавлено через 4 минуты Юра это публичный член класса CWnd, так что в любом окне есть
0
|
![]() ![]() |
|
20.09.2012, 21:02 | |
- ну я и писал что можно вызвать как член CDialog если скажем в коде не начудили и не прписали скажем HWND m_hWnd = FindWindow(NULL,"Search"), то далее в коде m_hWnd в общем случае не будет соответвовать CDialog::m_hWnd (либо если хотим родителя CWnd::m_hWnd) то тогда надо раскрытие видимости, можно даже и так ::m_hWnd.
За m_hWnd чтобы Ван поискал аналогичную переменную в проекте кли, вот и всё Добавлено через 40 секунд 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
|
![]() ![]() |
||||||
21.09.2012, 10:57 | ||||||
CheshireCat, а явное преобразование к
просто так написано? HWND не более чем номер окна в системе - при желании можно написать
1
|
![]() 2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
21.09.2012, 11:19 | |
Кстати, я ошибся. HWNDWindowMain должен иметь тип IntPtr.
Тут существует тонкий момент, связанный с разрядностью IntPtr и HWND на различных платформах. При насильственном преобразовании запросто можно получить потерю данных. Насчет "не более чем номер окна в системе" - это неверно. Верно так: HWND - это уникальный идентификатор окна в системе. Смысл же этого идентификатора - будет ли это номер, либо индекс в какой-нибудь внутренней таблице ядра, или еще что-нибудь, - нам неведом и никто никаких гарантий не дает, этим идентификатором заведует ядро.
1
|
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 получить хэндл окна? Как правильно получить хэндл окна по его заголовку? Как узнать имя окна (обьекта), зная его хэндл? Как получить хэндл окна среди окон с одинаковыми классами Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
|
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели.
Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
|
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка:
«Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
|
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
|
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
|
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
|
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
|
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
|
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
|
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
|