Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 557
от 04.06.2003, 07:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3359 Отправлено ответов: 9873 Активность: 293.9 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Ramzes Статус: Профессиональный Общий рейтинг: 126.36 URL: Microsoft homepage [Подробней >>] |
Дмитрий Статус: Опытный Общий рейтинг: 151.31 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 131.27 Телефон: (8442) 750522 [Подробней >>] |
[MozgC] Статус: Профессиональный Общий рейтинг: 171.29 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 151.3 URL: Программирование [Подробней >>] |
Hayk Статус: Доверительный Общий рейтинг: 111.21 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.12 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 138.42 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 110.69 URL: Мой сайтик... [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 122.5 URL: моя рассылка по Protected Mode [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 114.56 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3304. Добрый день эксперты! Почему комне прекратила приходить рассылка? Зараннее благодарю.... (ответов: 5)
Вопрос № 3305. Привет, ЭКСПЕРТЫ! akul, в выпуске 510, Вы писали ,что можете залить на мыло Win2k SDK? Я бы с радост... (ответов: 1)
Вопрос № 3306. Привет, эксперты! Объясните, плиз, как можно практически использовать IPC$"" в Windows NT/... (ответов: 1)
Вопрос № 3307. Добрый день, Bob Johnson! >>изначально-то вопрос был про WH_KEYBOARD... Прости за настойчивость но ... (ответов: 1)
Вопрос № 3308. Добрый день ув.Эксперты... Спасибо за ответы на вопрос № 3300 Возможно ли запретить загрузку более о... (ответов: 6)
Вопрос № 3309. Добрый день ! Как под Win98 забирать значения сопротивлений резисторов, составляющих джойстик (в у.е... (ответов: 1)
Вопрос № 3310. Здравствуйте, уважаемые эксперты. Помогите, пожалуйста! Программа должна обрабатывать прерывания от ... (ответов: 1)
Вопрос № 3311. Здравствуйте! Не подскажете как мне можно перевести таблицы из Wordа в таблицы Excelевского формата?... (ответов: 3)
Вопрос № 3312. Привет Всем экспертам, кто хоть немного разбирается в реверсинге и исследовании програм. Я новичок в... (ответов: 4)
Вопрос № 3313. Здравствуйте, уважаемые эксперты. Вопрос вот в чём ! 1.Нужен ли в защищённом режиме ТSS?Можно ли бе... (ответов: 4)
Вопросов: 10, ответов: 27
Вопрос № 3304 |
Добрый день эксперты!
Почему комне прекратила приходить рассылка?
Зараннее благодарю.
Вопрос отправлен: 30.05.2003, 08:49
Отправитель: yuran (yuran@male.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ramzes
Приветствую Вас, yuran!
Наверное ты от нее отписался (случайно)
Ответ отправлен: 30.05.2003, 13:43
Отправитель: Ramzes
Отвечает Дмитрий
Приветствую Вас, yuran!
Сходи на subscribe.ru, проверь состояние своих подписок. Может ошибка какая приключилась. Кстати! Это чего: @male.ru? Может причина в твоей почтовой службе?
Ответ отправлен: 30.05.2003, 10:26
Отправитель: Дмитрий
Отвечает Lynx
Приветствую Вас, yuran!
Если она всем приходит, а тебе нет, значит у тебя что то не так. Зайди на RusFaq.ru и подпишись заново.
Ответ отправлен: 30.05.2003, 15:05
Отправитель: Lynx
Отвечает [MozgC]
Ну подпишись заново =)
Ответ отправлен: 30.05.2003, 14:46
Отправитель: [MozgC]
Отвечает Bob Johnson
Добрый день, yuran!
Ну это тебе надо на subscribe.ru обратиться, потому что рассылка идет оттуда. Найди свой пароль на рассылку и посмотри статистику - может быть у тебя ящик был переполнен, и поэтому она перестала приходить.
* EMan1.1: --==** Eternal power **==--
Ответ отправлен: 30.05.2003, 18:33
Отправитель: Bob Johnson
Вопрос № 3305 |
Привет, ЭКСПЕРТЫ!
akul, в выпуске 510, Вы писали ,что можете залить на мыло Win2k SDK?
Я бы с радостью принял, т.к. скачать с инета нет возможности, а почта халявная. Рад буду поделиться своми утилями, доками или еще чем-нибудь.Жду ответа!
Вопрос отправлен: 30.05.2003, 11:33
Отправитель: TT (KunaevNA@PosolskyDom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ramzes
Добрый день, TT!
КАЙФ !!!!
У тебя что, размер ящика 700 MB ?
Ответ отправлен: 30.05.2003, 13:42
Отправитель: Ramzes
Вопрос № 3306 |
Привет, эксперты!
Объясните, плиз, как можно практически использовать IPC$"" в Windows NT/XP. Заранее благодарен, Дмитрий.
Вопрос отправлен: 30.05.2003, 13:24
Отправитель: Дмитрий (demetrius2003@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Hayk
Приветствую Вас, Дмитрий!
Est' kucha sposobov reaizacii IPC. Naprimer ispol'zovat' RPC ili DCOM. Novaya texnologiya .Net remoting. Ty doljen podrobno izuchit' zadachu i vybrat' optimal'nuyu texnologiyu. Mojet legche vsego ispol'zovat' file mappings. Tut glavnopye ya dumayu opredelit' IPC u tebya vnutri odnoy sistemy ili rabotayet cherez network. Tut uj File Mappings ne pomogut ... tak chto vsyo zavisit ot reshayemoy problemy ....
Ответ отправлен: 30.05.2003, 14:00
Отправитель: Hayk
Вопрос № 3307 |
Добрый день, Bob Johnson!
>>изначально-то вопрос был про WH_KEYBOARD...
Прости за настойчивость но текст вопроса изначально был такой:
У меня программа на Delphi, но требуется "низкоуровневая помощь".
В-общем, эта программа должна выводить значения нажатых клавиш, но она выводит нажатую клавишу, только если активна форма этой программы. Мне нужно, чтобы она показывала клавиши, нажатые в других приложениях (key logger). Если форма неактивна, то выдаётся только звуковой сигнал (beep), а значения WPARAM и LPARAM остаются неизменны.
Форма Form1 состоит из трёх TLabel(label1,label2,label3) и одного таймера(Timer1).
ВОПРОС: Как сделать, чтобы она регистрировала клавиши, нажатые в других приложениях?
Использование ловушки типа WH_KEYBOARD не является единственно правильным решением.
Вот я и предложил использовать тип ловушки WH_JOURNALRECORD вместо WH_KEYBOARD.
Тем более, что в данной ситуации, оно еще и проще в реализации.
С уважением, Евгений.
Вопрос отправлен: 30.05.2003, 15:29
Отправитель: Evgen
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Evgen!
Что проще, согласен. Но ты как-то не очень настойчиво обратил внимание на то, что ты используешь WH_JOURNALRECORD вместо WH_KEYBOARD и не очень подробно описал ее преимущества, а я больше подумал об общей проблеме, которая возникает при установке хуков из DLL, т.к. сам с этим заморачивался.
А когда у меня была такая же задача, я использовал WH_KEYBOARD_LL (тоже вызывается из контекста потока, его установившего), потому как моя программа должна была работать только под НТ.
* EMan1.1: --==** Eternal power **==--
Ответ отправлен: 30.05.2003, 21:25
Отправитель: Bob Johnson
Вопрос № 3308 |
Добрый день ув.Эксперты...
Спасибо за ответы на вопрос № 3300
Возможно ли запретить загрузку
более одной копии приложения...
pAcU
Вопрос отправлен: 30.05.2003, 19:00
Отправитель: pAcU (pacu@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает vitya
Доброе время суток, pAcU!
например при создании программы создаешь именованый мьютекс (CreateMutex), если же он уже создан, то просто выходишь из программы. При завершении программы (единственного экземпляра), надо не забыть этот мьютекс удалить.
Ответ отправлен: 31.05.2003, 12:53
Отправитель: vitya
Отвечает masquer
Доброе время суток, pAcU!
Кончно, возможно. Методов - море. Мутексами, поиском окна, etc.
Ответ отправлен: 30.05.2003, 19:14
Отправитель: masquer
Отвечает [MozgC]
можно при запуске приложения записывать какойнить параметр по определенному адресу в памяти, и при запуске еще одной копии программы, она будет проверять выставлен ли этот параметр и если да, то
mov ah, 4c00
int 21
Ответ отправлен: 30.05.2003, 19:56
Отправитель: [MozgC]
Отвечает Bob Johnson
Здравствуйте, pAcU!
Только самому - т.е. когда твое приложение запускается, оно, например, ищет окно своего класса (FindWindow), и если находит, то не запускается. Можно сделать с созданием именованного мутекса (CreateMutex), при этом в случае запуска первый раз функция вернет хэндл мутекса, а GetLastError - 0, во второй (и т.д.) раз - GetLastError вернет ERROR_ALREADY_EXISTS.
Еще, конечно, можно анализировать список работающих процессов на наличие твоих, но это уже слишком...
* EMan1.1: --==** Eternal power **==--
Ответ отправлен: 30.05.2003, 23:14
Отправитель: Bob Johnson
Отвечает Ramzes
Приветствую Вас, pAcU!
Да
в проложении создаешь Shared секцию, и там держишь какую-либо переменную, которая показывает кол-во запущенных копий.
Ответ отправлен: 31.05.2003, 13:07
Отправитель: Ramzes
Отвечает Portnov
Приветствую Вас, pAcU!
Можно... Напр., через семафоры (мутексы)...
If (!(h=CreateMutex(0,TRUE,"myMutex")))
{
//выдаем сообщение об ошибке и вываливаемся
}
//работаем как положено
//...
//перед нормальным выходом удаляем мутекс:
CloseHandle(h);
Если у нас не получается создать мутекс, значит, уже есть мутекс с этим именем, а значит, одна копия уже запущена...
С уважением, Portnov.
Ответ отправлен: 01.06.2003, 17:02
Отправитель: Portnov
Вопрос № 3309 |
Добрый день !
Как под Win98 забирать значения сопротивлений резисторов, составляющих джойстик (в у.е.)?
Под ДОС это делается с помощью 15h-го прерывания. Покопавшись в списках Ральфа Брауна, я наткнулся на описание порта джойстика 201h.
Так вот: принимаю байт из этого порта. Статус кнопок получаю нормально (4 верхних бита al в инвертированном виде), а вот 4 нижних бита всегда на нуле. Что делать ?(цепляю резистор на 30Ком на контакты 1 и 3 Game-порта).
Кстати, под дос считывается всё нормально.
Процедуру писал в Delphi. На форме есть таймер(timer1 вызывается 100 раз в сек.) и окно для ввода(edit1). Сама процедура в приложении.
Заранее благодарю за ответ
Тигран
P.S. никто не знает, где купить Арвид-1020 ?
Приложение:
Вопрос отправлен: 30.05.2003, 19:47
Отправитель: Tigran Kalaidjian (kalaidjian@pochtamt.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Дмитрий
Здравствуйте, Tigran Kalaidjian!
Сразу хочу сказать, что с джойстиками и их программированием я не сталкивался. Но я занимаюсь обработкой звука. Так вот, есть такое понятие - вращающиеся MIDI-контроллеры. Используются они совместно с софт-синтезаторами (в основном) для управления параметрами последних в реальном режиме времени (pitch/phase shift, AM/FM и т. д.). Практически все программы позволяют взамен дорогостоящих контроллеров использовать джойстики для тех-же целей. Ось X - один параметр, ось Y - другой. Все это дело проходит скорее всего через DirectX. А дрова на Gameport идут вместе с звуковой картой (в DirectX - msjstick.drv). Не уверен, но думаю, что для Delphi есть компонент, в котором присутствуют функции работы с Gameport. Попытаюсь разузнать у знакомых и если чего найду, скину на мыло.
Ответ отправлен: 02.06.2003, 07:37
Отправитель: Дмитрий
Вопрос № 3310 |
Здравствуйте, уважаемые эксперты. Помогите, пожалуйста! Программа должна обрабатывать прерывания от двух кнопок подключенных к последовательному порту.
Вопрос отправлен: 30.05.2003, 21:08
Отправитель: Mark
[Следующий вопрос >>] [Список вопросов]
Отвечает Дмитрий
Доброе время суток, Mark!
На мой взгляд эта задачка должна решаться проще. Зачем сразу прерывания? И зачем последовательный порт? Ты представляешь, какую работу тебе придется проделать, чтобы заставить последовательный порт ПРИНЯТЬ от этих двух кнопок данные? Придется конструировать нечто. Это нечто должно будет кодировать нажатия кнопок в байт и пересылать этот байт через последовательный порт в комп. Проще будет использовать параллельный порт (если это возможно по условию задачи). Там все намного проще. Сигналы Data совместно с Gnd используй для своих кнопок. В проге просто проверяй в принятом байте нужные тебе битики. И скорее всего придется поморщиться с Busy и Strob. Busy говорит компу, что ты ничего отправить пока не можешь. А по поступлению Strob проге можно читать состояние твоих кнопок. Не знаю как современное железо, но когда-то на Spectrum этого хватало, чтоб запустить принтер ;) Удачи!
Ответ отправлен: 02.06.2003, 08:03
Отправитель: Дмитрий
Вопрос № 3311 |
Здравствуйте! Не подскажете как мне можно перевести таблицы из Wordа в таблицы Excelевского формата?
(не обязателшьно программно, просто мож есть проги готовые уже).
ps: извините что сюда пишу - просто сдесь самые умные все.
Вопрос отправлен: 31.05.2003, 00:19
Отправитель: Эдвард Самохвалов (edsam@spidernet.com.cy)
[Следующий вопрос >>] [Список вопросов]
Отвечает [MozgC]
"ps: извините что сюда пишу - просто сдесь самые умные все."
Хорошо сказал =)
Ответ отправлен: 31.05.2003, 00:45
Отправитель: [MozgC]
Отвечает Bob Johnson
Здравствуйте, Эдвард Самохвалов!
Программно будет лучше. На VBA, естественно. Значит так - в ворде пишешь процедуру, которая анализирует все таблицы документа - Document('name').Tables, кажется. Она же, соответственно, создает новый файл Excel (или добавляет в старый) (на VB это достаточно просто) и заполняет его данными из таблиц ворда. При этом процедуру можно встроить в документ, а можно в шаблон normal.dot - тогда будет работать с любым документом (только выбор придется сделать).
* EMan1.1: --==** Eternal power **==--
Ответ отправлен: 31.05.2003, 16:37
Отправитель: Bob Johnson
Отвечает Дмитрий
Здравствуй еще раз, Эдвард Самохвалов!
Программно вряд ли получится сделать все качественно. Мой совет: делай все только через Clipboard руками! При этом ты будешь контролировать все данные и их перемещения. Можно в принципе и на VBA. Но времени уйдет в 20 раз больше, чем на ручное редактирование. Плюс ко всему придется практически заново форматировать эти таблицы (это кстати в любом случае).
Ответ отправлен: 02.06.2003, 08:37
Отправитель: Дмитрий
Вопрос № 3312 |
Привет Всем экспертам, кто хоть немного разбирается в реверсинге и исследовании програм. Я новичок в этом деле и хотел бы спросить кое-что. У одной программы, при запуске постоянно вызывается окно, с сообщением что она не зарегистрирована, и потом ниче не происходит и все ок вообщем-то но окно надоедает. Как можно от него избавиться ?
Вопрос отправлен: 31.05.2003, 01:31
Отправитель: Athlon
[Следующий вопрос >>] [Список вопросов]
Отвечает Lynx
Доброе время суток, Athlon!
Лично я свой WinRAR от NagScreen'a лечил редактором ресурсов. Просто удаляешь из ресурсов эту форму и всё. Но работает примерно в 50 процентах случаев. Другой вариант поискать в коде программы участок где создаётся это диалоговое окно и выявить, в каких случаях на него передаётся управление и удалить этот вызов или прыжок на него.
Ответ отправлен: 31.05.2003, 12:02
Отправитель: Lynx
Отвечает [MozgC]
Если это окно - MessageBox, то дизасемблируй прогу, найди этот MessageBox и исправь перед вызовом ф-ии push 0, на push 1 (или в файле 64 00 на 64 01)
Ответ отправлен: 31.05.2003, 01:42
Отправитель: [MozgC]
Отвечает Bob Johnson
Приветствую Вас, Athlon!
Если у тебя нет Soft Ice, то можно сделать так:
1. Смотришь на текст, который появляется в этом окне.
2. Дизассемблируешь программу в W32DAsm.
3. Ишешь в исходном коде ссылки на этот текст (т.е. просто делаешь поиск этого текста).
4. В большинстве случаев ты его находишь. Если нет, то смотри по ресурсам диалогов и т.д.
5. Анализируешь код, который работает с текстом и убираешь процедуру его вывода (окна, MessageBox и т.д.)
* EMan1.1: --==** Eternal power **==--
Ответ отправлен: 31.05.2003, 16:37
Отправитель: Bob Johnson
Отвечает Дмитрий
Доброе время суток, Athlon!
Универсальных рецептов нет, но иногда помогает использование редактора ресурсов.
Ответ отправлен: 03.06.2003, 09:50
Отправитель: Дмитрий
Вопрос № 3313 |
Здравствуйте, уважаемые эксперты.
Вопрос вот в чём !
1.Нужен ли в защищённом режиме ТSS?Можно ли без него?
Отключить страничную адресацию можно , а TSS ?
2.Как из текущего участка кода перейти к другому
по таблице GDT или LDT при этом запрашивая защищённость сегмента.Ведь обращаясь к селектору, должен быть ещё указан запрос (3? bita).Отдельной команды для этого нет.Опереционка
должна используя таблицы разрешить или запретить доступ к сегменту!...Не пойму ,Биты сегментных регистрах изменять что-ли .
Спасибо!
Вопрос отправлен: 31.05.2003, 07:46
Отправитель: Yuri
[Следующий вопрос >>] [Список вопросов]
Отвечает vitya
Здравствуйте, Yuri!
2. если твой код работает в ring0 то у тебя есть доступ к любому сегменту. И ты можешь загрузить в cs любой сегмент. Если же ты работаешь, например, в ring3 то тебе cs вообще загрузить не удастся. А разрешено или нет обращаться к сегменту определяет процессор, ОС только должна правильно формировать GDT и LDT таблицы.
Ответ отправлен: 31.05.2003, 12:44
Отправитель: vitya
Отвечает Broken Sword
Здравствуйте, Yuri!
1. Нет, TSS не НУЖЕН. Без него МОЖНО. TSS "отключить" МОЖНО.
2. Читай главу "Protection" в Intel Manual том 3, или в ближайшем выпуске моей рассылки по PM (адрес внизу)
Ответ отправлен: 31.05.2003, 10:29
Отправитель: Broken Sword
Отвечает ASMодей
Доброе время суток, Yuri!
1. Intel рекомендует при переключении в защищенный режим сразу
выполнять команду LTR, загружая в регистр TR сегмент TSS. Но
практика показала, что если не использовать многозадачность,
то работать с TSS не обязательно.
2. Именно биты сегментных регистров, точнее биты селектора. Дело
в том, что когда ты загружаешь селектор в сегментный регистр,
ты сразу задаешь ему смещение селектора в таблице (биты 15-3),
какую таблицу использовать (бит 2 = 0 - GDT, 1 - LDT) и уровень
привилегированности (биты 1-0). Так что отдельно ничего менять
не надо, задается все и сразу. А уже при обращении в этот сегмент
если прав доступа не будет хватать, возникнет исключение, которое
операционка и будет обрабатывать.
Ответ отправлен: 31.05.2003, 13:01
Отправитель: ASMодей
Отвечает Ramzes
Добрый день, Yuri!
1.В принципе TSS используется только многозадачными операционными системами, так что под ДОС он нак или иначе не используется.
А в многозадачной ОС ты врядли обойдешся без ТSS, т.к при переключении задач туда зписывается текущее состояние задачи.
2.При переходе от одного участка кода к другому ОС сама автоматически проверяет права досупа (2 бита уровня привилегий селектора с уровнем доступа дескриптора). А уровень привилегий селектора ОС устонавливает сама, ты не можешь его изменить.
Ответ отправлен: 31.05.2003, 13:03
Отправитель: Ramzes
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (37) C / C++ (30) Perl (5) Builder / Delphi (15) Pascal (28) Basic / VBA (11) Java / JavaScript (11) PHP (7) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (35) Windows NT/2000/XP (30) "Железо" (26) Поиск информации (14) |
Администратору Windows NT/2000/XP (14) Linux / Unix (8) |
Юристу Гражданское право (5) Семейное право (2) Трудовое право (3) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||