امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 3.5
  • 1
  • 2
  • 3
  • 4
  • 5
کار با هندل
نویسنده پیام
policweb آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۹۲

تشکرها : 27
( 0 تشکر در 0 ارسال )
ارسال: #1
کار با هندل
بچه ها برنامه ای میخواستم که وقتی درون تکس باکس متنی رو بنویسیم و با فشار دادن کامند متن به مکانی که موس اون شی رو انتخاب کرده انتقال بده؟
۲۱-شهریور-۱۳۹۲, ۰۰:۳۴:۳۴
ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #2
RE: کار با هندل
(۲۱-شهریور-۱۳۹۲, ۰۰:۳۴:۳۴)policweb نوشته است: بچه ها برنامه ای میخواستم که وقتی درون تکس باکس متنی رو بنویسیم و با فشار دادن کامند متن به مکانی که موس اون شی رو انتخاب کرده انتقال بده؟

فکر کنم این کارت را راه میندازه
کد:
' ----------------------------------------------
' *        MouseEvent Related Declares         *
' ----------------------------------------------
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10

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)

' ----------------------------------------------
' *     GetSystemMetrics Related Declares      *
' ----------------------------------------------
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const TWIPS_PER_INCH = 1440
Private Const POINTS_PER_INCH = 72
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex _
    As Long) As Long

' ----------------------------------------------
' *       GetWindowRect Related Declares       *
' ----------------------------------------------
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, _
    lpRect As RECT) As Long


' ----------------------------------------------
' *       Internal Constants and Types         *
' ----------------------------------------------

Private Const MOUSE_MICKEYS = 65535

Public Enum enReportStyle
    rsPixels
    rsTwips
    rsInches
    rsPoints
End Enum

Public Enum enButtonToClick
    btcLeft
    btcRight
    btcMiddle
End Enum

' Returns the screen size in pixels or, optionally,
' in others scalemode styles
Public Sub GetScreenRes(ByRef X As Long, ByRef Y As Long, Optional ByVal _
    ReportStyle As enReportStyle)

    X = GetSystemMetrics(SM_CXSCREEN)
    Y = GetSystemMetrics(SM_CYSCREEN)
    If Not IsMissing(ReportStyle) Then
         If ReportStyle <> rsPixels Then
            X = X * Screen.TwipsPerPixelX
            Y = Y * Screen.TwipsPerPixelY
            If ReportStyle = rsInches Or ReportStyle = rsPoints Then
                X = X \ TWIPS_PER_INCH
                Y = Y \ TWIPS_PER_INCH
                If ReportStyle = rsPoints Then
                    X = X * POINTS_PER_INCH
                    Y = Y * POINTS_PER_INCH
                End If
            End If
        End If
    End If
End Sub


' Convert's the mouses coordinate system to
' a pixel position.
Public Function MickeyXToPixel(ByVal mouseX As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tX As Single
    Dim tmouseX As Single
    Dim tMickeys As Single
    
    GetScreenRes X, Y
    tX = X
    tMickeys = MOUSE_MICKEYS
    tmouseX = mouseX
    
    MickeyXToPixel = CLng(tmouseX / (tMickeys / tX))
    
End Function


' Converts mouse Y coordinates to pixels
Public Function MickeyYToPixel(ByVal mouseY As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tY As Single
    Dim tmouseY As Single
    Dim tMickeys As Single
    
    GetScreenRes X, Y
    tY = Y
    tMickeys = MOUSE_MICKEYS
    tmouseY = mouseY
    
    MickeyYToPixel = CLng(tmouseY / (tMickeys / tY))
    
End Function


' Converts pixel X coordinates to mickeys
Public Function PixelXToMickey(ByVal pixX As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tX As Single
    Dim tpixX As Single
    Dim tMickeys As Single
    
    GetScreenRes X, Y
    tMickeys = MOUSE_MICKEYS
    tX = X
    tpixX = pixX
    
    PixelXToMickey = CLng((tMickeys / tX) * tpixX)

End Function


' Converts pixel Y coordinates to mickeys
Public Function PixelYToMickey(ByVal pixY As Long) As Long
    Dim X As Long
    Dim Y As Long
    Dim tY As Single
    Dim tpixY As Single
    Dim tMickeys As Single
    
    GetScreenRes X, Y
    tMickeys = MOUSE_MICKEYS
    tY = Y
    tpixY = pixY
    
    PixelYToMickey = CLng((tMickeys / tY) * tpixY)

End Function

' The function will center the mouse on a window
' or control with an hWnd property.  No checking
' is done to ensure that the window is not obscured
' or not minimized, however it does make sure that
' the target is within the boundaries of the
' screen.
Public Function CenterMouseOn(ByVal hwnd As Long) As Boolean
    Dim X As Long
    Dim Y As Long
    Dim maxX As Long
    Dim maxY As Long
    Dim crect As RECT
    Dim rc As Long

    GetScreenRes maxX, maxY
    rc = GetWindowRect(hwnd, crect)
    
    If rc Then
        X = crect.Left + ((crect.Right - crect.Left) / 2)
        Y = crect.Top + ((crect.Bottom - crect.Top) / 2)
        If (X >= 0 And X <= maxX) And (Y >= 0 And Y <= maxY) Then
            MouseMove X, Y
            CenterMouseOn = True
        Else
            CenterMouseOn = False
        End If
    Else
        CenterMouseOn = False
    End If
End Function


' Simulates a mouse click
Public Function MouseFullClick(ByVal MBClick As enButtonToClick) As Boolean
    Dim cbuttons As Long
    Dim dwExtraInfo As Long
    Dim mevent As Long
    
    Select Case MBClick
        Case btcLeft
            mevent = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
        Case btcRight
            mevent = MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP
        Case btcMiddle
            mevent = MOUSEEVENTF_MIDDLEDOWN Or MOUSEEVENTF_MIDDLEUP
        Case Else
            MouseFullClick = False
            Exit Function
    End Select
    mouse_event mevent, 0&, 0&, cbuttons, dwExtraInfo
    MouseFullClick = True
    
End Function


Public Sub MouseMove(ByRef xPixel As Long, ByRef yPixel As Long)
    Dim cbuttons As Long
    Dim dwExtraInfo As Long
    
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, _
        PixelXToMickey(xPixel), PixelYToMickey(yPixel), cbuttons, dwExtraInfo

End Sub



Private Sub Timer1_Timer()
Call MouseMove(500, 300)
End Sub

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۱-شهریور-۱۳۹۲, ۱۱:۳۲:۳۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : policweb, babyy
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: کار با هندل
به هر مکانی که نمیتونید به کنترلهایی که هندل دارند میتونین این کارو انجام بدین با تابع
SetwindowText
یا استفاده از sendmessage و ارسال wm_SetText و متن به پنجره مورد نظر

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۱-شهریور-۱۳۹۲, ۱۱:۵۷:۰۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : policweb, babyy
policweb آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۹۲

تشکرها : 27
( 0 تشکر در 0 ارسال )
ارسال: #4
RE: کار با هندل
ممنون از راهنمایتون اما نمیدونم چطور از این تابع ها استفاده کنم
فرض کنید میخوام درون کادر وارد کردن پسورد در نرم افزار winrar این
کار رو انجام بدم باید به چه شکل نوشته بشه؟

(۲۱-شهریور-۱۳۹۲, ۱۱:۵۷:۰۵)lord_viper نوشته است: به هر مکانی که نمیتونید به کنترلهایی که هندل دارند میتونین این کارو انجام بدین با تابع
SetwindowText
یا استفاده از sendmessage و ارسال wm_SetText و متن به پنجره مورد نظر

من تازه میخوام با توابع api شروع کنم به یاد گرفتن اما هیچ مرجع فارسی
برای توضیح دادن نوع مقدار دهی و فهمیدن نام هندل برنامه یا شی پیدا نکردم
(آخرین ویرایش در این ارسال: ۲۱-شهریور-۱۳۹۲, ۱۲:۵۳:۱۳، توسط policweb.)
۲۱-شهریور-۱۳۹۲, ۱۲:۴۸:۴۴
ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #5
RE: کار با هندل
(۲۱-شهریور-۱۳۹۲, ۱۲:۴۸:۴۴)policweb نوشته است: ممنون از راهنمایتون اما نمیدونم چطور از این تابع ها استفاده کنم
فرض کنید میخوام درون کادر وارد کردن پسورد در نرم افزار winrar این
کار رو انجام بدم باید به چه شکل نوشته بشه؟

(۲۱-شهریور-۱۳۹۲, ۱۱:۵۷:۰۵)lord_viper نوشته است: به هر مکانی که نمیتونید به کنترلهایی که هندل دارند میتونین این کارو انجام بدین با تابع
SetwindowText
یا استفاده از sendmessage و ارسال wm_SetText و متن به پنجره مورد نظر

من تازه میخوام با توابع api شروع کنم به یاد گرفتن اما هیچ مرجع فارسی
برای توضیح دادن نوع مقدار دهی و فهمیدن نام هندل برنامه یا شی پیدا نکردم

منبع برای apiفvاون توی نت هست!
میشه دقیق بگید مشکل شما چیه؟من حس میکنم روش بهتری هم هست ولی درست متوجه مشکل شما نمیشم!
لطفا بگید دقیقا قرار چی درست کنید

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۱-شهریور-۱۳۹۲, ۱۲:۵۶:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, policweb
policweb آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۹۲

تشکرها : 27
( 0 تشکر در 0 ارسال )
ارسال: #6
RE: کار با هندل
یه نوع برنامه امنیتی پرتابل با استفاده از این برنامه پسورد به نرم افزار مثلا winrar ارسال میشه و...
یجورایی پیچیده است نمیدونم تا اینجاش شما فهمیدید یا نه
۲۱-شهریور-۱۳۹۲, ۱۴:۰۴:۰۷
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #7
RE: کار با هندل
شما 3 راه دارین
1.استفاده از FindWindow و enumwindow
http://msdn.microsoft.com/en-us/library/...85%29.aspx
http://msdn.microsoft.com/en-us/library/...85%29.aspx

2.استفاده از GetforegroundWindow
http://msdn.microsoft.com/en-us/library/...85%29.aspx

3. استتفاده از GetCursorPos , WindowFromPoint
http://msdn.microsoft.com/en-us/library/...85%29.aspx
http://msdn.microsoft.com/en-us/library/...85%29.aspx

بعد از اینکه با یکی از این روشها هندل EditBox مربوط به پسورد Winrar رو بدست اوردین با استفاده از تابع SetwindowText یا sendmessage متن رو بهش پاس میدین

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۳-شهریور-۱۳۹۲, ۰۹:۴۶:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : policweb, babyy
policweb آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۹۲

تشکرها : 27
( 0 تشکر در 0 ارسال )
ارسال: #8
RE: کار با هندل
خیلی خیلی لطف دارید شما

اما خواهشن خواهشن درمورد استفاده از این توابع توضیح بدید
مثلن WindowFromPoint از چند پارامتر ورودی داره که نامفهومه نمیدومم چطور استفاده کنم
کلن با ساختارشون مشکل دارم
مطمئنم حتی در اینده کسانی هستن که به این مشکل برمیخورن
۲۳-شهریور-۱۳۹۲, ۱۰:۲۴:۰۳
ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #9
RE: کار با هندل
حتما باید با موس انجام بدی؟فکر کنم با کی برد راحت تر باشه ها!

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۳-شهریور-۱۳۹۲, ۱۶:۰۱:۳۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : policweb, babyy
policweb آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۹۲

تشکرها : 27
( 0 تشکر در 0 ارسال )
ارسال: #10
RE: کار با هندل
نه با ماوس زیاد واجب نیست با کیبردم میشه
اما لطف کنید توضیحاتشون رو هم بگید

کــــمــــــــــــــــک یکی کار با توابع رو بهم یاد بده اصلا هیچ کاری از دستم بر نمیاد داخل برنام نویسی:((
(آخرین ویرایش در این ارسال: ۲۳-شهریور-۱۳۹۲, ۲۰:۳۵:۵۸، توسط policweb.)
۲۳-شهریور-۱۳۹۲, ۱۹:۵۱:۱۰
ارسال‌ها
پاسخ
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #11
RE: کار با هندل
(۲۳-شهریور-۱۳۹۲, ۱۹:۵۱:۱۰)policweb نوشته است: نه با ماوس زیاد واجب نیست با کیبردم میشه
اما لطف کنید توضیحاتشون رو هم بگید

کــــمــــــــــــــــک یکی کار با توابع رو بهم یاد بده اصلا هیچ کاری از دستم بر نمیاد داخل برنام نویسی:((

من که نمیدونم چی لازم دارید دقیقا!
پیشنهاد میکنم برنامه نویسی را صفر شروع کنید کم کم برید جلو !
الان یکم بگید قارا چی بشه دقیقا؟
با کمک تابع
sendkey()
میتونید کلید ارسال کنید و دقیقا هرکاری دوست دارید با کیبرد بکنید خیلی ساده!

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۳-شهریور-۱۳۹۲, ۲۱:۴۷:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : policweb, babyy


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوالاتی درباره ی هندل javaweb 7 7,499 ۱۸-خرداد-۱۳۹۲, ۱۴:۲۱:۲۸
آخرین ارسال: Di Di
  [سوال] یک سوال ساده در مورد هندل thinkdiff 1 2,838 ۱۴-فروردین-۱۳۹۲, ۱۳:۱۶:۲۸
آخرین ارسال: Di Di
  [سوال] اجرا نشدن دستورات هندل کردن خطا در محیط IDE وی بی flush 6 6,016 ۰۵-اسفند-۱۳۹۱, ۲۱:۴۹:۳۵
آخرین ارسال: Payman62
Exclamation [سوال] هندل اشیاء از کلاس Qwidget javadi_31456 2 2,705 ۲۸-مرداد-۱۳۹۱, ۱۸:۴۳:۳۸
آخرین ارسال: sobhan93
Question پیدا کردن هندل یک شی که caption آن را نمیدانیم crafcrab 12 10,810 ۱۹-بهمن-۱۳۹۰, ۰۹:۵۱:۱۸
آخرین ارسال: lord_viper
Question [سوال] برنامه استخراج هندل اشیا crafcrab 2 2,902 ۱۲-بهمن-۱۳۹۰, ۱۰:۰۹:۴۷
آخرین ارسال: Di Di
  [سوال] هندل کامند Send یاهو p8tir 0 1,930 ۱۸-آبان-۱۳۹۰, ۱۹:۴۱:۲۸
آخرین ارسال: p8tir
Question [سوال] گرفتن هندل یک کنترل برنامه خارجی HamedFaa 2 3,287 ۱۱-اردیبهشت-۱۳۹۰, ۱۲:۲۹:۰۳
آخرین ارسال: HamedFaa
  پیدا کردن هندل یک برنامه از روی اسم پروسس آن crafcrab 1 2,281 ۲۶-آذر-۱۳۸۹, ۱۴:۲۳:۱۶
آخرین ارسال: crafcrab
  پیدا کردن اسم دکمه از رویه هندل crafcrab 3 3,272 ۲۳-شهریور-۱۳۸۹, ۱۶:۴۱:۰۸
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS