Подскажите,как можно в ассемблере (может и с помощью АПИ) остановить поток выполнения кода на определенное время? Чтобы получилось типа: код таймаут на 20 секунд дальше выполняем код И второй вопрос: можно ли как-нибудь реализовать запуск файл.exe только если провести по его значку курсором мыши? Реализация только в самом коде файл.exe. Прошу не ругаться,у меня очень скромный опыт программирования. То хотя-бы направьте мысль в нужную сторону. Заранее благодарен
а как правильно заюзать Sleep(20000) в ассемблерном коде? А то в справочниках я не нашел инструкций...
vnb Чтобы использовать Sleep правильно, усыпляемый поток не должен иметь окон с очередью. Консольная программа, или программа без GUI, или созданный отдельно поток. Делать приостановку таким образом в программе с гуем - страшный грех )) Собственно "заюзать" очень просто: первый пример в этой статье как раз использует Sleep, чтобы можно было успеть увидеть выведенный в консольное окно текст. по второму вопросу - это невозможно. Если бы существовала какая-то критическая уязвимость, связанная с переполнением буфера при обработке иконки, или еще каких-либо отображаемых или проверяемых эксплорером свойств экзешника, то может быть и можно было бы... но пока таковой не обнаружено.
FatMoon Была трабла у меня, в системном каталоге *.ocx компонент, так при листании проводник выпадал с ошибкой. Как оказалось когда листаем загружался он, я вычистил это, к сожалению не помню где именно, но гдето в реестре глубоко этот модуль был зареган.
Сам же упоминаешь об API-функциях, а потом почемуто пишешь об инструкции... Наверное так invoke Sleep, 20000 а можно и так: Код (Text): include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib; Sleep находится в kernel32.dll .code ... выполняем какой-то код push 20000; задержка в милисекундах call Sleep выполняем код дальше FatMoon IMHO для 20 секунд несущественно
Всем большое спасибо что откликнулись! Все работает,я просто неправильно вызвал в первый раз: invoke Sleep(20000). Недостаточно опыта еще... И по второму вопросу все понял. Спасибо.