Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2009, 10:26   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
виноваты не Borland, а Билл Гейтс.
А я и не сказал что Борланд виноват...
Вот если кому интересно я ЛистВью рабстола так получаю:

http://www.programmersforum.ru/showt...ListViewHandle

Вот что интересно: Если продебагить GetDesktopWindow то можно добраться до такого кода:
Код:
/*77D3D199*/  MOV     EAX, DWORD PTR FS:[18] ; А вот он хендель якийсь рабстола, но че оно такое х.з.
/*77D3D19F*/  CMP     DWORD PTR DS:[EAX+40], 0
/*77D3D1A3*/  JE      user32.77D4B6F7
/*77D3D1A9*/  MOV     EAX, DWORD PTR FS:[18]
/*77D3D1AF*/  MOV     ECX, EAX
/*77D3D1B1*/  MOV     EAX, DWORD PTR DS:[ECX+6E4]
/*77D3D1B7*/  MOV     EAX, DWORD PTR DS:[EAX+8]
/*77D3D1BA*/  SUB     EAX, DWORD PTR DS:[ECX+6E8]
/*77D3D1C0*/  RETN
Так что тут что-то загрузчик мутит, а не делфи...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.08.2009, 14:19   #12
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

В fs:[18] лежит указатель на thread environment block Можно раскрутить дальше, если кто-то даст описание структуры TEB для XP SP2

Код:
user32.GetDesktopWindow
77D4EEE5 > $ 8BFF           MOV EDI,EDI
77D4EEE7   . 56             PUSH ESI
77D4EEE8   . E8 ACE2FFFF    CALL user32.77D4D199 

user32.77D4D199
77D4D199   $ 64:A1 18000000 MOV EAX,[FS:18]           ;  указатель на TEB
77D4D19F   . 8378 40 00     CMP [DWORD EAX+40],0      ;  TEB.Win32ThreadInfo = 0?
77D4D1A3   . 0F84 4EE50000  JE user32.77D5B6F7        ;  куда-то далеко (ошибка)
77D4D1A9   > 64:A1 18000000 MOV EAX,[FS:18]           ;  TEB
77D4D1AF   . 8BC8           MOV ECX,EAX
77D4D1B1   . 8B81 E4060000  MOV EAX,[ECX+6E4]         ;  TEB.хз (clientID?)
77D4D1B7   . 8B40 08        MOV EAX,[EAX+8]           ;  хз.хз
77D4D1BA   . 2B81 E8060000  SUB EAX,[ECX+6E8]         ;  хз.хз - TEB.хз
77D4D1C0   . C3             RETN

...
Вернёт это всё точно не 0
пыщь
JTG вне форума Ответить с цитированием
Старый 27.08.2009, 14:44   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В fs:[18] лежит указатель на thread environment block
Тьху ты. Точно, я просто в кишки не вникал сильно, но помнил чо оттуда ноги ростут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить дескриптор окна другого приложения и сделать его активным Delphi 7 AndersX Помощь студентам 4 18.10.2009 09:32
lokalhost- какой указывать адрес ? lamer_lam Общие вопросы Web 16 04.03.2009 16:18
Получить Handle TEdit'a, зная дескриптор родительского окна Cold_Night Win Api 2 13.02.2009 16:47
FindWindow не нашел окна, а ShellExecute возвращает ERROR_PATH_NOT_FOUND malor Win Api 2 19.07.2007 15:15
Вызов Метода из др. модуля Mickle Общие вопросы Delphi 2 10.05.2007 23:41