PDA

View Full Version : سوال: موقعیت موس



woeful
سه شنبه 24 فروردین 1389, 21:15 عصر
سلام من این کد رو نوشتم (البته با کمک کتاب ):لبخند: موقعیت موسو نشون میده


PAGE 60,132
CURSOR MACRO ROW,COLUMN
MOV AH,02
MOV BH,00
MOV CX,COLUMN
MOV DX,ROW
INT 10H
ENDM
;------------------------

DISPLAY MACRO STRING
MOV AH,09
MOV DX,OFFSET STRING
INT 21H
ENDM
;-------------------------
.MODEL SMALL
.STACK
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
;MOV AH,0FH
;INT 10H
;MOV MODE_V,AL
MOV AX,0600H
MOV BH,07
MOV CX,0
MOV DX,184FH
INT 10H
;MOV AH,00
;MOV AL,0EH
;INT 10H
MOV AX,0
INT 33H
;MOV AX,01
;INT 33H
CURSOR 20,20
AGAIN: MOV AX,03
INT 33H
MOV AX,CX
CALL CONVERT
MOV POS_HO,AL
MOV POS_HO+1,AH
MOV AX,DX
CALL CONVERT
MOV POS_VE,AL
MOV POS_VE+1,AH
CURSOR 3,20
DISPLAY MESSAGE2
CURSOR 0,20
DISPLAY MESSAGE1
DISPLAY POS_HO
DISPLAY POS_VE

MOV AH,01
INT 16H
JZ AGAIN
MOV AX,02
INT 33H
MOV AH,00
MOV AL,MODE_V
INT 10H
MOV AH,4CH
INT 21H
MAIN ENDP
;---------------------------------

CONVERT:
SHR AX,1
SHR AX,1
SHR AX,1
MOV BL,10
SUB AH,AH
DIV BL
OR AX,3030H
RET


.DATA
; LABLE TYPE VALUE

MESSAGE1 DB 'THE MOUSE GURSOR LOCATED AT :' ,'$';*****
MESSAGE2 DB 0DH,0AH,'PRESS ANY KEY TO EXIT.','$'
POS_HO DB ?,?,'AND $'
POS_VE DB ?,?,'$'
MODE_V DB ?


END MAIN

و اما سوال من
با اجرای این برنامه یه صفحه dos باز میشه که هر موقع موس داخل اون صفحه بشه موقعیتش نشون داده میشه من میخوام برنامه موقعیت موسو داخل کل Desktop نمایش بده (فقط موقعیت موسو داخل صفحه داس نمایش نده )


وسلام

با تشکر

Woeful

Delphi Coder
جمعه 27 فروردین 1389, 16:13 عصر
سلام
خوب این برنامه برنامه DOS هست DOS ای که شما استفاده می کنید زیر مجموعه Windows هست و طبیعی هست که برنامه شما از خود DOS فراتر کار نکنه.
برای اینکه بتونید این کار رو انجام بدین شما باید به کل با اسمبلی تحت ویندوز و با استفاده از API های ویندوز این کار رو انجام بدین که هیچ ارتباطی به کدی که گذاشتید نداره و برنامه جدیدتون کاملا متفاوت خواهد بود با اون کد.

woeful
جمعه 27 فروردین 1389, 20:59 عصر
سلام
خوب این برنامه برنامه DOS هست DOS ای که شما استفاده می کنید زیر مجموعه Windows هست و طبیعی هست که برنامه شما از خود DOS فراتر کار نکنه.
برای اینکه بتونید این کار رو انجام بدین شما باید به کل با اسمبلی تحت ویندوز و با استفاده از API های ویندوز این کار رو انجام بدین :متفکر: که هیچ ارتباطی به کدی که گذاشتید نداره و برنامه جدیدتون کاملا متفاوت خواهد بود با اون کد.
یه سر نخ یا آموزش یا تاپیک با موضوع مرتبط اگه بدی :قلب::کف::لبخند:

Delphi Coder
جمعه 27 فروردین 1389, 22:06 عصر
masm32 رو از این سایت download کنید:
http://www.masm32.com
الان خیلی بهتر شده نسبت به قبل توش یه چند تایی فایل Help گذاشته که البته زیاد کامل نیستن اونارو مطالعه کنید.
بهترین مثالها و ارزنده ترین منبع آموزش اسمبلی تحت ویندوز به نظر من Iczelion's tutorial هست این آدرس HomePage ایشان هست:
http://win32assembly.online.fr
یا
http://win32assembly.programminghorizon.com (http://win32assembly.programminghorizon.com/)