Как узнать имена стандартных классов окон в Win32

Тема в разделе "WASM.BEGINNERS", создана пользователем Rockphorr, 9 ноя 2006.

  1. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.628
    Адрес:
    Russia
    Iczelion в своих уроках приводит имена стандартых классов. Как он до этого дознался ?? Как узнать имена классов окон регистрирующихся при подключении какой либо DLL ? например comctl32.dll ?
    (добавил позже)
    Где подчерпнуть "теоретические сведения" по данному вопросу ? (где хранитятся описания классов, как их все поочереди перебрать, какие структуры данных связаны с этим вопросом и какие функции позоляют добраться до классов зарегистрированных в системе и данных каждого класса, таких как например его имя)
     
  2. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    если есть VS с ней идёт замечательная утилитка Spy++ ей можно заюзать :derisive:
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.628
    Адрес:
    Russia
    а если нету ?? ставить VS ? -- никак нельзя без С++ обойтись при програмировании на асме под win32???
     
  4. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    можно использовать апи GetWindowInfo, но что-то я невижу описания используемой структуры WINDOWINFO в инклудингах масма (9)
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Rockphorr
    В инструментах васма есть она и не только.
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.628
    Адрес:
    Russia
    меня интересует теория - как эти программи эти имена получают то бишь где эта информация храниться в системе и как до нее добраться.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.628
    Адрес:
    Russia
    в win32sdk она есть ???
    то есть обшарить все окна и выяснить имена классов которым они принадлежат ??
     
  8. kero

    kero Модератор SOURCES & 2LZ

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >>Как узнать имена классов окон регистрирующихся при подключении какой либо DLL ? например comctl32.dll ?

    >никак нельзя без С++ обойтись при програмировании на асме под win32???

    Ну, откройте comctl32.dll в блокноте, эти классы там все в кучке, вразрядку :)

    А то - Process Explorer, в верхней панели - Explorer, в нижней - comctl32.dll, смотреть начало Strings.
     
  9. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    ага)
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.628
    Адрес:
    Russia
    А что открыть чтоб увидеть например имя класса BUTTON ??
    Имена классов чувствительны к регистру ??
     
  11. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    ищеш любое окно c батоном и делаеш ему EnumChildWindows --> GetClassName и просматриваеш всё имена классов, среди них обязательно будет Edit
    GetClassInfo от "Edit" и "EdIT" возвращают одинаковые значения значит нечуствительны к регистру имена классов, кстати хотел спросить почему у меня не получается узнать имя через атомы таким макаром:
    Код (Text):
    1. #include <windows.h>
    2.  
    3. #pragma comment(linker,"/ENTRY:main")
    4.  
    5.  
    6. void main()
    7. {
    8.     HWND hWnd = FindWindowA(0,"RadASM - test - [D:\\mustdie\\prog\\radasm\\Masm\\Projects\\test\\test.Asm]");
    9.     WINDOWINFO wi;
    10.     wi.cbSize = sizeof(WINDOWINFO);
    11.     GetWindowInfo(hWnd,&wi);
    12.     char buf[256]= {0};
    13.  
    14.     GlobalGetAtomNameA(wi.atomWindowType,(LPSTR)&buf,256);
    15.  
    16.     return;
    17. }
    GlobalGetAtomName всегда порождает LastError = INVALID_HANDLE (6) хотя до никаких ошибок от FindWindow и GetWindowInfo ?
    wi.atomWindowType = 0xc183
     
  12. kero

    kero Модератор SOURCES & 2LZ

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >А что открыть чтоб увидеть например имя класса BUTTON ??

    Чтобы увидеть BUTTON, а заодно и другие зарегистрированные сейчас в системе классы (кроме #327[68/69/70/71/72/74 etc) -
     
  13. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    kero битый атач
     
  14. kero

    kero Модератор SOURCES & 2LZ

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Я вообще-то скачивал для проверки, было OK.

    Но переаттачил еще раз.
     
  15. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Win Help (он же Win32 Developers Reference) описание функции CreateWindow - там BUTTON и пр. с дотупными для них стилями, а в разделе Common Control Window Classes и About Common Controls перечислены коммон контролы, у которых имена классов не совпадают с хелповыми тут см. заголовочный CPP файл
     
  16. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    скачивал раза 4 и всё-время ошибка crc
     
  17. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    так-же не могу скачать атач Y_Mur'a опера останавливает закачку не докачав несколько байт, а когда нажимаеш resume/retransfer скачивается, но пишет ошибку crc, наверно моя лажа
     
  18. kero

    kero Модератор SOURCES & 2LZ

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Похоже, что-то у Вас глючит...
    Тогда еще ссылка: http://www.geocities.com/xmemor/2lz/regrange.zip
     
  19. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Все стандартные классы прекрасно описаны в msdn (и даже в старом win32.hlp есть подробное описание самых стандартных контролов): имена, структуры, сообщения и т.д. Зачем тут что-то реверсировать и юзать хакерские утилиты?!
     
  20. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    kero по этой ссылке всё ок!