Форум программистов, компьютерный форум CyberForum.ru

Как преобразовать String в HWND - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 415
14.12.2013, 13:19     Как преобразовать String в HWND #1
Можно как то преобразовать String в HWND ?
как сделать обратное преобразование то есть из HWND в String разобрался, а вот из String в HWND немогу найти способ.

Тип HWND нужен для хранения хендла окна, я его пишу в базу данных, а из нее можно получить результат только типа String, потом чтобы проверить наличие этого окна в функции IsWindow(); нужно значение с типом HWND
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
14.12.2013, 21:30     Как преобразовать String в HWND #21
Цитата Сообщение от nill Посмотреть сообщение
ну так а что делать то ?
подумать
тебе уже сказали что сохранять хендлеры бесполезно
сохраняй имя окна
а оно берется вот так
C++
1
2
3
4
5
6
int GetWindowText(
HWND hWnd,       // дескриптор окна или элемента  управления с текстом
LPTSTR lpString, // адрес буфера для текста
int nMaxCount    // максимальное число символов  для копирования
 
);
вот здесь тебе хендлер и пригодится
http://vsokovikov.narod.ru/New_MSDN_...windowtext.htm
а чтобы искать по имени есть функция
FindWindow
http://vsokovikov.narod.ru/New_MSDN_...findwindow.htm
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 415
14.12.2013, 22:30  [ТС]     Как преобразовать String в HWND #22
C++
1
2
3
char * handle_str=PQgetvalue(pg_result, i, 3);
        int handle=0;
        sscanf(handle_str,"%x", &handle);
вот так все заработало!

ValeryS,
Почему бесполезно, зачем мне заморачиваться со сложными именами окон когда можно читать хендлы.
Главная прога в бесконечном цикле отслеживает запущенные мелкие проги, если какая то из них закрывается сразу обновляется БД что такая то прога с таким то хендлом закрыта.
Система у меня распределенная и нужна БД чтобы без проблем запущенные проги виделись со всех компов.

Понять немогу почему так хендлы в БД всем не нравятся, куда короче и понятнее чем заголовок проги, в один момент времени хендлы не могут повторятся, после закрытия проги проходит очень мало времени перед тем как она удалиться из БД.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
14.12.2013, 22:40     Как преобразовать String в HWND #23
Цитата Сообщение от nill Посмотреть сообщение
система у меня распределенная и нужна БД чтобы без проблем запущенные проги виделись со всех компов.
и как ты будешь потом разбираться в этих хендлах?
какую тебе они информацию дадут?

увидишь ты что запущено окно 0х00658 и что?
что это за окно? какому приложению соответствует?
а есть еще безоконные программы, есть разные потоки

"диспетчер задач" справляется с этой задачей не используя всякие базы данных
а уж если хочешь так уж это число записать в виде строки есть для этого sprintf (и не только)
и почему двоичные данные надо в виде строки записывать?

Добавлено через 1 минуту
Цитата Сообщение от nill Посмотреть сообщение
Главная прога в бесконечном цикле
прекрасный способ разогреть процессор
и затормозить систему
для слежения за открытием закрытием окон существуют хуки
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 415
14.12.2013, 22:44  [ТС]     Как преобразовать String в HWND #24
ValeryS,
Вообще хендлы которая отслеживает Главная прога в БД пишут мелкие проги, то есть главная прога не отслеживает все подряд хендлы, а только те что есть в БД, увидит что такого то хендла нет, она его удаляет и все.

А про хуки можно поподробней как их использовать можно короткий пример или что нить почитать ?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
14.12.2013, 22:53     Как преобразовать String в HWND #25
Цитата Сообщение от nill Посмотреть сообщение
ообще хендлы которая отслеживает Главная прога в БД пишут мелкие проги, то есть главная прога не отслеживает все подряд хендлы, а только те что есть в БД, увидит что такого то хендла нет, она его удаляет и все.
представь на секунду такую ситуевину
окно закрылось и тут же открылось другое окно, винда дала ему тот же хендл,как поведет себя твоя программа?


Цитата Сообщение от nill Посмотреть сообщение
А про хуки можно поподробней как их использовать можно короткий пример или что нить почитать ?
попроще не получится
сначала нужно понять что это за "крючки" и зачем они нужны
в двух словах это как свои прерывания в ДОС
прога перехватывает сообщения от системы к окнам и от окон к системе и решает что с ними делать пропустить, обработать удалить
например мажно написать хук и при печати вместо буквы А будет высвечиваться буква Б
вот статейка для начала пойдет а потом придется все равно тренироваться
http://www.rsdn.ru/article/baseserv/winhooks.xml
http://habrahabr.ru/company/infopulse/blog/140456/
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 415
14.12.2013, 23:26  [ТС]     Как преобразовать String в HWND #26
ValeryS,

окно закрылось и тут же открылось другое окно, винда дала ему тот же хендл,как поведет себя твоя программа?
Тут же открыться ничего не может прога будет работать на сервере, где человек производит какие либо действия очень редко, да и вероятность получить тот же хендл очень маленькая.
Вообще конечно в идеале надо бы присваивать всем прогам уникальный ИД простым перечислением через БД и по нему ну может еще плюс хендл искать запущенные окна, но пока не вижу причин почему бы работа только с хендлами доставила бы мне хоть какие то проблемы, но буду иметь ввиду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 15:31     Как преобразовать String в HWND
Еще ссылки по теме:

Как преобразовать string в int ? С++ C++
C++ Как преобразовать string в char*?
Как преобразовать один элемент String в Int C++

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2013, 15:31     Как преобразовать String в HWND #27
Цитата Сообщение от nill Посмотреть сообщение
Почему бесполезно, зачем мне заморачиваться со сложными именами окон когда можно читать хендлы.
Для тебя пока сложны как хендлы, они двоичны, а ты не умеешь работать с двоичными данными.
Yandex
Объявления
15.12.2013, 15:31     Как преобразовать String в HWND
Ответ Создать тему
Опции темы

Текущее время: 00:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru