Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 619
от 19.08.2003, 08:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3959 Отправлено ответов: 11716 Активность: 295.9 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 148.92 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Ramzes Статус: Профессиональный Общий рейтинг: 116.52 URL: Microsoft homepage [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.2 URL: Программирование [Подробней >>] |
Greys Статус: Начальный Общий рейтинг: 116.07 [Подробней >>] |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 126.47 URL: Методы оптимизации работы ПК [Подробней >>] |
Lynx Статус: Профессиональный Общий рейтинг: 117.66 Телефон: (8442) 750522 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 111.72 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 134.92 [Подробней >>] |
St Статус: Профессиональный Общий рейтинг: 106.83 [Подробней >>] |
Zedr0n Статус: Доверительный Общий рейтинг: 107.91 [Подробней >>] |
dimka Статус: Опытный Общий рейтинг: 145.51 Телефон: (231)-4-43-85 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 126.17 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
[L2]Max Статус: Доверительный Общий рейтинг: 121.8 [Подробней >>] |
Eugene Статус: Профессиональный Общий рейтинг: 106.73 URL: мощный файловый архив [Подробней >>] |
Andrew Vext Статус: Профессиональный Общий рейтинг: 105.25 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 118.74 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3912. Здравствуйте. Можно ли в DOS (точнее в w9x через "\\.\vwin32") демонтировать диск? Точнее ... (ответов: 3)
Вопрос № 3913. Здравствуйте. Всегда ли процесс запущенный в памяти привязян к конкретному файлу на диске? Можно ли... (ответов: 5)
Вопрос № 3915. День добрый, уважаемые эксперты! Наверное все из вас начинали изучать ассемблер под дос, только пото... (ответов: 10)
Вопрос № 3916. Добрый день ! Напомните, пожалуйста, номер вопроса, в котором спрашивали про получение работы ассемб... (ответов: 1)
Вопрос № 3918. Здравствуйте все! Возник у меня такой вопрос - как в W9х можно узнать хендл окна завершения работы п... (ответов: 5)
Вопрос № 3919. Здраствуйте уважаемый эксперт! Я напечатал в блокноте progu и когда я начал компилировать ее появила... (ответов: 10)
Вопросов: 6, ответов: 34
Вопрос № 3912 |
Здравствуйте.
Можно ли в DOS (точнее в w9x через "\\.\vwin32") демонтировать диск? Точнее сделать так,
чтобы система забыла все что она знала о формате диска и перечитала эту информацию с самого диска
из загрузочного сектора? Получается, что после изменения формата система помнит каким он был до этого
и соответственно обращается с ним.
Вопрос отправлен: 13.08.2003, 21:32
Отправитель: eugene (v_eugene@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, eugene!
Нет, только в Linux.
DOS монтирует диски на стадии MBR (загрузки), поэтому надо
перезагружаться.
Ответ отправлен: 14.08.2003, 00:50
Отправитель: Евгений Иванов
Отвечает Евгений Иванов
Приветствую Вас, eugene!
Нет, только в Linux.
DOS монтирует диски на стадии MBR (загрузки), поэтому надо
перезагружаться.
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Евгений Иванов
Отвечает Евгений Иванов
Приветствую Вас, eugene!
Нет, только в Linux.
DOS монтирует диски на стадии MBR (загрузки), поэтому надо
перезагружаться.
Ответ отправлен: 14.08.2003, 00:51
Отправитель: Евгений Иванов
Вопрос № 3913 |
Здравствуйте.
Всегда ли процесс запущенный в памяти привязян к конкретному файлу на диске?
Можно ли создать в памяти файл и запустить его на выполнение?
Есть необходимость удалить .exe файл из самого себя. Это нужно сделать немедленно после окончания
его работы не дожидаясь перезагрузки системы.
Вопрос отправлен: 13.08.2003, 21:37
Отправитель: eugene (v_eugene@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ramzes
Доброе время суток, eugene!
По моему сам себя файл удалить не сможет, т.к. во время выполнения он используется системой.
Первое что приходит в голову это добавить в Scheduled Tasks задачу, которая после выполнения файла запустися и сотрет этот файл.
Ответ отправлен: 14.08.2003, 14:07
Отправитель: Ramzes
Отвечает Bob Johnson
Добрый день, eugene!
> Есть необходимость удалить .exe файл из самого себя. Это нужно сделать немедленно после окончания его работы не дожидаясь перезагрузки системы.
Это возможно только через bat файл, т.е. exe-файл создает на диске bat файл, которому передает управление, а сам завершает выполнение. bat файл дожидается завершения работы exe и удаляет его, после чего и себя (bat файл это может). Он также может удалить каталог, в котором находилась программа.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 01:18
Отправитель: Bob Johnson
Отвечает Greys
Доброе время суток, eugene!
Если необходимо удалить EXE-шник из самого себя, то можно сделать следующую хитрость:
создать процедуру внутри файла, которая создаст some.bat файл со следующим содержанием и запустит его:
@echo off
del "some.exe"
del "some.bat"
Можно через командную строку.
С уважением,Greys!
Ответ отправлен: 14.08.2003, 02:19
Отправитель: Greys
Отвечает Tigran K. Kalaidjian
Здравствуйте, eugene!
Можно сделать так:
Программа (например myprog.exe) создает пакетный BAT-файл в директории, в которой сама находится:
---kuku.bat---------------------
del myprog.exe > nul
del kuku.bat > nul
--------------------------------
Затем завершается, передавая ему управление.
Ответ отправлен: 14.08.2003, 10:34
Отправитель: Tigran K. Kalaidjian
Отвечает Lynx
Здравствуйте, eugene!
А использовать bat файлы не легче???
В обработчик завершения проги пихаешь запуск своего bat файла (напрмер: Delete.bat), а в batник пихаешь:
del proga.exe
del delete.bat
Ответ отправлен: 15.08.2003, 17:05
Отправитель: Lynx
Вопрос № 3915 |
День добрый, уважаемые эксперты!
Наверное все из вас начинали изучать ассемблер под дос, только потом переходили на Windows. Вот и настал тот день, когда и я начал (не первый раз). Увидя, сколько шаблонного текста нужно для создания обыкновенного окна, я был немного удивлен.
Вот вы наизусть знаете эту вещь? Просто когда я пишу программу, и в ней находится кусок кода, который написал не я, меня это немного смущает. Нет, конечно, нужно знать из чего состоит эта структура, ведь в ней заложены необходимые параметры создаваемого окна. Но, вы сможете ее сесть и написать "за один раз"? Вот такой странный у меня вопрос. Просто программирование под виндовс сильно отличается от доса. Все же многие языки программирования под дос немного похожи, поэтому ассемблер под него выучить не так уж и сложно. Да, под винды программирование очень похоже Си и Ассемблер. Но я и си под вин. не изучал. Спасибо.
Вопрос отправлен: 14.08.2003, 15:59
Отправитель: a1 (a111_666@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Доброе время суток, a1!
Самый авторитетный чувак для меня при программировании в WinApi - Чарльз Петцольд. Он говорит примерно следующее - нет ничего плохого, если вы просто тупо скопируете всю эту ботву про создание окон и кнопок и займетесь более важными вещами вместо того, чтобы исправлять баги в том, что налажали по памяти... :)
Ответ отправлен: 14.08.2003, 18:48
Отправитель: baldr
Отвечает Евгений Иванов
Доброе время суток, a1!
Я один раз это написал и больше писать не буду.
Теперь я добавляю в таблицу сообщения, которые надо обработать и адреса
подпрограмм для их обработки.
Подобная таблица используется и для диалоговых окон, и для обработки
уведомляющих сообщений.
По сути, у меня есть как-бы шаблонный проект, я его беру, копирую все файлы
в другой каталог, и просто добавляю что-то определённое для этого проекта,
и стираю лишнее.
Удачи!
Ответ отправлен: 15.08.2003, 00:50
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Приветствую Вас, a1!
> Вот вы наизусть знаете эту вещь?
Помнить все это наизусть - это хорошо, но вот запоминать такие вещи специально - это совсем необязательно. На этот случай у тебя под рукой всегда есть MSDN или другой справочник API функций и структур. А когда ты напишешь несколько программ, тогда начнеш автоматически запоминать основные вещи.
> и в ней находится кусок кода, который написал не я, меня это немного смущает
Ну а ты как хотел? Ты же все равно вызываешь API функции или используешь чьи-то библиотеки и это нормально. Нельзя же сесть и с нуля начать писать всю ось, чтобы "ничего не смущало". Кстати, а про какие не твои куски кода ты говоришь?
> Но, вы сможете ее сесть и написать "за один раз"?
Если есть help - то да, без help - неизвестно, зависит от поставленных задач. Под windows реализовано значительно больше функций, чем под дос, так что и знать (помнить) тут надо тоже больше. И бессмысленно все это запоминать специально, главное знать, как это можно быстро найти и где, а основной мыслительный процесс (это - главное) надо направлять при этом не на воспоминания, что где находится, а на составление алгоритма работы программы.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 14.08.2003, 21:08
Отправитель: Bob Johnson
Отвечает masquer
Здравствуйте, a1!
Это можно один раз сделать, а потом копировать и править, если нужно.
Ответ отправлен: 14.08.2003, 17:37
Отправитель: masquer
Отвечает St
Привет, a1!
Я обычно беру простейший пример из пакета тасма (подправленный конечно) как шаблон и добавляю нужный мне код. Его надо сначала изучить и понять, тогда он не будет казаться чужим :)
Насчет Си - я его тоже не изучал и сам с трудом могу написать на нем хоть что-нибудь, но для перевода кода примеров на асм знать его хорошо и не обязательно - сложные места встречаются достаточно редко.
St
Ответ отправлен: 15.08.2003, 13:39
Отправитель: St
Отвечает Zedr0n
Доброе время суток, a1!
Ну, начнем с того, что это запоминать не надо. Нужно просто иметь MSDN под рукой, который тебе и подскажет, какие параметры, какие структуры и т.д, а вообще под винды я сам чаще использувую диалоговые окна, описываешь в ресурсах и юзаешь, никаких проблем с созданием, да и намного быстрее кодить получается. В принципе, проще юзать консольные приложения, для них окно создавать не надо ;)
Ответ отправлен: 14.08.2003, 16:10
Отправитель: Zedr0n
Отвечает Tigran K. Kalaidjian
Добрый день, a1!
За "один раз" у меня без ошибок не получается ничего и никогда =) А это уж и подавно... Хотя бы потому, что в процессе набора рука слетает и получается уже совсем не то... Т.к. на экран не смотрю, то и не замечаю...8(
Ответ отправлен: 14.08.2003, 16:14
Отправитель: Tigran K. Kalaidjian
Отвечает Lynx
Доброе время суток, a1!
А их не обязательно все помнить.
1. В любом справочнике даны описания этих структур.
2. В заголовочных файлах от любого компилятора их найти тоже можно!!! :)
Ответ отправлен: 15.08.2003, 17:05
Отправитель: Lynx
Отвечает dimka
Доброе время суток, a1!
Так в чём заключается твой вопрос?
Ответ отправлен: 18.08.2003, 10:48
Отправитель: dimka
Отвечает Maverick
Приветствую Вас, a1!
В большинстве тривиальных задач ты все равно не напишешь 100% свое, все уже давно написано, главное понимать то, что ты пишешь, тогда это не тупое передирание.
Я мало на память помню, пользуюсь справочниками и исходниками.
Ответ отправлен: 18.08.2003, 11:13
Отправитель: Maverick
Вопрос № 3916 |
Добрый день !
Напомните, пожалуйста, номер вопроса, в котором спрашивали про получение работы ассемблеристом.
В своем архиве и на RusFAQ.ru не получилось найти, ибо не помню ключевых слов.
Заранее спасибо
Тигран Калайджян
P.S. 2Greys: у меня все эти доки есть. Что до Billy Belcebu (в переводе в виде CHM-справки), то я его выкладывал и даже написал сюда, в рассылку:
http://kalaidjian.narod.ru/vir/vgw32.rar
Вопрос отправлен: 14.08.2003, 16:09
Отправитель: Tigran Kalaidjian
[Следующий вопрос >>] [Список вопросов]
Отвечает dimka
Доброе время суток, Tigran Kalaidjian!
?????!!!!!
Ответ отправлен: 18.08.2003, 10:52
Отправитель: dimka
Вопрос № 3918 |
Здравствуйте все!
Возник у меня такой вопрос - как в W9х можно узнать хендл окна завершения работы программы (которое вызывается тремя кнопками). Пробовал FindWindow, в качестве имени окна передавал "Завершение работы программы" - а возвращается 0. :((
Вообще, мне это надо, чтобы своей программой закрывать его (например, по событию таймера). Может, есть какой-то более простой способ (например, отслеживание нажатия этих кнопок)?
Заранее благодарен :))
ЗЫ: по предложению Тиграна - вещь полезная, если у кого времени на это хватит - будет прекрасно :))
Вопрос отправлен: 15.08.2003, 06:35
Отправитель: Ренат (renatka_f@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, Ренат!
Ты имеешь ввиду окно, которое открывается по Ctrl-Alt-Del? Нууу... Во время его появления на экране системная виртуальная машина больше ничего и не делает, кроме как обрабатывает это окно... Попробуй запусти winamp, а потом нажми на 3 кнопки - у тебя winamp начнет сразу заикаться (т.е. повторять тот участок буфера, который был у него на момент перед нажатием этих трех кнопок).
В то время, как на экране отображается это окно может работать только DOS задача. А из нее ты вряд ли что сделаешь...
А вообще - для чего тебе это надо? Чтобы не "сняли" твою программу? Тогда уж лучше используй RegisterServiceProcess, тогда твоя программа вообще не появится в этом списке.
Но в любом случае любая другая программа, которая позволяет завершать процессы (а это не сложно - TerminateProcess и все дела), FAR, например или WinTop из KernelToys смогут твой процесс убить. А чтобы и их обламать, надо уже патчить ToolHelp32, а это уже гораздо сложнее...
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 15.08.2003, 16:26
Отправитель: Bob Johnson
Отвечает Ramzes
Доброе время суток, Ренат!
Странно, FindWidow должна была найти окно...
может там какая-то проблема с русским текстом ?
Ответ отправлен: 15.08.2003, 16:32
Отправитель: Ramzes
Отвечает [L2]Max
Добрый день, Ренат!
Отслеживать нажатие кнопок это есьм HOOK метод, а alt-ctrl-del это системный хук и отловить его трудоемко, посмотри в справочнике (на крайняк зайди на firststep.ru), и посмотри функцию что то типа завершение работы
Ответ отправлен: 15.08.2003, 09:31
Отправитель: [L2]Max
Отвечает Greys
Доброе время суток, Ренат!
Зачем отлавливать хендл окна,а потом его закрывать, когда все намного проще, запрети, точнее подови действие трех веселых кнопочек. В user32.dll есть хорошая функция, которая заставляет винду забыть о этом злосном сочетании кнопок, хотя винда и забывает комбинации alt-tab и ctrl-esc, но и конечно же ctrl-alt-del. Т.е. вызываешь эту функцию SystemParametersInfoA(97,1,0,0), а разрешить злостнные кнопочки можно этой же функцией, но с другим вторым параметром SystemParametersInfoA(97,0,0,0). Так что думайте как ее лучше вызвать, можно даже через командную строку или ShellExecute или...
P.S. В скобочках указаны параметры!!!
С уважением, Greys!
Ответ отправлен: 15.08.2003, 21:55
Отправитель: Greys
Отвечает Евгений Иванов
Доброе время суток, Ренат!
Насчёт кнопок не получится...
А так это ООчень системное окно и его достать будет трудно!..
Ответ отправлен: 16.08.2003, 01:08
Отправитель: Евгений Иванов
Вопрос № 3919 |
Здраствуйте уважаемый эксперт!
Я напечатал в блокноте progu и когда я начал компилировать ее появилась ошибка:
ml Proga.asm /AT
Microsoft
Copyright
Assembling: Proga.asm
fatal error A1000: cannot open file: Proga.asm
И какую бы программу я не начал бы компилировать появляется эта ошибка.
А в TASM"е то же не получается.Когда я ввожу: TASM.EXE hello-1.asm то пишется что C:Windows asm.exe не является приложением Win32 и пишется что отказано в доступе.Тогда я пишу : TASM32.EXE hello-1.asm и появляется ошибка:
...
**Fatal** Command line: Can"t locate file: hello-1.asm
Error messages: 1
Warning messages: None
Passes: 1
Вопрос отправлен: 15.08.2003, 08:26
Отправитель: Олег
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Олег!
У тебя компилятор не может найт файл proga.asm - а куда ты его сохранил после того, как напечатал в блокноте? Я бы рекомендовал тебе использовать для начала FAR - в нем видно, в каком каталоге ты создал файл, путь к каталогу, где у тебя находится ml.exe (tasm.exe) пропиши в переменную PATH, а для компиляции - используй батники (bat файлы).
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 15.08.2003, 16:11
Отправитель: Bob Johnson
Отвечает dimka
Добрый день, Олег!
Компилируй при помощи TasmX
Ответ отправлен: 15.08.2003, 10:36
Отправитель: dimka
Отвечает Bob Johnson
Добрый день, Олег!
У тебя компилятор не может найт файл proga.asm - а куда ты его сохранил после того, как напечатал в блокноте? Я бы рекомендовал тебе использовать для начала FAR - в нем видно, в каком каталоге ты создал файл, путь к каталогу, где у тебя находится ml.exe (tasm.exe) пропиши в переменную PATH, а для компиляции - используй батники (bat файлы).
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 15.08.2003, 16:11
Отправитель: Bob Johnson
Отвечает Ramzes
Доброе время суток, Олег!
Наверное компилятор и исходник у тебя находятся в разных каталогах и поэтому компилятор не может найти файл.
Ответ отправлен: 15.08.2003, 16:27
Отправитель: Ramzes
Отвечает Bob Johnson
Добрый день, Олег!
У тебя компилятор не может найт файл proga.asm - а куда ты его сохранил после того, как напечатал в блокноте? Я бы рекомендовал тебе использовать для начала FAR - в нем видно, в каком каталоге ты создал файл, путь к каталогу, где у тебя находится ml.exe (tasm.exe) пропиши в переменную PATH, а для компиляции - используй батники (bat файлы).
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 15.08.2003, 16:11
Отправитель: Bob Johnson
Отвечает Eugene
Доброе время суток, Олег!
Если у тебя Win9x, то в файле C:\autoexec.bat найди переменную PATH и добавь в неё путь к файлам компиляторов. И тогда после перезагрузки компа пиши тоже самое, что писал, но в той папке, где лежит твоя прога.
Ответ отправлен: 15.08.2003, 09:47
Отправитель: Eugene
Отвечает Andrew Vext
Здравствуйте, Олег!
Либо поместите файл с программой в тот же каталог, что и masm, либо указывайте полный путь к файлу. Например
ml c:/my_programs/proga.asm
Для tasm то же самое.
Ответ отправлен: 15.08.2003, 11:42
Отправитель: Andrew Vext
Отвечает [L2]Max
Доброе время суток, Олег!
Читай по англ, ФАТАЛЬНАЯ ОШИБКА - не найден файл ****
Ты путь не правильно указал
Ответ отправлен: 15.08.2003, 09:33
Отправитель: [L2]Max
Отвечает _vt
Доброе время суток, Олег!
Файл proga.asm должен быть в текущем каталоге...
---===*** Testing E-Man 1.5 ...***===---
Ответ отправлен: 15.08.2003, 21:22
Отправитель: _vt
Отвечает Евгений Иванов
Здравствуйте, Олег!
Текущий каталог не тот.
Ты запускаешь где?
В FAR?
Или в "выполнить"? :-)
Если второе, тогда всё ясно...
Установи FAR и будь счастлив!
Ответ отправлен: 16.08.2003, 01:08
Отправитель: Евгений Иванов
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (39) C / C++ (30) Perl (3) Builder / Delphi (21) Pascal (27) Basic / VBA (12) Java / JavaScript (9) PHP (8) Криптография (10) WinAPI (18) |
Пользователю Windows 95/98/Me (48) Windows NT/2000/XP (56) "Железо" (44) Поиск информации (27) |
Администратору Windows NT/2000/XP (27) Linux / Unix (11) |
Юристу Гражданское право (10) Семейное право (6) Трудовое право (7) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||