ايران ويج

نسخه‌ی کامل: سوالاتی درباره ی هندل
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستانLaugh

در باره ی هندل سوالاتی داشتم

مثلا وقتی میگن هندل پیدا کن یهنی چی؟

یا میگن هندل فلان چیز بگیر یعنی چی؟

با تشکــــــــــــــــرHeart
هندل در لغت به معناي دسته يا دستگيره هست

در سيستم عامل هر آبجكتي يك كد شناسائي داره كه به اون هندل مي گن شما با داشتن اين كد و استفاده از توابع API سيستم

مي تونيد به طور كامل اون آبجكت رو تحت كنترل خودتون داشته باشيد

مثلا براي پيدا كردن هندل يك فرم توابع مختلف وجود داره كه بر اساس ProccID ، WindowCaption و .... مي توان هندل فرم

مورد نظر رو پيدا كرد و بعد مي شه هندل تمام كلاس ها و آپجكتهاي روي اون رو هم دونه دونه گرفت و باهاشون كار كرد

از هندل معمولا براي اتوميشن استفاده مي شه زماني كه مي خواهيد با عناصر يك برنامه ديگه كه كدش رو نداريد كار كنيد
با سلام و تشکر واقعا ممنونHeartبیستینClap
یکی،یه جایی این سوال زیرو پرسیده برای منم سوال و مسئله شده اگر جوابشو بدید.
فقط اگه امکانش هست مثالی هم بزنین
نقل قول: سوال: این شرکتای ایرانی که میان و نرم افزارای خارجی رو میریزن تو سی دی و با کپی رایت خودشون که داخل خودخود نرم افزار میزارن آیا با هندل این کارو میکن؟(منظورم داخل فایل exe شده ی برنامه)
Whistle
با تشکـــــــــــــــــــــــــــــــرHeart از همه ی شماWink
اين سوال شما خيلي كلي هست، جوابش معمولا نه هست!!

خيلي از شركت هاي ايراني از نسخه هاي كرك شده برنامه ها استفاده مي كنن،‌اونها خود كيجن برنامه رو در اختيار كاربر نمي زارن

بلكه اون رو دانلود مي كنن،‌اسم شركتشون رو توش مي زنن و كد فعال سازيش رو بدست آورده و در اختيار كاربر مي زارن

اينطوري شما فكر مي كنيد كه لايسنس خودشونه!! گاهي برنامه رو كرك و مجددا روش قفل خودشون رو قرار مي دن

گاهي اوقات هم اونها رو داخل يك درايومجازي قرار داده و برنامه اي براي لودينگ اون مي نويسن و در آخر گاهي براي برنامه

يك پوسته مي نويسن و به اسم شركت خودشون مي فروشن،‌البته گاهي اوقات هم از اتوميشن استفاده مي كنن كه خيلي كمه
با سلام و تشکر دوبارهHeartHeartHeart
ببخشید ما همیشه وقت شما رو می گیریم(:
اون دوستام درخواست توضیح خط به خط کد زیرو داد
کد php:
Option Explicit
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As LongByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias  "GetWindowTextA" (ByVal hWnd As LongByVal lpString As String_
ByVal  cch 
As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
 
Const GW_HWNDNEXT 2
Const GW_CHILD 5
 
'********************************************
'
*Give it part of the window text your looking for
'*it will give you the hWnd
'
*usefull for windows that text is like "[project] - microsoft visual basic [design]"
'*usage:
'
*Msgbox FindWindowLike("visual basic")
'*Returns 0 if not found
'
*******************************************
 
Function 
FindWindowLike(strPartOfCaption As String) As Long
Dim hWnd 
As Long
Dim strCurrentWindowText 
As String
Dim r 
As Integer
 
hWnd 
GetForegroundWindow
 
Do Until hWnd 0
strCurrentWindowText 
Space$(255)
GetWindowText(hWndstrCurrentWindowText255)
strCurrentWindowText Left$(strCurrentWindowTextr)
'hWnd = GetWindow(hWnd, GW_CHILD)
If InStr(1, LCase(strCurrentWindowText), LCase(strPartOfCaption)) <> 0 Then GoTo Found
hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop
 
Exit Function
Found:
FindWindowLike = hWnd
End Function 
خودم یه چیزییشو بلدم ولی می ترسم اشتباه باشه به اونم اشتباه بگم(هیچ کی نیست بگه چکار داری چین؟اصل کارشونهLaugh)
و همچنین
نقل قول: می گه مانند تصویر زیر از یه برنامس که یه شرکت ایرانی توش دست برده و برند تجاری خودش تو تمامی صفحه های نصبش گذاشته حالا من مونم انا به چه طریقی این کارو کردن؟ با هندل؟ با مجازی سازی؟
[تصویر:  883d1370479212-%D8%B3%D9%88%D8%A7%D9%84%...apture-jpg]
من که می گم هندل نبوده فقط یه فایل نصب براش درست کردنTongue
با تشکــــــــــــــــــــــــــــــــــرHeart
اين يك تابع براي پيدا كردن هندل برنامه مورد نظر با استفاده از قسمتي از نام اون هست.

در ابتداي ماژول چند تابع API تعريف شده !

بعد خود تابع است كه از عنوانش مشخصه مي خواد چكار كنه ،‌يك ورودي داره به صورت استرينگ كه شامل تمام يا بخشي از كپشن

برنامه مورد نظر هست و خروجيش هم هندل برنامه است كه مقدارش لانگ هست، چنانچه برنامه اي با اسم خواسته شده

پيدا نشه مقدار صفر رو بر مي گردونه

خوب در خط اول ، در متغير hwnd‌ مقدار هندل اولين پنجره رو ذخيره مي كنه

در خط بعدي ما وارد يك حلقه مي شيم كه مادامي كه HWND مقدارش صفر نشده يا پنجره مورد نظرمون پيدا نشده ادامه خواهد

داشت اين لوپ چكار مي كنه،‌دونه دونه هندل پنجره ها ( كلاسها ) رو مي گيره و كپشن اونها رو با متن وودي برنامه مقايسه

مي كنه، چنانچه متن يكي از اونها با متن ما تطبيق داشته باشه از حلقه خارج به به خطي Found مي ره،‌در اونجا مقدار

HWND پنجره مورد نظر به عنوان خروجي تابع ذخيره شده و از تابع خارج مي شيم

عكس برنامه ات هم نمياد، دقيقا بگو مشكلت چيه برنامه اي كه باهاش مشكل داري دقيقا چي هست تا سريعتر به نتيجه برسي
با تشکر فراوانــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــHeartــــــــــــــــــــــــــــــــــــــــــــــــــــ
ممنون از جوابتون
نقل قول: عكس برنامه ات هم نمياد، دقيقا بگو مشكلت چيه برنامه اي كه باهاش مشكل داري دقيقا چي هست تا سريعتر به نتيجه برسي
اون تصویر تصویر Setup یک برنامه خارجی است ولی در آن لگو و نام شرکت ایرانی قرار دارد[تصویرو پیوست کردم] این دوستمون می خواد بدونه آیا این ها رو با هندل تغییر دادند(که من فکر می کنم این کارو نکردنBiggrin) من خودم فعلا با هندل کاری ندارم ولی خیلی دوست دارم یاد بگیرم و در اینجا هم فقط می خواد بدونه آیا این کارو با هندل کردند یا نهWhistle
با تشکـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــHeartــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــر
اين آقاي توكلي هزار ساله داره از يك ريسورس اديتور ساده براي دست اندازي هاي ناشيانه اش تو برنامه ها استفاده مي كنه

مي تونيد اين ريسورسر ها رو تو بخش ابزار كرك دانلود كنيد

همچنين گاهي فايل هاي نصب شده برنامه رو جمع مي كنه و براشون يك ستاپ مي سازه كه با حتي با خود winrar هم مي شه

هيچ جور كدنويسي براي اين كارهاش انجام نداده

نكته : به علت استفاده از همين ريسورسر ها مثل ReHack معمولا تو ويندوزهاش باگ هست فراووووون و گاهي هم ديدم كه

برنامه هاش آلوده به ويروس بوده ( البته عمدي نيست ،سيستمش آلوده بوده و از روي اون پك درست كرده )