Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Xендл Desktop, Взятие Хендла разными способами 
V
    Опции темы
Moky
Дата 10.12.2015, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.3.2013

Репутация: нет
Всего: нет



День добрый, форумчане!
Разбираясь с устройством и условиями доступа к Desktop’у, столкнулся с малопонятной мне вещью. В Инете можно встретить достаточно примеров и описаний взятия дескриптора.
Одни делают это так:  invoke GetDesktopWindow;
другие так: invoke FindWindow,'Progman','Program Manager', или близко к этому.
А давайте объединим усилия:
Код

format PE GUI 4.0
entry start 
include 'win32ax.inc'
section '.data' data readable writable
formats db 'Число = %.0i',0
result  db 0x100 dup (?)
section '.code' code readable executable
start:
invoke FindWindow,'Progman','Program Manager'
        invoke wsprintf,result,formats,eax
      invoke MessageBox, 0,result, 'Хендл Стола 1', MB_OK
invoke GetDesktopWindow
       invoke wsprintf,result,formats,eax
    invoke MessageBox, 0,result, 'Хендл Стола 2', MB_OK
    invoke ExitProcess,0       
      section '.idata' import data readable
library kernel32,'KERNEL32.DLL',user32,'USER32.DLL'
INCLUDE 'api\kernel32.inc'
INCLUDE 'api\user32.inc'


Запустив программу я обнаружил, а числа то разные,  первое, у меня, 65774, второе 65552, а идентификаторы одного и того же окна. Как я понимаю.
Заранее благодарен кому кто не поленился объяснить тугодуму этот парадокс, а может я что-то путаю?
С уважением, Moky.

PM MAIL   Вверх
Sajtran
Дата 11.12.2015, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



лучше пользоваться GetDesktopWindow, шелл может быть отличный от эксплорера

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Moky
Дата 14.12.2015, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.3.2013

Репутация: нет
Всего: нет



Как удалось выяснить, то есть как всегда, некоторые статьи в Инете вводят в заблуждение.
  GetDesktopWindow это действительно дескриптор Desktopa, а
FindWindow,'Progman','Program Manager' - процесса Explorer. Соответственно функции возвращают разные числа.
Персональное спасибо Sajtran!

Это сообщение отредактировал(а) Moky - 14.12.2015, 16:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1038 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.