Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI
все вопросы по WinAPI сюда...

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Открыть новую тему     Написать ответ в эту тему

bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все функции которые пробовал относятся только к выпадающему системному меню окна, найти положение системной кнопки "свернуть окно" независимо от разрешения экрана, можно используя GetSystemMetrics и GetWindowRect, отсчитывая от правого верхнего угла окна. как любого окна и особенно консольного, которое имеет жесткие неизменяемые размеры. вот только трудно понять в описании метрик, какой параметр к каким рамкам относится.
 
4.2. Приложение SMETRICS

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 02:38 26-12-2025 | Исправлено: bomzz, 02:42 26-12-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
А зачем такие сложности? Почему бы сразу не приказать окну SC_MINIMIZE, например, через SendMessage?

Всего записей: 5655 | Зарегистр. 18-09-2018 | Отправлено: 07:10 26-12-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
потому что надо не минимизировать окно консоли, а нажать на кнопку свернуть окно ПРАВОЙ клавишей мыши, чтоб оно свернулось в трей. ничего тупее чем двинуть мышь и нажать не придумалось. свой код для сворачивания писать оказалось сложнее чем предполагалось.  
 
RBTray

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 09:28 26-12-2025 | Исправлено: bomzz, 09:31 26-12-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
не минимизировать окно консоли, а нажать на кнопку свернуть окно ПРАВОЙ клавишей мыши

А какая разница?

Всего записей: 5655 | Зарегистр. 18-09-2018 | Отправлено: 10:03 26-12-2025
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2

Цитата:
А какая разница?
это для юзверей неразличающих "право-лево"...

Всего записей: 25903 | Зарегистр. 06-12-2002 | Отправлено: 10:26 27-12-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
я уже перемерил окна на xp, xp x64. windows 7 x64, windows 8 x64, windows 10 x64 и нашел в документации, что нет никакого стандарта соотношений иконок меню управления окном. оно зависит даже от темы винды. по оси Х, по Y есть. просто сам путь ошибочный идти через прямое двиганье и тыканье мышью, хотя работает и неплохо. сбои бывают, нужны задержки...
надо свой код написать, но это - освоить ассемблер х64, написать один код совместимый с xp, один код совместимый с х64, один код совместимый выше windows 7 - чтобы хукнуть консоль. и самое сложное - на ассемблер нет половины библиотек, еще надо написать структуры и библиотеки. это такой объем, который я уже один раз делал для х32, что у меня руки опускаются. впрочем на RBTray я файл открыл, там хоть и дллка для хука, но в целом скрыть консоль и вывести иконку в трей от скрытого окна. вообще не понятно зачем хук понадобился. а хук понадобился чтоб правую клавишу перехватить
Подробнее...
Mouse Point Viewer 1.0
 
вот я сидел структуры расписывал как дурак байты считал на пальцах, а они на семерке не работают.
Подробнее...
 
mouse.zip   1,65 КБ (1 697 байт)
 
вот я нативную консоль делал для windows xp, пол года писал, мало что все недокументировано, библиотек нет, инклудов нет, пришлось делать свой компилятор, писать структуры, определять переменные, практически все время ушло на костыли. я себе памятник нерукотворный воздвиг на ассемблере, но хп уже никому не нужно. надо двигаться дальше.  последние неполные библиотеки и инклуды, даже не на хп, на 2000-ик
native.zip   41,8 КБ (42 826 байт)

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 11:24 27-12-2025 | Исправлено: bomzz, 12:23 27-12-2025
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz

Цитата:
вот я нативную консоль делал для windows xp

на х32 не запускается
и чем она отличается от цмд?

Цитата:
хп уже никому не нужно

на новых осях есть же режим совместимости

Всего записей: 4396 | Зарегистр. 22-11-2006 | Отправлено: 14:28 28-12-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
euheny
это для интерфейса работает. а для ядра в принципе ядро другое, на хук отказывается 32 битный код принимать, подпрограммы многие другие, структуры другие. все равно что дрова от хп пытаться поставить. им надо было наршуить совместимость, чтоб весь софт требовал переписывания. за годы уже столько софта накопилось что писать больше было нечего,а им работа нужна, и нужно было чем то новое железо загрузить, для нового железа не было задач, нужен был такой софт чтоб новое железо не тянуло

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 14:35 28-12-2025 | Исправлено: bomzz, 14:37 28-12-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Бррр, так еще менее понятно - полгода воздвигал себе памятник на ассемблере для чего - консоль в трэй минтмизировать?
Ну взять в готовом проекте https://github.com/sandwichdoge/MinimizeToTray подсмотреть, например, не?

Всего записей: 5655 | Зарегистр. 18-09-2018 | Отправлено: 15:27 30-12-2025
Collapse Troll

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
консоль в трэй минимизировать

Ещё у Hotkey Manager есть такой функционал по правому клику.

Всего записей: 838 | Зарегистр. 05-08-2006 | Отправлено: 12:49 31-12-2025
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
Цитата:
консоль в трэй минтмизировать?
это не та консоль.  
chkdsk c: /f /x  видел на синем фоне? вот у него консоль для этого этапа.
там не то что трея нет, вообще никакого winapi в этот момент не доступно, тк win32 подсистема тупо не загружена.

Всего записей: 12091 | Зарегистр. 03-08-2008 | Отправлено: 13:24 31-12-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может у кого то студия стоит, не могли бы вы достать оттуда ml.exe и ml64.exe. конечно там больше файлов надо.
Подробнее...
 
PortableBuildTools

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 04:27 03-01-2026 | Исправлено: bomzz, 12:50 04-01-2026
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никто не знает как обновить рабочий стол не используя F5? что делает система после нажатия F5?

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 02:33 12-01-2026
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz

Цитата:
никто не знает как обновить рабочий стол не используя F5? что делает система после нажатия F5?

Что делает никогда не задумывался, но может сообщение послать?

----------
Разум когда-нибудь победит

Всего записей: 3881 | Зарегистр. 09-02-2003 | Отправлено: 10:12 12-01-2026
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
Гугл знает все
https://www.google.com/search?q=redraw+desktop+winapi

Всего записей: 5655 | Зарегистр. 18-09-2018 | Отправлено: 11:13 12-01-2026
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
google до фига чуши выдает, и в данном случае тоже
 
Добавлено:
Smitis
в интернете множество мнений существует, но реально работает только через F5 и то не все способы
invoke SHChangeNotify, SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0
вот это работает, но обновляет только ярлыки
послать сообщение идея конечно была, но перехватить сообщение не удалось, уже бы давно перехватили без меня
 
конечно способ прибить експлорер тоже работает, но мне как раз надо сначала обновить ярлыки, чтоб они запомнили свой порядок, а потом прибить експлорер

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 00:24 13-01-2026 | Исправлено: bomzz, 00:34 13-01-2026
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz
Я тут подумал, что вопрос поставлен неправильно

Цитата:
что делает система после нажатия F5

Не система, а проводник как программа. F5 это его персональная фича, его горячая клавиша. Ну значит и посылать надо нажатие клавиши окну.

----------
Разум когда-нибудь победит

Всего записей: 3881 | Зарегистр. 09-02-2003 | Отправлено: 08:05 13-01-2026
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
Гугл первым же AIшным ответом в шапке выдаче выдает SHChangeNotify
Или у вас какой то другой гугл?
Вторым ответом он выдает перезапустить explorer - это вам тоже не подходит?
Тогда, пожалуйста, сформулируйте свою хотелку более корректно.

Всего записей: 5655 | Зарегистр. 18-09-2018 | Отправлено: 08:09 13-01-2026
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
клавишу надо посылать рабочему столу, у которого три хендла и так же никто толком не знает чем эти три хендла отличаются, тем более какой то гугл без мозгов. раз никто ответа не нашел до сих пор, значит експлорер что то делает только ему ведомое с рабочим столом и доступ к этому можно получить только через f5
 

Цитата:
    ClassName    db "ProgMan",0
 
    invoke FindWindow, addr ClassName, 0
    invoke GetWindow, eax, GW_CHILD
    invoke PostMessage, eax, WM_KEYDOWN, VK_F5, 0

вот так только работает больше никак

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 17:03 13-01-2026 | Исправлено: bomzz, 17:04 13-01-2026
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
экспериментировал с эксплорером, можно ли выйти корректней чем прибивать процесс, интересную статью нарыл  
Gracefully Exit Explorer (Programmatically)
Подробнее...
а казалось простая задача. вот так не нужен F5, потому что експлорер корректно заканчивается и сам запоминает порядок ярлыков на столе. сообщение 05B4h недокументировано.
Подробнее...
работает но не совсем корректно, иногда подвисает, пришлось ожидание поставить 10 секунд и все равно прибивать процесс, чего то не хватает. надо с параметрами поиграться
 
вот так ни разу сбоя не было
invoke PostMessage, hWin, 05B4h, 0, TRUE
не могу понять что они дезасемблировали

Всего записей: 3866 | Зарегистр. 29-03-2016 | Отправлено: 03:32 17-01-2026 | Исправлено: bomzz, 11:16 17-01-2026
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.B0ard 2000-2026

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru