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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 20:44   #1
KSN69
Новичок
Джуниор
 
Регистрация: 21.04.2010
Сообщений: 2
По умолчанию Программно закрыть окно AutoPlay Menu Builder

Здравствуйте! Я новичок в asm. Пишу на FASM. Написал программу, которая будет закрывать окно программы, созданная AutoPlay Menu Builder. Код скомпилировался, но когда запускаю программу, то выходит что программа не работает.
Вот код:

format PE GUI 4.0
entry start
include 'INCLUDE\win32a.inc'

section '.data' data readable writable

myfile db 'gdite.exe', 0

section '.code' code readable executable

start:
invoke FindWindow, myfile, 0
invoke SendMessage, eax, WM_CLOSE, 0, 0
invoke ExitProcess, 0

section '.idata' import data readable

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'

import kernel32,\
ExitProcess,'ExitProcess'

import user32,\
FindWindow,'FindWindowA',\
SendMessage,'SendMessageA'

Вероятно где-то допустил ошибку в коде. Помогите пожалуйста найти ошибку.
Заранее благодарен.
KSN69 вне форума Ответить с цитированием
Старый 21.04.2010, 21:13   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

в отладчик не пробовали загрузить
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 21.04.2010, 21:30   #3
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

FASM действительно так разительно отличается от tasm/masm или это только здесь?
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 21.04.2010, 22:07   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Во-первых, ты не правильно использовал функцию FindWindow!!!
Во-вторых, ты ищешь exe файл, а нужно искать заголовок окна!!!

Код:
        invoke FindWindow,0,addr myfile 
	invoke SendMessage, eax, WM_CLOSE, 0, 0
	invoke ExitProcess, 0
sig_GB, различие между Masm и Fasm минимальное.
xor eax, eax
xchg [eax], eax

Последний раз редактировалось MalCer; 21.04.2010 в 22:17.
MalCer вне форума Ответить с цитированием
Старый 21.04.2010, 22:58   #5
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Если искать окно ч.з. FindWindow, то правильнее искать ч.з. класс окна.
Заголовок может быть разный. Тем более у программ, "созданных" в AutoPlay Menu Builder. А вот класс, наверное, у них всегда один, вопрос только какой?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 22.04.2010, 06:37   #6
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Цитата:
myfile db 'gdite.exe', 0
А вы часом не название ли exe ищете ?
Честно-говоря никогда не видел что б приложение называло свое окно, именем файла-образа из которого запущена программа
В любом случае, узнать класс окна можно будет с помощью вот этой утилиты: WinDowzer.
Правда, есть вероятность того что у всех окон этой программы классы одинаковые.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 22.04.2010, 13:48   #7
KSN69
Новичок
Джуниор
 
Регистрация: 21.04.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от MalCer Посмотреть сообщение
Во-первых, ты не правильно использовал функцию FindWindow!!!
Во-вторых, ты ищешь exe файл, а нужно искать заголовок окна!!!

Код:
        invoke FindWindow,0,addr myfile 
	invoke SendMessage, eax, WM_CLOSE, 0, 0
	invoke ExitProcess, 0
sig_GB, различие между Masm и Fasm минимальное.
Спасибо! Заработала, правда при таком изменении:

invoke FindWindow, 0, myfile
KSN69 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрыть главное окно из дочерного FelixKoT Общие вопросы Delphi 4 08.01.2010 15:13
Закрыть окно, созданное в Delphi Shaggrath Помощь студентам 2 15.09.2009 00:46
Программно закрыть окно блокнота Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 02.04.2009 16:40
Закрыть окно в браузере! Какой-то глюк! Yaga Безопасность, Шифрование 7 24.02.2009 03:49
Программно закрыть Internet Explorer 7 Vladimir K. Общие вопросы Delphi 10 21.01.2008 20:00