نمایش نتایج 1 تا 15 از 15

نام تاپیک: 2 تا سوال در باره موش موشک (mouse)

  1. #1

    2 تا سوال در باره موش موشک (mouse)

    سلام بر تمامی دوستان عزیز . من در باره موس با 2 مشکل مواجه شدم می خواستم ببینم از عزیزان کسی میتونه به من کمک کنه . :lol: ممنون میشم
    مشکل اول من این هست که میخوام مختصات x و y موس تو Screen بدست بیارم البته داخل فرم ها با گزینه mouse_move میشه اما من میخوام اگر موس از روی فرم هم خارج شد باز بشه مختصاتش رو تو صفحه اصلی ویندوز فهمید

    مشکل دوم من خوانده شدن کلمه زیر موس بدون انتخاب کردن کلمه است . حتما دوستان نرم افزار نارسیس رو دیدن وقتی موس روی یک کلمه قرار میگیره نرم افزار نارسیس کلمه رو میخونه و ترجمه فارسی اون رو میده

  2. #2
    کاربر دائمی آواتار Ali_Mor
    تاریخ عضویت
    تیر 1382
    محل زندگی
    کره خاک، البته بصورت موقتی
    پست
    259
    با سلام
    در مورد سوال اول می‌شود مختصات موس در فرم را با مختصات فرم(left,top فرم) جمع کرد تا مختصات موس در صفحه(screen) بدست آید.

  3. #3
    سلام
    آقا علی دست شما درد نکنه اما اگر برم مخفی (hide) باشه یا موس از روی فرم خارج بشه دیگه نمیشه مختصاتش رو بدست آورد :(

  4. #4
    سعید قدیری مقدم عزیز دو راه برای گرفتن متن زیر ماوس دارید. البته این سوال را در فروم قدیمی سایت هم جواب داده ام بنابراین اینجا خلاصه تر می گویم.
    راه اول با پیدا کردن هندل شی زیر ماوس و بدست آوردن متن درون آن. در وبلاگم بطور مفصل درباره بدست آوردن هندل زیر ماوس تویح داده ام می توانید به آدرس زیر مراجعه کنید.
    http://vblog.persianblog.com
    راه دوم که نرم افزار نارسیس از آن استفاده می کند استفاده از یک اکتیوایکس OCR است.به این شکل که تصویر زیر ماوس را برگردانده و سپس با استفاده از OCR آن را به متن تبدیل می کند.

  5. #5
    اقا Voldemort بابت راهنمایی شما ممنون اما نیشه مقداری در باره چگونگی استفاده از WindowFromPoint و FindWindow و FindWindowEx بیشتر توضیح بدید من این API ها رو به برنامه خودم اضافه کردم ولی تو استفادشون گیر کردم در حقیقت نمیتونم از متغییر های این توابع استفاده کنم
    اما در کنار این توابع mouse_event هم بود من مقداری باهاش ور رفتم متوجه شدم که جواب سوال اول من در این تابع هست اما متاسفانه از این api هم نتونستم استفاده کنم میشه مقداری بیشتر من رو راهنمایی کنید
    ممنون

  6. #6
    راستی یاددم رفت میخواستم بپرسم activeX برای OCR رو از کجا میتونم download کنم و یا اینکه اسم این activex چیه ؟ ممنون از راهنماییتون

  7. #7
    سعید عزیز این هم مثالی برای استفاده از WindowFromPoint

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal wOptions As Long, ByVal lpRect As Any, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As POINTAPI) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim Pt As POINTAPI, mWnd As Long, WR As RECT, nDC As Long
    Dim TextSize As POINTAPI, CX As Long, CY As Long
    'Get the current cursor position
    GetCursorPos Pt
    'Get the window under the cursor
    mWnd = WindowFromPoint(Pt.X, Pt.Y)
    'Get the window's position
    GetWindowRect mWnd, WR
    'Get the window'zs device context
    nDC = GetWindowDC(mWnd)
    'Get the height and width of our text
    GetTextExtentPoint32 nDC, "Hello !", Len("Hello !"), TextSize
    For CX = 1 To WR.Right - WR.Left Step TextSize.X
    For CY = 1 To WR.Bottom - WR.Top Step TextSize.Y
    'Draw the text on the window
    ExtTextOut nDC, CX, CY, 0, ByVal 0&, "Hello !", Len("Hello !"), ByVal 0&
    Next
    Next
    End Sub
    Private Sub Form_Paint()
    Me.CurrentX = 0
    Me.CurrentY = 0
    Me.Print "Click on this form," + vbCrLf + "Hold the mouse button," + vbCrLf + "drag the mouse over another window," + vbCrLf + "release the mouse button" + vbCrLf + "and see what happens!"
    End Sub


    در ضمن در مورد پیدا کردن OCX می توانید از دوست عزیزم مهدی کمک بگیرید آدرس وبلاگش این است:
    http://deldadehcrack.blogsky.com

  8. #8
    مثال زیر هم در استفاده از تابع Mouse_event به شما کمک می کند ولی باز هم می گویم برای گرفتن متن با استفاده از توابع بهتر است از تابع WindowFromPoint که در یک شی تایمر دائما صدا زده می شود استفاده کنید و سپس با استفاده از تابع GetWindowText و یا توابع دیگری که در این زمینه وجود دارند و یا حتی از پیغامهای مربوط به شی مورد نظرتان برای گرفتن متن استفاده کنید

    'Before you start this program, I suggest you save everything that wasn't saved yet.
    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Const MOUSEEVENTF_LEFTDOWN = &H2
    Const MOUSEEVENTF_LEFTUP = &H4
    Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Const MOUSEEVENTF_MIDDLEUP = &H40
    Const MOUSEEVENTF_MOVE = &H1
    Const MOUSEEVENTF_ABSOLUTE = &H8000
    Const MOUSEEVENTF_RIGHTDOWN = &H8
    Const MOUSEEVENTF_RIGHTUP = &H10
    Private Sub Form_Activate()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Do
    'Simulate a mouseclick on the cursor's position
    mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
    DoEvents
    Loop
    End Sub

  9. #9
    سعید عزیز ببخشید که اول سوال دومت را جواب دادم. جواب سوال اولت هم تابع ClientToScreen است که مختصات یک نقطه را در مقیاس Client به مختصات یک نقطه در مقیاس صفحه تبدیل می کند. مثالی از این تابع هم به این شکل است:

    'This project needs 2 Buttons
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

    Dim P As POINTAPI
    Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net

    Command1.Caption = "Screen Middle"
    Command2.Caption = "Form Middle"
    'API uses pixels
    Me.ScaleMode = vbPixels
    End Sub
    Private Sub Command1_Click()
    'Get information about the screen's width
    P.x = GetDeviceCaps(Form1.hdc, 8) / 2
    'Get information about the screen's height
    P.y = GetDeviceCaps(Form1.hdc, 10) / 2
    'Set the mouse cursor to the middle of the screen
    ret& = SetCursorPos(P.x, P.y)
    End Sub
    Private Sub Command2_Click()
    P.x = 0
    P.y = 0
    'Get information about the form's left and top
    ret& = ClientToScreen&(Form1.hwnd, P)
    P.x = P.x + Me.ScaleWidth / 2
    P.y = P.y + Me.ScaleHeight / 2
    'Set the cursor to the middle of the form
    ret& = SetCursorPos&(P.x, P.y)
    End Sub

  10. #10
    سلام Voldemort , بابت راهنمایی بسیار عالی شما متشکرم . دقیقا توانستم سوال اولم رو بکمک مثالهایی که نوشته بودید حل کنم اما در باره سوال دوم در مورد تابع GetWindowtext با مشکل مواجه شدم این تابع 3 متغییر دارد . متغییر اول که شماره هندل زیر موس است و با تابع WindowFromPoint بدست می آید اما متغییر دوم فکر میکنم متن زیر موس باشد ولی متغییر سوم :?: اگر یک لطف دیگه هم بکنید و چگونگی استفاده از تابع GetWindowtext رو هم بگین ممنون میشه :oops:
    راستشو بخواهید من چگونگی استفاده از Api ها رو نمیدونم از طریق msdn هم نتونستم دقیقا روش استفادشون رو بفهمم . میخواستم ببینم آیا سایتی هست که روش استفاده از api رو در بیسیک (با کد های قابل اجرا در vb) رو داشته باشه .

    باز هم ممنون از راهنمایی هاتون

  11. #11
    سلام .من موفق شدم با کمک تابع GetWindowText متن رو خارج کنم
    [/quote]
    Dim MyStr As String
    MyStr = String(GetWindowTextLength(mWnd), Chr$(0))
    GetWindowText mWnd, MyStr, Len(MyStr) + 1
    Label1.Caption = MyStr
    [/quote]

    اما یک مشکل وجود داره و اون اینکه کلمه زیر موس بر گشت داده نمیشه بلکه از ابتدای متن متن رو برداشت میکنه ثانیا داخل خیلی از کنترل ها کار نمیکنه مثلا داخل textbox اگر متنی باشه نمیتونه اون رو بخونه بیشنر متن داخل button ها و titel پنچره ها رو میخونه در نهایت با این تابع من نتونستم کلمه زیر موس رو بدست بیارم . میشه من رو راهنمایی کنید ممنون :)

  12. #12
    یک راه دیگر این است که با ابتدا کلاس شی زیر ماوس را بدست بیاورید و سپس با استفاده از ارسال پیغام مناسب به آن شی متن داخل آن را بدست بیاورید. این راه کاملتر از راه قبلی می باشد ولی پیچیده تر. در ضمن در مورد انتخاب فقط یک کلمه از کل متن بدست آمده باید متوسل به ترفندهای اختراعی خودتان بشوید. به همین راحتی که نارسیس نمی نویسند. در ضمن در مورد OCR فارسی یکی پیدا کردم که قیمتش 1800دلار است :!: اگر خواستی با من تماس بگیر تا آدرسش را بهت بدهم :wink:

  13. #13
    راستی در مورد نحوه استفاده از API ها در VB اگر انگلیسی را خوب بلدیدی که باز هم از خود MSDN می توانید استفاده کنید ولی اگر اینطور نیست :!: می توانید از کتاب VB و توابع برنامه نویسی کاربردی از انتشارات شهید (بنفام) استفاده کنید. البته کتابهای دیگری هم هست

  14. #14
    سلام آقای Voldemort بابت راهنمایی شما ممنون :oops: واقعا شرمنده اما من منظور شما رو از ترفند های اختراعی نفهمیدم :( تا اونجا که عقلم میکشید فکر کردم اما به جایی نرسیدم در مورد اون 1800 دلار میخواستم بگم کرکش هم سراغ دارید :shock:
    اما با این وجو د از کمک تون واقعا ممنون :o

  15. #15
    سعید عزیز در مورد راههای اختراعی منظورم این است که باید خودت راهی برای آن پیدا کنی مثلا اگر کلاس زیر ماوس از نوع TextBox بود و این TextBox چند خطی بود می توانی با استفاده از پیغامهای آن شماره خطی که ماوس روی آن قرار دارد را بدست آوری و سپس با توجه به مکان قرار گرفتن ماوس کلمه زیر آنرا پیدا کنی.
    در مورد کراک آن OCR‌ شرمنده هنوز پول هیچ کراکری به خرید آن نرسیده تا بتواند آن را کراک کند.

تاپیک های مشابه

  1. mouse
    نوشته شده توسط AsgharDasTala در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: چهارشنبه 25 مهر 1386, 20:27 عصر
  2. نحوه نمایش یک سری از اطلاعات درون db با رفتن mouse بر روی نوشته
    نوشته شده توسط miladclik در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: یک شنبه 23 مهر 1385, 21:28 عصر
  3. نمایش عکس در کنار mouse
    نوشته شده توسط amir_narmafzar در بخش طراحی وب (Web Design)
    پاسخ: 2
    آخرین پست: شنبه 01 مهر 1385, 09:23 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •