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

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

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

Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz
Не задумывался. Проще набросать небольшой тест и проверить.

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 20:11 21-08-2022
bomzz

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

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 22:49 21-08-2022 | Исправлено: bomzz, 22:51 21-08-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz
У меня стабильно показывает какое-то невидимое окно проводника.

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:59 21-08-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
windows 7 x64 хендл меняется время от времени
пооткрывай какие нибудь окна и снова проверь
 
FindWindow00.zip
 
мне на форуме макроассемблера посоветовали так сделать и объяснили чего хендл, но не могу найти на форуме

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 07:19 22-08-2022 | Исправлено: bomzz, 07:26 22-08-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz
Win 10 x64. Стабильно выдаёт один и тот же. Допускаю, что рано или поздно он поменяется, особенно если убить процесс explorer. Но как-то не вижу смысла в подобных экспериментах. Допускаю, что это хендл рабочего стола или там какого-нибудь элемента панели задач или ещё чего-нибудь подобного. Собственно, какая разница? Не вижу, как эти знания применить на практике.
 
Добавлено:
Меня вот что больше интересует.
Если мне нужная таблица импорта модуля (IAT), я вызываю ImageDirectoryEntryToData с параметром IMAGE_DIRECTORY_ENTRY_IMPORT. Отложенный импорт - с параметром IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT. А вот что я получаю с параметром IMAGE_DIRECTORY_ENTRY_IAT? Вроде, это тоже IAT, но тогда почему есть "другой" IMAGE_DIRECTORY_ENTRY_IMPORT?

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 13:43 22-08-2022
bomzz

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

Цитата:
.386
 
.model flat, stdcall  
option casemap :none  
 
include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib
 
.data
mestitle db "FindWindow 0 0",0
form db "EAX: %u", 0
 
 
.data?
buffer db 512 dup(?)
 
.code
start:
 
invoke FindWindow,0,0
invoke wsprintf,ADDR buffer,ADDR form,eax
invoke MessageBox,0,ADDR buffer,ADDR mestitle,MB_ICONASTERISK
invoke ExitProcess,0
end start

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 15:19 22-08-2022 | Исправлено: bomzz, 17:16 22-08-2022
Maphusailius

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
FindWindowA может вернуть искомый HWND, а может не вернуть и возвратить NULL он же ноль. Проверку на возврат функцией нуля надо делать, иначе запихнув в WsprintfA этот ноль может вылезти ошибка.  
если FindWindowA возвращает в регистр eax тогда:
cmp eax, 0
jnz @exit_label
..
..
..
@exit_label
 
Кроме того у WsprintfA только два операнда а не три и на https://docs.microsoft.com вообще написана рекомендация не пользоваться им
Цитата:
Note  Do not use. Consider using one of the following functions instead: StringCbPrintf, StringCbPrintfEx, StringCchPrintf, or StringCchPrintfEx. See Security Considerations.  

кстати .386 это инструкции процессора выпущеного в далёком 1985 году, их вполне можно заменить на .486 хотя сейчас и amd64 архитектуры процессоры есть и они широко распространены, даже целероны большинство выпущенных в последние 10 лет 64 битные
https://docs.microsoft.com/ru-ru/cpp/assembler/masm/masm-for-x64-ml64-exe?view=msvc-170

Всего записей: 37 | Зарегистр. 16-08-2022 | Отправлено: 17:40 22-08-2022 | Исправлено: Maphusailius, 18:10 22-08-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maphusailius
в коде нет команд несовместимых с 386
выдаст ноль. этот ноль.
 

Цитата:
Кроме того у WsprintfA только два операнда а не три


Цитата:
[in] Указывает один или несколько дополнительных параметров. Число и тип характеристик параметра зависят от соответствующих спецификаций управления форматом в параметре lpFmt.

Функция wsprintf
 

Цитата:
Обратите внимание! Это важно! на то, что wsprintf, использует соглашение о вызовах C (_cdecl), а не стандартный вызов (_stdcall). В результате этого - ответственность вызываемого процесса извлечь из стека параметры из стека и поместить параметры в стек справа налево. В C-языковых модулях компилятор C выполняет эту задачу.

предупреждение для Си программистов, мне это по боку,
как хочу так запихаю

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 04:39 23-08-2022 | Исправлено: bomzz, 10:06 23-08-2022
bomzz

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

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 09:47 18-11-2022 | Исправлено: bomzz, 05:15 27-11-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru