Помогите новичку
-
Вот, даже вроде работает. Тестировал в IE 7 + FF 3.6.18
- Attachments
-
-
changes_slide_show.zip (1.41 KiB)Downloaded 190 times
-
Действительно работает. Спасибо! Залил на сайт.
Из хаоса в космос
У меня в Firefox 5.0 не работает...
А как узнать откуда запущена программа?Albom wrote:Eolite требует ini из /rd1/File Managers...
А у меня в Firefox 6.0 работает. Ещё у кого-то не работает?Атауальпа wrote:У меня в Firefox 5.0 не работает...
Атаульпа, перепроверь. Может быть ява-скрипт отключен.
Из хаоса в космос
Leency wrote:А как узнать откуда запущена программа?
Code: Select all
use32
org 0x0
db 'MENUET01' ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
dd IM_END ; size of image
dd I_END ; memory for app
dd stacktop ; esp
dd temp_area ; I_Param
dd path ; APPLICATION PACH
.....
path:
rb 4096
Как окну проверить активно оно или нет?
Из хаоса в космос
Примерно как-то так:
Code: Select all
mcall 68, 12, 1024 ;allocate 1KB
mov ebx, eax
mcall 9,,-1 ;get info about this thread
cmp eax, 0xFFFF
ja .err
cmp ax, [ebx+4]
pushf
mov ecx, ebx
mcall 68, 13 ;free allocated block
popf
je this_window_is_active
jne this_window_ain't_active
Спасибо за напоминание, в моих программах не было проверки на активность окна. Потому могли возникать глюки, если другие окна накрывали их и в них клацали мышей.
Joaquin wrote:mcall 68, 12, 1024 ;allocate 1KB
мне кажется что лучше определить структуру procinfo сразу в файлеJoaquin wrote: pushf
mov ecx, ebx
mcall 68, 13 ;free allocated block
popf
Я делаю не примерно, а вот так:Leency wrote:Как окну проверить активно оно или нет?
1) В самом начале программы
Code: Select all
mcall 9,procinfo,-1
mov ecx,[ebx+30] ; PID
mcall 18,21
mov [active_process],eax ; WINDOW SLOT
Code: Select all
mouse:
mcall 18,7
cmp [active_process],eax
jne still
Mario,
Хы, прозевал 18.7 функцию, когда искал в API нечто подобное, а так и действительно проще.
Хы, прозевал 18.7 функцию, когда искал в API нечто подобное, а так и действительно проще.
Mario
Работает!!!!11 Спасибо! Начинаю усиленно фиксить прокрутку в своих прогах![Smile :)](./images/smilies/icon_smile.gif)
Работает!!!!11 Спасибо! Начинаю усиленно фиксить прокрутку в своих прогах
![Smile :)](./images/smilies/icon_smile.gif)
Из хаоса в космос
ох уж этот порядок байт =(
подскажите пожалуйста (проверять сейчас не на чем), вот, например, если сделать как описано ниже, как будут выглядеть eax, ax, al?
...
code:
mov eax, dword[data]
...
data:
db 1,2
dw 3
...
подскажите пожалуйста (проверять сейчас не на чем), вот, например, если сделать как описано ниже, как будут выглядеть eax, ax, al?
...
code:
mov eax, dword[data]
...
data:
db 1,2
dw 3
...
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
EAX = 00030201h
Всё очень просто, на самом-то деле. Директивы определения данных (DB и тому подобные) всегда размещают указанные в них данные в порядке их следования, т.е.
DB 1, 2
сначала разместит в памяти байт 1, потом -- байт 2.
DW 3 размещает в памяти слово со значением 0003, однако, поскольку на IA-32 принят порядок "младший-старший", сначала в памяти будет лежать байт 03, а за ним -- 00.
MOV загружает двойное слово с адреса Data, а там байты лежат в таком порядке:
01 02 03 00
Соответственно, в EAX они грузятся задом наперёд: 00030201.
Ну и на всякий случай и для общего развития
Во-первых, порядок "младший-старший" не является общепринятым, на других архитектурах может использоваться порядок "старший-младший". Понятное дело, что, пока работаете на ПК, всегда будет "младший-старший", но держать это замечание где-то на задворках сознания полезно, если вдруг в будущем придётся иметь дело с чем-то другим. Ну а во-вторых, терминология "слово, двойное слово" и т.д. тоже не является общепринятой. На ARMах, например, слово -- 32 бита, а 16 бит -- это полуслово. Соответственно, двойное слово там -- 64 бита.
Всё очень просто, на самом-то деле. Директивы определения данных (DB и тому подобные) всегда размещают указанные в них данные в порядке их следования, т.е.
DB 1, 2
сначала разместит в памяти байт 1, потом -- байт 2.
DW 3 размещает в памяти слово со значением 0003, однако, поскольку на IA-32 принят порядок "младший-старший", сначала в памяти будет лежать байт 03, а за ним -- 00.
MOV загружает двойное слово с адреса Data, а там байты лежат в таком порядке:
01 02 03 00
Соответственно, в EAX они грузятся задом наперёд: 00030201.
Ну и на всякий случай и для общего развития
![Smile :)](./images/smilies/icon_smile.gif)
SII, спасибо! да путаюсь постоянно с разными endian...
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Уточняю на всякий случай.
Системная функция 70, подфункция 9 - создание папки.
Системная функция 70, подфункция 9 - создание папки.
Это означает, что содержимое папки затерто не будет?Если папка уже существует, функция завершится успешно (eax=0).
Who is online
Users browsing this forum: No registered users and 0 guests