Размер консольного окна

Тема в разделе "WASM.BEGINNERS", создана пользователем bug1z, 3 окт 2010.

  1. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    Добрый день. Подскажите пожалуйста, какой АПИ ф-й задается ширина и высота консольного окна?

    Интересуют функции из ряда "Console Functions".

    Заранее спасибо!
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Вроде нет такого функционала. Устанавливайте размер и положение окна вручную через SetWindowPos().
     
  3. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    FAR вроде бы уверенно с консолью - посмотрел счас его экзешнег - нашол SetConsoleScreenBufferSize. Может еще что есть, лениво ApiSpy качать чтобы посмотреть что он делает при ALT-F9.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    PSR1257
    Ну я смотрел немного иначе - импорт WinSrv.dll в которой находятся хэндлеры консольных сервисов.
     
  5. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    Спасибо, Clerk.

    А не подскажите, как мне теперь получить дескриптор консольного окна (HWND)?
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    http://netcode.ru/cpp/?lang=&katID=16&skatID=152&artID=4865
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    rmn
    Консолей в процессе может быть множество(можно создать есчо обнулив RTL_USER_PROCESS_PARAMETERS.ConsoleHandle, потом загрузив туда описатель нужно консоли). Поэтому лучше перечислить окна, например через EnumThreadWindows().
     
  8. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    А GetConsoleWindow() не получает HWND консольного окна?
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    мб.
     
  10. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    Проблема решена, всем спасибо.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    bug1z
    Попробуйте это:
    Код (Text):
    1.     mov ebx,4
    2. @@:
    3.     mov eax,fs:[TEB.Peb]    ; +0x30
    4.     mov eax,PEB.ProcessParameters[eax]  ; +0x10
    5.     mov RTL_USER_PROCESS_PARAMETERS.ConsoleHandle[eax],0    ; +0x10
    6.     Call AllocConsole
    7.     dec ebx
    8.     jnz @b
    Спасёт ребут :)
     
  12. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Вроде же не было ее раньше? Хотя сейчас в мсдн говорят, что поддерживается с win2k