Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 593
от 18.07.2003, 08:20
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3721 Отправлено ответов: 10935 Активность: 293.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 121.89 URL: Методы оптимизации работы ПК [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.21 URL: Программирование [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 122.14 [Подробней >>] |
Евгений Иванов Статус: Доверительный Общий рейтинг: 133.64 [Подробней >>] |
Andy Статус: Доверительный Общий рейтинг: 107.11 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 113.7 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.23 [Подробней >>] |
Теоретик Статус: Начальный Общий рейтинг: 119.44 [Подробней >>] |
Hangatyr Статус: Опытный Общий рейтинг: 114.16 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 121.62 URL: мой сайт [Подробней >>] |
Igoryk Статус: Профессиональный Общий рейтинг: 111.55 URL: IgorykSoft [Подробней >>] |
Илья Статус: Опытный Общий рейтинг: 103.54 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 119.68 Телефон: (8442) 750522 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3689. Zdravstvuite uvazhaemiye tov. eksperti! (u menya opyat' russkiy shift zaklinilo :(( A kto takaya Nat... (ответов: 2)
Вопрос № 3690. Hubba - ЛОХ! Кто не согласен - тоже.... (ответов: 1)
Вопрос № 3691. Здравствуйте, уважаемые эксперты. Подскажите, пожалуйста, код конца файла. Имеется файл определенно... (ответов: 8)
Вопрос № 3692. Здравствуйте! Подскажите, пожалуйста, каким образом можно программно (на Ассемблере) выдвинуть лоток... (ответов: 8)
Вопрос № 3693. Здравствуйте, уважаемые эксперты! Вобщем, проблема такая. Если на значке звуковой карты в панели упр... (ответов: 1)
Вопрос № 3694. доброе время суток,профессионалы. Поставил себе Линь да вот только драйверов для принтера canon i320... (ответов: 1)
Вопрос № 3695. Скажите эксперты! Как вытащить программно имя пользователя, пароль и телефон его провайдера? Я пишу ... (ответов: 2)
Вопрос № 3696. Каким образом обыкновенный калькулятор вычисляет значения функций sin x cos x ln x ... (ответов: 3)
Вопросов: 8, ответов: 26
Вопрос № 3689 |
Zdravstvuite uvazhaemiye tov. eksperti!
(u menya opyat' russkiy shift zaklinilo :((
A kto takaya Natalia Berezovets? Rasskazhite po-podrobnee pls. Ya zaintrigovan...
to Natalia: budete na Kipre - milosti prosim zaglianut' :)))
PS: sorry za offtopic, no zdes' [opyat' zhe] vse samiye umniye sidiat... ne v VB zhe mne pisat' :)
Вопрос отправлен: 12.07.2003, 17:37
Отправитель: Edward
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Доброе время суток, Edward!
НБ - частая посетительница нашей конференции. Любит пообщаться с большим кол-вом экспертов =). Если интересно, можете посмотореть архив рассылки.
Ответ отправлен: 13.07.2003, 22:25
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Добрый день, Edward!
Ох уж эта Наташа Б.... Кто она на самом деле (hubba, bobjohnson или кто еще) мы так и не знаем... Она ушла раньше, чем успела (читай - захотела) что-то о себе рассказать. Ты же знаешь - девушки они то внезапно появляются, то внезапно исчезают... И к этому надо быть готовым, более того - и то, и другое надо уметь ценить!
> budete na Kipre - milosti prosim zaglianut'
Весьма интересное предложение от человека, который даже не оставил своего электронного адреса :)
> no zdes' [opyat' zhe] vse samiye umniye sidiat..
И ты думаешь, что значит нам проще ответить на вопрос "A kto takaya Natalia Berezovets?" :) ?
Значит так - Натальи Березовец не существует. Она плод воображения (назовем это цифровой фантазией) программно-аппаратного конвейера системы rusfaq. Она некая ошибка, сбой, результат внешнего воздействия (атаки) или преднамеренно созданный Автором фрагмент всеобщей программы, несколько выделяющийся на фоне заранее спланированного бесконечного информационного потока системы. Место появления (проникновения) и причины этого на данный момент однозначно не определены, но можно утверждать, что они находятся в пределах самой системы, преимущественно в начальной ее части.
Более важным вопросом следует считать исходные цели и электрические мотивы такого аномального функционирования как начальной части, так и подключенных впоследствии модулей системы. Анализ всего события в целом позволяет сделать вывод о потенциальной нестабильности как входных информационных фильтров и большинства процедур ее пре- и пост-обработки, так и части нагрузок результирующего информационного канала, включенных в цепь обратной связи системы, что можно рассматривать как оправданную потребность в цифровом самосовершенствовании конвейера.
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 15.07.2003, 01:29
Отправитель: Bob Johnson
Вопрос № 3690 |
Hubba - ЛОХ! Кто не согласен - тоже.
Вопрос отправлен: 12.07.2003, 21:43
Отправитель: да признаю, hubba - лох (zwitter@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Здравствуйте, да признаю, hubba - лох!
Ну, конечно, все лохи, ламеры и т.д и т.п. Как же без этого??? Ну и зачем тут ваше мыло, пишите на наше...
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 13.07.2003, 01:26
Отправитель: _vt
Вопрос № 3691 |
Здравствуйте, уважаемые эксперты. Подскажите, пожалуйста, код конца файла.
Имеется файл определенного размера. Нужно его обрезать. Наверное, самый лучший вариант его обрезать это поместить в нужном месте конец файла. Если я ошибаюсь, большая просьба, скажите как правильно сделать это. Большой спасибо.
Вопрос отправлен: 13.07.2003, 12:01
Отправитель: a1 (a111_666@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, a1!
Отсылаю на личный ящик!
А так читай ответы на 3680 вопрос. Скоро выйдет... :)
Пока пришёл на 3668... :)
Ответ отправлен: 13.07.2003, 22:31
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Доброе время суток, a1!
Под windows для этого вызывается функция SetEndOfFile, которая обрезает файл на текущей позиции. Под DOS вроде то же самое (тоже какая-то функция вызывается).
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 14.07.2003, 01:00
Отправитель: Bob Johnson
Отвечает _vt
Приветствую Вас, a1!
Копия моего ответа на вопрос №3680:
Для DOS алгоритм следующий: открываешь файл с правами на запись (ax=3d02h/int21h), перемещаешь указатель на нужную позицию
(ax=4200h,bx=хендл файла, cx:dx=смещение от начала файла/int21h), а затем вызываешь функцию 40h(запись в файл или устройство), причем
cx=0(записываешь 0 байт). Закрываешь файл (ah=3eh,bx=хендл/int21h). Всё!
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 14.07.2003, 01:56
Отправитель: _vt
Отвечает Andy
Доброе время суток, a1!
Символ конца файла 01ah. Можно и с его помощью обрезать, а можно прочитать с диска и записать меньше байт, всё зависит от того, что ты делаешь...
Ответ отправлен: 14.07.2003, 06:18
Отправитель: Andy
Отвечает ASMодей
Доброе время суток, a1!
Какой еще код конца файла? Нет никакого кода. Размер файла определяется записью в файловой системе. Для изменения размера файла в ОС есть специальные функции.
P.S.
Как ты вообще себе представляешь код конца файла? Предположим у меня есть файл, заполненный байтами со значениями от 0 до 255. И что, после какого-то байта у меня файл обрежется?
Ответ отправлен: 14.07.2003, 10:33
Отправитель: ASMодей
Отвечает Tigran K. Kalaidjian
Добрый день, a1!
АФАИР нет такого символа, как конец файла. Признаком конца файла при чтении является то, что число _реально_ прочитанных байт меньше числа "заказанных" байт. Т.е., например, мы хотим прочитать 5 байт, а на самом деле прочитывается 2 байта. Обрезать файл можно так: копировать содержимое обрезаемого во временный файл до достижения нужного предела, затем оба файла закрываются, обрезаемый удаляется, а временный переименовывается в обрезаемый.
Пример могу написать и прислать на мыло, если надо - пишите на kalaidjian@pochtamt.ru
Ответ отправлен: 14.07.2003, 11:09
Отправитель: Tigran K. Kalaidjian
Отвечает Ayl
Здравствуйте, a1!
Код конца файла есть только у текстовых файлов. Это символ с кодом 26 (Ctrl+Z). Для всех другиз типов файлов спецкода нет. Конец файла определяется по его размеру в каталоге.
Чтобы обрезать файл, нужно открыть файл в режиме чиения и записи, переместить указатель на нужную позицию (функция 42h прерывания 21h) и затем выполнить запись в файл (функция 40h) с количеством байт, равным 0 (CX=0).
Ответ отправлен: 14.07.2003, 12:29
Отправитель: Ayl
Отвечает Теоретик
Приветствую Вас, a1!
На интуитивно-мистическом уровне конец файла у меня ассоциируется с числом 26. Однако здравый смысл подсказывает, что это не верно, так как в бинарном файле могут встретиться абсолютно любые байты. :)
Если говорить про DOS, то для обрезания файла используются функции 42h (перемещение указателя файла) и 40h (запись в файл).
Для обрезания файла необходимо поместить указатель на новый конец файла с помощью функции 42h, а затем обрезать его, записав 0 байт с помощью функции 40h.
Это будет выглядеть примерно так:
mov ah, 42h ; номер функции
mov bx, Handle ; дескриптор файла
mov cx, HighNewEnd ; старшие байты позиции нового конца
mov dx, HighOldNew ; младшие байты позиции нового конца
mov al, 0 ; делаем отсчёт от начала файла (можно поставить 1 - от текущей позиции или 2 - от текущего конца файла)
int 21h ; вызываем служебное прерывание DOS
mov ah, 40h
mov bx, Handle
mov cx, 0 ; Количество байт = 0, означает обрезание файла
int 21h
Ответ отправлен: 14.07.2003, 20:16
Отправитель: Теоретик
Вопрос № 3692 |
Здравствуйте! Подскажите, пожалуйста, каким образом можно программно (на Ассемблере) выдвинуть лоток CDROMа?
Вопрос отправлен: 13.07.2003, 15:10
Отправитель: Владислав Александрович
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, Владислав Александрович!
Я думаю, не много...
Не я писал...
Думаю, сможете расжать... :)
Ищите через www.filesearch.ru = BINHEX.*
(This file must be converted with BinHex 4.0)
:#$-f16)Z8N&5!%P#66p*3Ndr!*!%$$!!N!6(pe*KFL%D"!ld(-)!!d!N!FGN!"
dJ)!S!1d,!!#63J!!!Tj$L*kMXqdZ(68)!#!!N!-c0MNb,P4B9+FB)!*SIQ4$l25
Cr0&qR(h#hDc!6(ij@ih[Xrla0qU9A$$001!HP0"'4m2D(25CJlNJ8@E94leellC
l+dUq$fDH#$a@'#FTBIr5X@GVC*e-5dH-VI2B9JVhC92eLH)Y@D$fA(im'JQFmTC
(05GbcGB%lQc'60V)N!#K%,aE,8lfiF"dIi%i5QmkA+raI"YA2Y)%Z3E)1-[6dc[
r[i*Ef'2Jm-Y"$bP9daQ[*qeVFbmP!l*T9F1dBef&kILrBB8TGql[EQCMBL"LapR
d5cHh[TBq'he3KqD#YKT6p%NEp!KakBq%M%NrrGDjI121j'9e**8S[BQ4ESM,K
X)TJIhk-9%c[hkhd$HZ&qS)N!"%T2FZ-'a&-T"+BjFaA#T@%UBrSjEF#FFMFf
XU&Xr#8Tq4VkcQ0jmJ6ZXqeC*%%[6aSQHqhHlTZ"'p1ph9*h(Qj#KA&T(#M8p9I
K8,H#U8ZE8-5lhrJYXa8YUNY$*#fYqRCAe&Zj1('13%#PDIIkJ"4E4i+Qp5XB)$
BcXV-QXK(pbQr6[(VLBKPh5U@5PrP5#P"fp,-CeF$(81HXNTNEC0mM"b2[hQr
L%''c$B+M5qMk@!HMU+a4"paQJ'U6S"MF'556)m4V*3,ZD3NBq9ZI14F6!9HJlb'
HZ+AUHIBN*jAdI,i(Dc&q9,Sji4$PXr#eAXe4+b5j!!BTG5kj(%fk[#8Z,ClST
ccbE--$F+fp6dk'54k-k%@fKRUhcH!p-92BN!acZ9r)"mMLB@iQ3B%3F"D@C(!bl
NYUDLU0Y-FGma4(B95'mZ'(SAB6l!3(4V,XD,Zada!#VrF-m9GH5!#r$0DPZ0fY
RTK"pUZai,,a"a*IDC6F-2,PRVDPKKJaV1A('YieI6h$q+V481U3A0LeC8ik"YHM
[q@T$B8GXAjAMa,22#,+Vmk6E$+UX2r0UMF!XMecRAmBBiZeEc)h!3K254rkf6bZ
9I6[9dN'[-)!F21DMhfc6X'a,8Qb,U3if@JM([@31jU1Qbahlkl*')bh"E*i(&1Y
p'YfRJD+kp0BUTL99TeXKZe#YeGdZiA62@Gmk1q@Ebl0pmr(S#p@i-RF5I19$"8
UZlh8HQ$-D2hV*aUMAQ06ZDld@,N!pq%-rJ,YVhd(GrY0P(3N&2kkPB#b"AdSJ
&MTJ(MpY(Ff[,R9[fd3*p2d'c8I2D+%QkEiT!j5ZXmG!3#h)HJIXmNVlb2[h,G-Z
cjE1Q#!)Pa2A%qaXSY%Y!X+FYA%$hQLUM0dHji1E#amFbLA5VEL4RBR(&-2f$(+
Q&-qai3iY"TKQk$8iJ09I03(6Ep5jAkB3q$(&3)#Fc&GYQYK3(J%dL,XEf1h3G
l#GF0IB(Rm4J$p,Fl980H+L'0BK)3++S0LAN3UQ0XR-qeqmX(p(&3T4bC8f)lZ
mejPX6&X#X$6&GaR1YQm2D1AipMMiJj[f+53M@#bR4LMJSG2#J1T08+Y1c&mA(FU
MmkYrF1Qb)C6&p+RYlTU#ke8aCrjlJAEqDqIZ8!'P5iD2kUCQ+EQJ$lf*Y6p&K,
!bP2,e,2&im+919f*Xf%KM"-%+6j+XGjM#)!Vm[hVCPfEPK'Er)'S42C0Ym310k
jIP3"eDVEiBfC)$F(rT#1P5&Qb)Y5ijFr(,'*V8i3*"cc3SRNR+l1qEDIQ@c%
2("5Nk8pM1#"5R+e185Q"B2'V!TQUVp(-L8',ak+)p04XZ)5P*@Bpim-H+RVB"0
0)6fB+ZFcISHk&G3VTe4[TFC'qpM@$98I5mAr%%dQ)XSGClI4Z($'2QT@bVl1X
P1,S)BjD0q(C5U0GcR9Nkdq1[(Tc8@V-4CZD(C0LeBek3BHk'-BbdYpEAJD@jG1
8#A(K%Z!S0hpBhE[UULd"f!PZ,9,hZfI&8L!$+L[d#ba"69D#56)4XqJ',E8+Pi
NME4ej*Yf26-!@aJ9FGYk!'%Ki+a%6c$"VSIJX-(G@(X(QLT+l@DQBPDGLq,'Qh8
4ELfkD"$Sd)V19$)A$klhJ-V,GLKj23e!a@J*"jmf&P*r-6#c*C[)@DTUQjd*RXX
f$H"KSZX!YVZGT*mkTe6JXiXqcGUrQ-P9[[R,T)#U#q29-Tr4i%0$$mmM&YY3N1
h0#2imp55M$Y#&BQ9eP8GXARrA*@(ib6E5@bfJG++L)5'-[lhA)l%5JdZ44EZJa
h2Sal#qrZYUMcl4qlk,aKUVMS(qC1b09B0H(M8m9JAp)pfM!V1flZh(E,&Ui2%
Gpb6I[Dqd*@ZKjUTpRLf+EG$Md#@)LeNZ,Yf%$8I,+9BdreEFqmM+1)8Gf(4E-R1
rBdVGMJk0U2GHK8p&@L[2d+i6PEELZZkq)b,$&LmUdp6FQc+9@QZ!1&HL[r5dlj
E&R*j88$,3P6'3D&$FDRHI%5)dEVhm5F+rakAk@XR@0(AEZfIm9&AcTElI2cY"lb
iVDFKZ9Z0r-ASf0b'C+Va"[STAc4@83m2qRLb5J$"dFJ!@EU)kBliE+GrPP*jh(
R[J,3NM1Kbq-lYrTK#q&[@hqDMFUEC'j%bZQ&3CQJ9b-5mIVhJc4,'B04"1GR(Pm
J@L8+'&C3CZmJIr$)AJ+lfaJ95jriC)GG@NS6bEcXAU,+F2#0chJ@YCL,9Pf0UCA
JhJ(PDTS!,Y4YJ'h)DGiJqch&CS36#Q4a%jr#YNia-$YRGeL6dT2Ba[qSMak1i
CRB"4EPdT8++#"6FPAd[*rm0P#q4PSaIG1jqrAHX8EGKDQ&KZKN8IPYam8hS4h
SErLMeeTQUh8U$9MEkL0LQ5ZBe)&NAXZEjYH#chra*Up!blL6HM&@Q@IdS!RHP
dJmf+k&j2&)a#qAhFM)bNeqMCEIHlDZ4e2[@cS#mlMHaVbmDPk@dD-YipNA[0V
5C*%ia525PYIN35,'&TGS01r6Ad&AJ*pE,Ul"+RF$!ccYVRj1BjUV51M1bqLSId
(Q9jQ29m0T[0L+&MelCp8c02ek"i2mMrC9h+%UCX3HU@-$@h*(ZGM)cQ4)H1H#T
ajmZ0#FZ+XrlG#N#64@q+0%dTY1cQFhEJB9P[pcMc+c6SGpi(JQ6L21r[cF9&I)
[$P!54N-NArA6,q)!N!!hKSN)SHL--qh0arh*lh*VB,-S2+,fGjIdRUa30fE[3I
(ReR$0ik%K(EjDrb6)P4S4ZEXUdMd'A'IcD-cia5LR*VF""NAPpmC6NJ'5!GDCC4
lYm8"B425aJ-VK()AM!0far'*3jJ)0GpaGq#5re#TEFD,N!!Xk'6,#C'kKj[1Z*Q
,lq!r,rKfjLLf%0a9"KBKR+!BIafJQG9*kfQBRL"aVG9-#0I%XVi++f(8cH$P4f
9F6X&GGiZA99#[e,PCaGVlL8SemLqC*kA#L5bqQ#&eF9"@+R'B#f(5H#TG4&G#
hYHqERZ![qIHMY2GLAppm)4Fjr*JNk[&2XVc6j"HTl+N[KbFl!lCiqE0S($Vehi'
I#IkB98mlUJ8+j@(-Y["D8V@IV9lTT1Hj!!Q'a$A!PL#Y%X"$'&L@'%32fZEQ&
B%A,![Yl@a2BNG0Z1(Z4@kRP&Y4()&aCV4+3-3EC['E"H+4DRPH%+b%pPKe[8B$d
+"NRpdB*U%3I9p'01L@@TYK"BPe&a2NN0lcTR6CHS3'9)D1+,QaV3fTb8!pL#S
DZXMmI8ZBE6MF*d63GJih&Jddd-VK3b2Q$T&jZ[Ra,@d@rC!!U,2BKR1+aJ*@p)0
DFErTNilC1ZTRAj2-EfF'!i!N6[ZTXM@@UC9YP-M'$FjqbHh!Ta&pFkfA4Kr-Q6!
81hX2a48f3Bi6HpDbG'V%X!6E-kAQA9'!BQeKjl,28MqIjE[9MVSB#iIXB"NRdQ
$jLc034&kCS#Ce2mh1Yp2kclmh0j',TAcSI@3!+ZbqmQk-"0@DMY3*EqhRP$'h)Q
Rl)k"%PTQ5VQe@IK*QP(!3c"STLVrEBd3K5Xidi#6eDcB3S+X$!A6%G[QD[+Ca+
SHZkkGa&J,Dk3!+pJ$h86-$$'VGMHlN8(+@(P#N8$%IcE@aSaCd@ipk+bXEL0E5
!&Hhf)RLMpIJIN!!E2q@)%fJd3!![iKRpURre-3pH"!"$#l3!!:
Ответ отправлен: 13.07.2003, 22:51
Отправитель: Евгений Иванов
Отвечает Hangatyr
Доброе время суток, Владислав Александрович!
При помощи функции DeviceIoControl.
call DeviceIoControl, hDisk, IOCTL_DISK_EJECT_MEDIA, 0, 0, 0, 0, offset lpbytesreturned, 0
Хэндл hDisk для этого можно получить при помощи CreateFile.
Ответ отправлен: 13.07.2003, 16:35
Отправитель: Hangatyr
Отвечает Broken Sword
Здравствуйте, Владислав Александрович!
3.01. How do I open the door?
First, you need the name of the device driver (see question 2.03, How do I get the name of the CD-ROM device driver?). Open the file for read/write and obtain the file handle (DOS function 3DH will suffice).
Once you have the file handle, you need a one byte block of
memory. Call DOS IOCTL function 4403H, as shown here:
mov BX,FileHandle
mov Command,0
lds DX,Command
mov CX,1
mov AX,4403H
int 21H
jc error
cmp AX,1
jne write_error
;
; door should be open
;
On error (carry set), AX will hold an error code: 0001H (invalid function), 0005H (access denied), 0006H (invalid handle), or 000DH (invalid data).
Если нада могу выслать весь FAQ по пр-нию CDROM-ов и даже исходник простого проигрывателя CD (умеет даже открывать/закрывать лоток Ж) на асме
Приложение:
Ответ отправлен: 13.07.2003, 17:28
Отправитель: Broken Sword
Отвечает Igoryk
Добрый день, Владислав Александрович!
Вот так: (OPEN - для открытия, CLOSE - для закрытия. Что-то прийдется закомментровать):
includelib import32.lib
extrn mciSendStringA:near
extrn ExitProcess:near
.386
.model flat
.const
OPEN DB 'Set CDAudio Door Open Wait',0
CLOSE DB 'Set CDAudio Door Closed Wait',0
.code
_start:
mov EBX, 0 ;0 for functions
push EBX
push EBX
push EBX
; push OFFSET OPEN
push OFFSET CLOSE
call mciSendStringA
push EBX
call ExitProcess ;Exit
end _start
Ответ отправлен: 13.07.2003, 21:03
Отправитель: Igoryk
Отвечает Илья
Добрый день, Владислав Александрович!
Можно пользуясь функциями драйвера или системы (тебе уже вроде этот подход описали) или прямо сидюку послать ATAPI пакет, который открывает лоток. Если данный способ подходит - пиши, объясню по-подробней.
b.i@date.by
Ответ отправлен: 13.07.2003, 19:39
Отправитель: Илья
Отвечает Lynx
Добрый день, Владислав Александрович!
Если по Винду, то с помощью API. А если нет, то сигналы на какието ноги сидюка подавать. (Прошу прощения, но я их не знаю)
Ответ отправлен: 14.07.2003, 19:42
Отправитель: Lynx
Отвечает Tigran K. Kalaidjian
Доброе время суток, Владислав Александрович!
Если кратко, то нужно послать следующий ATAPI-пакет:
Команда 01Bh - управление треем и прочее
Пакет:
db 1Bh
db 3*dup(0) ; *
db Func ; подфункция
db 7*dup(0) ; *
Команда управляющая.
Подфункции:
0 - войти в режим Sleep
1 - остановить проигрывание/чтение
2 - выдвинуть трей
3 - закрыть трей
Если нужен подробный документ - пишите на kalaidjian@pochtamt.ru - вышлю документацию по управлению CD-приводами. Если не хочется возиться напрямую, то могу посоветовать драйвер VIDE-CDD.SYS
Ответ отправлен: 16.07.2003, 22:00
Отправитель: Tigran K. Kalaidjian
Отвечает Теоретик
Доброе время суток, Владислав Александрович!
Вы не указали, для какой операционки вам это надо, поэтому
я взял на себя смелость выбрать на свой вкус.
Ниже показано, как выдвигать лоток под Windows,
используя функцию mciSendString.
Компилировать так:
tasm32 /ml eject.asm
tlink32 /Tpe /ap /c eject.obj
Приложение:
Ответ отправлен: 14.07.2003, 20:16
Отправитель: Теоретик
Вопрос № 3693 |
Здравствуйте, уважаемые эксперты!
Вобщем, проблема такая. Если на значке звуковой карты в панели управления в WinXP щёлкнуть правой кнопочкой, то в меню есть пункт 'Отключить'. Подскажите пожалуйста функцию, которая отключает звуковуху. Просто очень нужно сделать то же самое, но программно, без панели управления. Заранее благодарен!
Вопрос отправлен: 13.07.2003, 19:55
Отправитель: Alex
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Alex!
Функции такой нет. При отключении устройства windows изменяет некоторым образом реестр, после чего подает соответствующие команды драйверам этого устройства ну и т.д.
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 14.07.2003, 01:00
Отправитель: Bob Johnson
Вопрос № 3694 |
доброе время суток,профессионалы.
Поставил себе Линь да вот только драйверов для принтера canon i320 нет и не найти мне их ну никак. Может есть у кого,поделитесь пож-то...
Да вот еще вопрос есть, переходник купил, который из ps/2 мыши делает usb мышь, да вот только не работает ето нихрена, не видит мой Линь ету usb-мышь, да и Вынь tоже не видит??????? Как мне быть подскажите ,спасибо, удачи всем.
Alex.
Вопрос отправлен: 13.07.2003, 21:46
Отправитель: alex (alex5775@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Добрый день, alex!
Насчет переходника для мыши...
У меня тоже был такой переходник, только с USB на PS/2 и он тоже не работал. Когда я начал рабираться что к чему, оказалось, что три проводка там припаяны как надо, а четвертый припаян к контакту, который не используется при работе с PS/2. Причем этот переходник был неразборным, а ломать и перепаивать не хотелось, так что я его просто выкинул.
Ответ отправлен: 14.07.2003, 10:40
Отправитель: ASMодей
Вопрос № 3695 |
Скажите эксперты! Как вытащить программно имя пользователя, пароль и телефон его провайдера? Я пишу не троян. Проссто пишу звонилку и хочу сделать как VDialer.Пользователь установил прогу. Открывает и ему не надо заново писать имя,пароль и т.д. Прога все нашла и сама уже написала! Помогите plz!!!
Вопрос отправлен: 14.07.2003, 00:03
Отправитель: hex
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, hex!
В 98-х окнах есть такая своеобразная функция - WNetEnumCachedPasswords в mpr.dll, которая позволяет любой программе получить все пароли на dial-up, которые в данный момент находятся в кэше окон. Ты скажешь: "т.е. надо вначале набрать номер, чтобы винда закэшировала пароль, после чего уже вызывать эту функцию" - а вот и нет! Винда умней, чем многие думают - чтобы реальные кулхацкеры даже и не пытались дизассемблировать ядро (не дай бог кто узнает, как там все г..няно) и искать там процедуру работы с паролями (кстати, там какая-то уникальная команда в этом месте используется, типа xor [ebp + ??], cl, чтобы если уж раз нашел, то никогда не потерял это место и мог показать другим с легкостью набрав F7 в heiw), разработчики кэшируют все пароли на dial-up прямо при запуске системы. Как удобно - ведь насколько экономится время при попытке набора номера, когда пароль на него уже закэширован... думаю, что 1 - 2 миллисекунды сэкономить они смогли. В общем, в 98-х виндах вызываешь такую функцию (см. в интернете ее описание, т.к. по какому-то досадному недоразумению она недокументирована в msdn, видимо забыли) и получаешь все пароли в системе.
С другой стороны, тебе просто достаточно воспользоваться функциями из набора RAS API (Remote Access Service), такими как RasDial, RasEnumConnections, RasDialDlg и т.д. Пример работы с ними из асма (там прога выводит список всех существующих в системе соединений и подробную информацию о выбранном) есть на моей странице.
Кстати, что меня порадовало в MSDN по поводу функции RasGetEntryDialParams (получить подробную информацию о выбранном соединении):
Windows 2000 and later versions: RasGetEntryDialParams does not return the actual password. Instead, the szPassword member of the RASDIALPARAMS structure contains a handle to the saved password. Substitute this handle for the saved password in subsequent calls to RasSetEntryDialParams and RasDial. When presented with this handle, RasDial will retrieve and use the saved password. The value of this handle may change in future versions of the operating system; do not develop code that depends on the contents or format of this value.
Вы представляетет себе?! К 2000-й версии виндов MS все-таки додумались до того, что возвращать пароль на соединение любому попросившему как-то глупо... Да, можешь выкинуть все, что я написал про получения паролей выше, WNetEnumCachedPasswords отдыхает. Hello, BG!
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 14.07.2003, 12:23
Отправитель: Bob Johnson
Отвечает Lynx
Здравствуйте, hex!
ИМХО в реестре HKEY_CURRENT_USER\RemoteAccess\Profile ну и покопайся редактором реестра в этой области. :)))
Ответ отправлен: 14.07.2003, 19:42
Отправитель: Lynx
Вопрос № 3696 |
Каким образом обыкновенный калькулятор вычисляет значения функций
sin x
cos x
ln x
Вопрос отправлен: 14.07.2003, 08:19
Отправитель: Костя (mikv@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, Костя!
Первые две - c помощью разложения в ряды Тейлора (обычно в точке 0, а аргумент приводят в диапазон pi/4 - так значительно точнее). Последнюю - то ли таким же образом, или подобным (не помню). Например, формула для синуса:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! и т.д.
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 14.07.2003, 22:14
Отправитель: Bob Johnson
Отвечает Lynx
Здравствуйте, Костя!
У меня где то в лекциях по Мат. Анализу было. Щас не могу найти... Если никто не ответит, то напиши и я вышлю или расскажу. :)))
Ответ отправлен: 14.07.2003, 19:42
Отправитель: Lynx
Отвечает Теоретик
Добрый день, Костя!
С помощью рядов.
Берём учебник по матанализу (а вы думали матанализ нужен только для того,
чтобы прирождённых программистов стипендии лишать или вообще отчислять? :)))
sin x = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - ...
cos x = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - ...
exp x = 1 + x^1/1! + x^2/2! + x^3/3! + x^4/4! + ...
Здесь символ ^ означат возведение в степень, а ! означет факториал, т.е.
5^3 = 5*5*5
5! = 1*2*3*4*5
Приоритет возведения в степень больше, чем деления, т.е.
x^3/3! считается так: (x^3)/(3!).
Разумеется, x^1/1! можно записать просто как x, но я записал в таком виде
для единообразия.
К сожалению, разложение натурального логарифма в ряд ни найти ни вывести самостоятельно мне не удалось.
Однако могу посоветовать ещё один метод вычисления тригонометрических функций.
Основан он на равенствах:
cos(a+b) = cos(a) * cos(b) - sin(a) * sin(b)
sin(a+b) = sin(a) * cos(b) + cos(a) * sin(b)
Т.е. если известны результаты триг.функций для двух углов, то можно посчитать
и результат для их суммы.
Заранее вычисляем синусы и косинусы для углов равных степеням двойки (1, 2, 4, 8, ... и 1/2, 1/4, 1/8, 1/16 и т.д.)
и сохраняем их в массиве (можно посчитать их отдельно, а в конечную программу
внести только результаты).
Теперь можно вычислять sin и cos на основе двоичного представления числа.
Например, 10,75 = 8 + 2 + 0.5 + 0.25
Вычисляем sin(8+2) и cos(8+2), используя вышеуказанные формулы.
По тем же формулам прибавляем угол 0.5, а затем 0.25.
Недостаток этого метода в том, что всегда нужно вычислять одновременно и sin и cos.
Возможно, есть возвожность его оптимизировать.
Надеюсь эта информация вам поможет.
С уважением, Теоретик.
Ответ отправлен: 14.07.2003, 20:16
Отправитель: Теоретик
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (35) C / C++ (23) Perl (5) Builder / Delphi (17) Pascal (23) Basic / VBA (9) Java / JavaScript (12) PHP (9) MySQL / MSSQL (9) Криптография (6) WinAPI (9) |
Пользователю Windows 95/98/Me (35) Windows NT/2000/XP (28) "Железо" (25) Поиск информации (18) |
Администратору Windows NT/2000/XP (15) Linux / Unix (6) |
Юристу Гражданское право (11) Семейное право (5) Трудовое право (9) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||