· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Программы на Visual Basic

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Окт 21, 2004 12:59:21

надо иметь супер - пупер наметаный глаз, я наверное раза три четыре просматривал, уже было подумал что там нету такого, потом решил через поиск и вот оно, спасибо понял!


Дата: Окт 21, 2004 13:14:47

есть вопрос, уже не в эту тему.:

.data

Serial dd ?
VName db 255 dup(0)
FSName db 255 dup(0)


lpTitleMB db 'werrt',0
lpRootName db 'C:\',0
lgSizeBuff db 255

.code

start:

invoke GetVolumeInformation, addr lpRootName, addr VName, addr lgSizeBuff, addr Serial, 0, 0, addr FSName, addr lgSizeBuff
mov eax, DWORD ptr offset Serial
invoke MessageBox,NULL, eax,addr lpTitleMB,MB_OK or MB_ICONASTERISK
invoke ExitProcess,0

end start
Всетки как мне вывести, серийный номер в окошечке, в удобочитаемом виде ?


Дата: Окт 21, 2004 13:32:07 · Поправил: bogrus

.data
...
lpfmt       db      '%u',0

.code
...
invoke  wsprintf,addr FSName,addr lpfmt,Serial
invoke MessageBox,NULL,addr FSName,addr lpTitleMB,MB_OK or MB_ICONASTERISK 


Дата: Окт 21, 2004 16:33:05

Бесплатный декомпилер VB экзешников с исходниками!!!

http://www.projectxonline.net/data/mydecompiler/files/

:))


Дата: Окт 22, 2004 09:28:44

2bogrus
То что ты написал, возвращает какието числа, но не серийник винта :(
2alix
Я хотел бы для начала научиться пользоваться универсальными средствами, а потом уже в какойто частной ситуации уже пользоваться декомпиляторами


Дата: Окт 22, 2004 10:36:57

freeloader„То что ты написал, возвращает какието числа, но не серийник винта :( “

Ты можешь это доказать?


Дата: Окт 22, 2004 12:42:59

а что тут доказывать, когда я делаю тоже самое на VB, когда я смотрю через Вашу же программу, совсем разные цифры..., единственно что может быть, так это то что я нашаманил в коде, вообщем вот опять в студию:
.386
.model FLAT, STDCALL
option casemap:none

include windows.inc

includelib kernel32.lib
include kernel32.inc
include user32.inc
includelib user32.lib

;
;DEBUG
;
;include debug.inc
;includelib debug.lib

.data

Serial db ?
VName db 255 dup(0)
FSName db 255 dup(0)

lpfmt db '%u',0
lpTitleMB db 'wert',0
lpRootName db 'C:\',0
lgSizeBuff db 255

.code

start:

invoke GetVolumeInformation, addr lpRootName, addr VName, addr lgSizeBuff, addr Serial, 0, 0, addr FSName, addr lgSizeBuff
invoke wsprintf,addr FSName,addr lpfmt,addr Serial
;mov eax, DWORD ptr offset Serial
invoke MessageBox,NULL,addr FSName,addr lpTitleMB,MB_OK or MB_ICONASTERISK
invoke ExitProcess,0

end start


Дата: Окт 22, 2004 13:03:15

Во-первых, сравни свой код из первого поста со вторым, на каком основании ты сменил "Serial dd ?" на "Serial db ?" ?
Во-вторых где ты увидел в моём коде addr перед Serial ?
Будь внимательней!


Дата: Окт 22, 2004 15:05:40

Тогда у меня еще одна просьба по поводу того в каких случаях надо употреблять addr а в каких не надо?
например взять это:
invoke wsprintf,addr FSName,addr lpfmt, Serial
я так понимю что addr это указатель..., а больше пока понять не могу...
и еще вот эта функция wsprintf откуда она?


Дата: Окт 22, 2004 15:15:42 · Поправил: bogrus

„я так понимю что addr это указатель..., “

Правильно, addr Serial вернет адрес (смещение,offset) переменной , а просто Serial вернет содержимое (значение) переменной.

„и еще вот эта функция wsprintf откуда она?“

из kernel32.dll ,тьфу из MSDN, читай его или какой-нить win32api.hlp всегда перед тем как писать строку кода с API ф-цией, которую видишь в первый раз)

з.ы. Serial dd ? это переменная в четыре байта (dword), а Serial db ? в один байт (byte)
з.ы. читай основы

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.056