Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как проверить хендл окна извлеченный из БД / 22 сообщений из 22, страница 1 из 1
14.12.2013, 18:03
    #38500903
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
В БД записаны хендлы окна

извлекаю их в переменную hendle вот так
Код: plaintext
1.
size_t handle=atoi(PQgetvalue(pg_result, 0, 3));



потом проверяю запущенно ли данное окно
Код: plaintext
1.
if (IsWindow((HWND)handle)){}



Но всегда получаю true даже когда окна с хендлом из БД уже нет
проверил что в переменной handle и там
50
Хотя реальное значение хендла 00050DFC

Что не так делаю ?
...
Рейтинг: 0 / 0
14.12.2013, 18:39
    #38500916
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromВ БД записаны хендлы окна
"Уже смешно." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 18:41
    #38500919
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

что смешного объясни?

пишу хендлы в БД и использую на другом языке все стабильно, с с++ пока не разобрался
...
Рейтинг: 0 / 0
14.12.2013, 18:59
    #38500930
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromчто смешного объясни?
Сама идея хранить что-то столь мимолётное, как хэндл - порочна изначально. Сохранять целое
число как шестнадцатиричную строку может додуматься далеко не каждый. Пытаться её же
прочитать как десятичную строку... это для особо одарённых.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 19:11
    #38500935
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

Ну так покажи как надо сохранять ?
сам хендл я сохраняю в текстовом поле базы данных, то есть если правильно понимаю сохраняю я ее нормально, а вот извлекаю как десятичное число, а надо как шестнадцатиричное, как тогда извлечь как шестнадцатиричное ?
...
Рейтинг: 0 / 0
14.12.2013, 20:01
    #38500960
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromНу так покажи как надо сохранять ?
Не надо сохранять. Как я уже сказал, хэндл - вещь мимолётная, подверженная повторному
использованию. Даже если ты его достанешь правильно и даже если это будет валидный хэндл
окна, то далеко не факт, что это будет то самое окно. Найди более стабильный канал
межпроцессного общения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 20:05
    #38500969
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

Мне не нужны советы про хендлы, я их уже давно использую в проге на другом языке, сейчас надо на с++, про то что хендл мимолетное итд это я все знаю, но под мою задачу это подходит, поэтому вопрос остается как нормально извлечь этот хендл из БД.
...
Рейтинг: 0 / 0
14.12.2013, 20:24
    #38500976
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromвопрос остается как нормально извлечь этот хендл из БД.
Use sscanf, Luke!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 20:44
    #38500993
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,
Код: plaintext
1.
2.
3.
4.
	
char * handle_str=PQgetvalue(pg_result, i, 3);
int handle=0;
sscanf(handle_str,"%d", &handle);



ничего не поменялось в переменной
handle 50
handle_str 00050DFC

что не так делаю как получить 00050DFC в переменную handle ?
...
Рейтинг: 0 / 0
14.12.2013, 20:52
    #38500999
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromчто не так делаю
Спецификатор формата десятичный ты туда засунул с какого перепою?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 20:54
    #38501002
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

ну покажи на примере плз, что не так делаю. я пробовал как только можно не получается!
...
Рейтинг: 0 / 0
14.12.2013, 20:55
    #38501005
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromя пробовал как только можно не получается!
Значит, пришла пора для чтения документации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 21:01
    #38501009
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

пришла пора ответить нормально, документация мне не помогла
...
Рейтинг: 0 / 0
14.12.2013, 21:06
    #38501015
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromпришла пора ответить нормально
Какое слово из "десятичный спецификатор формата" ты не понял?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2013, 22:25
    #38501068
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Хендл окна -- это адрес в памяти. Адрес в памяти -- это число.
Т.е. (почти) любое число может быть валидным хендлом окна.
Если не сейчас, так когда-нибудь.
...
Рейтинг: 0 / 0
14.12.2013, 22:25
    #38501069
trom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Dimitry Sibiryakov,

Код: plaintext
1.
2.
3.
char * handle_str=PQgetvalue(pg_result, i, 3);
		int handle=0;
		sscanf(handle_str,"%x", &handle);



вот так все заработало спасибо!

А в чем разница между sscanf и scanf ?
...
Рейтинг: 0 / 0
16.12.2013, 11:16
    #38501872
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromА в чем разница между sscanf и scanf ?
Dimitry SibiryakovЗначит, пришла пора для чтения документации.
...
Рейтинг: 0 / 0
16.12.2013, 11:50
    #38501921
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
trom,

Слушай, заинтриговал весь отдел. Ты зачем хэндл окна хранишь в БД? Сейчас все трезвые и поэтому сообразить зачем ты это делаешь никто не может.
...
Рейтинг: 0 / 0
16.12.2013, 12:34
    #38501992
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
Анатолий Широковtrom,

Слушай, заинтриговал весь отдел. Ты зачем хэндл окна хранишь в БД? Сейчас все трезвые и поэтому сообразить зачем ты это делаешь никто не может.

Толя, так зачем дело встало ?
Разливай !
Может хоть поймёте...
...
Рейтинг: 0 / 0
16.12.2013, 12:41
    #38502006
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
tromВ БД записаны хендлы окна

извлекаю их в переменную hendle вот так
Код: plaintext
1.
size_t handle=atoi(PQgetvalue(pg_result, 0, 3));






Надо так:

Код: plaintext
1.
HWND hWnd = (HWND)atol(PQgetvalue(pg_result, 0, 3));
...
Рейтинг: 0 / 0
16.12.2013, 17:05
    #38502468
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
MasterZiv,

Сейчас целая очередь выстроится за "налить"....а рабочий день в разгаре.

P.S. Может он там не хэндлы хранит? Т.е. думает, что хэндлы а там "все что угодно"...
...
Рейтинг: 0 / 0
16.12.2013, 20:52
    #38502707
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить хендл окна извлеченный из БД
trom,

А вы, случаем, указатели, а хотя что там указатели... Вы ежесекундные снапшоты всего виртуального адресного пространства программы не сохраняете в БД?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как проверить хендл окна извлеченный из БД / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]