امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دريافت مقادير آبجكت برنامه هاي ديگه
نویسنده پیام
vz67 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 193
موضوع‌ها: 50
تاریخ عضویت: اسفند ۱۳۸۶

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #1
دريافت مقادير آبجكت برنامه هاي ديگه
سلام
چندتا سوال كوچولو زد به ذهنم ، نصفه شبي بلد شدم و ........
1 - processbar تو يك برنامه ديگه هست ، ميشه value اون رو خوند
2 - مي خوام properties آبجكتهايي كه تو برنامه هاي ديگه هست رو بدست بيارم مثل ليست باكس يا دكمه اگه بشه تغيير هم بدم معركه ميشه
3 - ميشه فهميد كه يك برنامه خارجي الان در حال اجراي sub هست يا نه ؟ اگر ميشه مي تونم اون sub يا function رو از كار بندازم . يا اطلاعاتي در موردش بدست بيارم (هرچي باشه كافيه ، مثلا زمان شروع )
فقط همينا ، ممنون از لطف دوستان كه مارو تنها نميزارن ، با تشكر !!! منتظر جواب ميمونم

ايتدا تورا ناديده ميگيرند
سپس مسخره ات ميكنند
و در نهايت با تو به مبارزه برمي خيزند
۲۸-خرداد-۱۳۸۷, ۰۱:۲۴:۴۱
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #2
RE: دريافت مقادير آبجكت برنامه هاي ديگه
سلام.
سوال اولت که نا مفهومه.
سوال دومت به راحتی امکان پذیره. باید هندل برنامه مورد نظرتو بگیری و بعد دنبال هندل های child اون بگردی. اگه تونستم سورسشو برات میذارم. هندل شی مورد نظرتو که گرفتی با setwindowtext میتونی متنشو عوض کنی. api های دیگم برای کارای دیگه هست.
سوال سوم هم فکر میکنم شدنیه. همون طور که آنتی ها تو کار برنامه های ما دخالت میکنن.
۲۸-خرداد-۱۳۸۷, ۰۸:۵۶:۴۲
ارسال‌ها
پاسخ
تشکر شده توسط : Di Di, vz67
lord_viper غایب
مدیر کل انجمن
*****

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

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: دريافت مقادير آبجكت برنامه هاي ديگه
جناب vz76 لطفا سوالاتتونو تو تاپیکهای جدا گانه بپرسین
در مورد سوال اول:باید مقدار حافظه اون progressbar رو برای پیدا کردن مقدارش بگردین یعتی threadid مربوط به اونو بدست بیارین و تو یه حلقه اون بخش از حافظه رو با read process memory بخونین مثل کاری که برنامه های cheat engine بازیها انجام میدن
در مورد سوال دوم: هر برنامه ای تو ویندوز برای ارتباط با سایر اجزا از message استفاده میکنه شما میتونین با فرستاده این پیغامها به کمک دستور sendmessage حالتهای اون شیی رو تغییر بدین در مورد property ها هم معمولا مقادیر اونها در برنامه ثبت میشه تا در هنگام load با استفاده از انها مقدار دهی بشه شما میتونین به اون قسمت دسترسی پیدا کرده و مقدار property هر object رد به دلخواه تنظیم کنین
در مورد سوال سوم:هم کاریه که با استفاده از debuger ها میتونین فراخوانی یک روتین یا تابع رو تشخیص بدین و برای غیر فعال کردنش هم راه های زیادی هست که مربوط به بخش کرک میشه
۲۸-خرداد-۱۳۸۷, ۱۰:۰۴:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Di Di, vz67
vz67 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 193
موضوع‌ها: 50
تاریخ عضویت: اسفند ۱۳۸۶

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #4
RE: دريافت مقادير آبجكت برنامه هاي ديگه
سلام
سوال اول و دومم رو بايد يكي ميكردم چون يك مفهوم رو در برداره
( آقا پيمان اگر لطف كني و سورسش رو در حد راهنمائي هم بزاري ممنون ميشم )
در مورد سوال اول ( و دوم ) بايد بگم فرضا من با windowfrompoint هندل يك آبجكت رو گرفتم ، حالا چه طوري بايد اطلاعات ديگه اون رو بدست بيارم مثل : نام ، آبجكت والد ، اندازه ، مقادير آبجكتهايي مثل Progressbar و اطلاعاتي از اين قبيل
sendmessge كه دوستان فرمودن آرگومانهاي 2و3و4 چه مقاديري رو بايد بگيرن ، براي گرفتن اطلاعات هم اگر اشتباه نكنم Getmesage بايد باشه ، حالا اين يكي ديگه چي پارامترهايي رو ميگيره ؟
براي تغيير پارامترها و خوندن اونها فرض بر اين هست كه اون برنامه اجرا شده
راستي lord_viper عزيز اگر داري يك سورس كوچولو در حد راهنمايي با VB بزاري ممنون ميشم
ممنون

ايتدا تورا ناديده ميگيرند
سپس مسخره ات ميكنند
و در نهايت با تو به مبارزه برمي خيزند
(آخرین ویرایش در این ارسال: ۲۸-خرداد-۱۳۸۷, ۱۷:۲۲:۵۷، توسط vz67.)
۲۸-خرداد-۱۳۸۷, ۱۷:۱۱:۴۹
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

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

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #5
RE: دريافت مقادير آبجكت برنامه هاي ديگه
vz67 نوشته است:در مورد سوال اول ( و دوم ) بايد بگم فرضا من با windowfrompoint هندل يك آبجكت رو گرفتم ، حالا چه طوري بايد اطلاعات ديگه اون رو بدست بيارم مثل : نام ، آبجكت والد ، اندازه ، مقادير آبجكتهايي مثل
Progressbar و اطلاعاتي از اين قبيل
برای پیدا کردن این اطلاعات توابع api وجود داره مثل
getwindowclassname و get parent وAdjustWindowRect
نقل قول: sendmessge كه دوستان فرمودن آرگومانهاي 2و3و4 چه مقاديري رو بايد بگيرن ، براي گرفتن اطلاعات هم اگر اشتباه نكنم Getmesage بايد باشه ، حالا اين يكي ديگه چي پارامترهايي رو ميگيره ؟
هر شیی دستورات مربوط به خودشو داره مثلا اینا مال listbox هست
LB_ADDFILE
LB_ADDSTRING
LB_DELETESTRING
LB_DIR
برای اطلاعات بیشتر به msdn مراجعه کنین پارامترهای دوم و سوم بستگی به نوع پیغام داره ولی معمولا 0 هستند
نقل قول: براي تغيير پارامترها و خوندن اونها فرض بر اين هست كه اون برنامه اجرا شده
دقیقا همین طوره
نقل قول: راستي lord_viper عزيز اگر داري يك سورس كوچولو در حد راهنمايي با
یه کد عالی دارم ولی به دلفی هست امار کاملی میده که خودمم ازش استفاده میکنم
اگه به دردتون میخوره بگو سورسو خودشو با هم بزارم[/quote]
۲۸-خرداد-۱۳۸۷, ۱۹:۴۶:۰۰
وب سایت ارسال‌ها
پاسخ
vz67 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 193
موضوع‌ها: 50
تاریخ عضویت: اسفند ۱۳۸۶

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #6
RE: دريافت مقادير آبجكت برنامه هاي ديگه
من كه از دلفي سر در نميارم ، ولي ميشه سورس رو بدي !؟
توابع API و نظم استفاده از اونهارو حداقل مي تونم ازش استخراج كنم ، درسته ؟
ممنون خيلي لطف كردي

ايتدا تورا ناديده ميگيرند
سپس مسخره ات ميكنند
و در نهايت با تو به مبارزه برمي خيزند
۲۸-خرداد-۱۳۸۷, ۲۲:۲۵:۱۷
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

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

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #7
RE: دريافت مقادير آبجكت برنامه هاي ديگه
برای تبدیل integer به hex
نقل قول: function Int2Hex( Value : DWord; Digits : Integer ) : String;
var Buf: array[ 0..8 ] of Char;
Dest : PChar;

function HexDigit( B : Byte ) : Char;
{$IFDEF F_P}
const
HexDigitChr: array[ 0..15 ] of Char = ( '0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F' );
begin
Result := HexDigitChr[ B and $F ];
end;
{$ELSE DELPHI}
asm
{$IFDEF PARANOIA}
DB $3C,9
{$ELSE}
CMP AL,9
{$ENDIF}
JA @@1
{$IFDEF PARANOIA}
DB $04, $30-$41+$0A
{$ELSE}
ADD AL,30h-41h+0Ah
{$ENDIF}
@@1:
{$IFDEF PARANOIA}
DB $04, $41-$0A
{$ELSE}
ADD AL,41h-0Ah
{$ENDIF}
end;
{$ENDIF F_P/DELPHI}
begin
Dest := @Buf[ 8 ];
Dest^ := #0;
repeat
Dec( Dest );
Dest^ := '0';
if Value <> 0 then
begin
Dest^ := HexDigit( Value and $F );
Value := Value shr 4;
end;
Dec( Digits );
until (Value = 0) and (Digits <= 0);
Result := Dest;
end;
گرفتن ادرس فایل exe از روی pid شناسه پروسه
نقل قول: function Pid2Path(PID: DWORD): string;
var
Handle: THandle;
begin
Result := 'Not Found!';
Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);
if Handle <> 0 then
try
SetLength(Result, MAX_PATH);
begin
if GetModuleFileNameEx(Handle, 0, PChar(Result), MAX_PATH) > 0 then
SetLength(Result, StrLen(PChar(Result)))
else
exit;
end
finally
CloseHandle(Handle);
end;
end;
گرفتن سایز فایل
نقل قول: function GetFileSize(sFilePath: String): Integer;
var
tsrRec: TSearchRec;
iRes: Integer;
begin
Result := 0;
FillChar(tsrRec,SizeOf(tsrRec),0);
iRes := SysUtils.FindFirst(sFilePath,faAnyFile,tsrRec);
if iRes = 0 then
begin
Result := tsrRec.Size;
SysUtils.FindClose(tsrRec);
end;
end;
اینجا یه timer هست
نقل قول: procedure TForm1.Timer1Timer(Sender: TObject);
var
Pos:Tpoint;
WHwnd:hwnd;
WinClass : Array[0..256] Of Char;
ParentClass : Array[0..256] Of Char;
Path,Name : string;
First:hwnd;
Rect:TRect;
ID,Tid:Cardinal;
info:tagWINDOWINFO;
style:integer;
Proc:Thandle;
Loop: Integer;
Size:integer;
ControlID:integer;
begin
گرفتن مکان مکانما
نقل قول: (*******************************************)
GetCursorPos(Pos);
Px.Text := intTostr(pos.X);
Py.Text := intTostr(pos.Y);
گرفتن هندل جایی که مکانما در انجا قرار دارد
نقل قول: (*******************************************)
WHwnd:=WindowFromPoint(Pos);
Hwt.Text := intTostr(WHwnd);
Hwh.Text := '0x'+int2hex(WHwnd,5);
گرفتن نام کلاس شیی
نقل قول: (*******************************************)
GetClassName(WHwnd,WinClass,255);
Cls.Text :=WinClass;
(*******************************************)
If SendMessage(WHwnd,EM_GETPASSWORDCHAR,0,0) <> 0 then
begin
Pw.Color := clyellow ;
Pw.Text := 'Yes';
end
else begin
Pw.Color:=clWindow ;
Pw.Text := 'No';
end;
گرقتن محدوده نمایش ان کنترل
نقل قول: (*******************************************)
GetWindowRect(WHwnd,Rect);
Rec.Text := '[ '+intTostr(Rect.Left )+' x '+intTostr(rect.Top)+' ]'+' [ '+intTostr(rect.Right)+' x '+intTostr(rect.Bottom)+' ] '+
intTostr(Rect.Right - Rect.Left )+ ' x '+intTostr(Rect.Bottom - Rect.Top);
اطلاعات مربوت به style کنترل
نقل قول: (*******************************************)
GetWindowInfo(WHwnd,info);
Style := info.dwStyle;
St.Text :='0x'+int2Hex(style,8);
بدشت اوردن شناسه ریسمان مربوط به ان کنترل
نقل قول: (*******************************************)
Tid:=GetWindowThreadProcessId(WHwnd,ID);
Path:=Pid2Path(ID);
Name:=ExtractFileName(Path);
Size:=GetFileSize(Path);
ControlID:=GetDlgCtrlID(WHwnd);
Fs.Text:=IntToStr(Size);
En.Text:=Name;
Pth.Text := Path;
Td.Text := intTostr(Tid);
Cid.Text := IntToStr(ControlID);
(*******************************************)
Pid.Text := intTostr(ID);
بدست اوردن parent ان کنترل
نقل قول: (*******************************************)
First:=GetParent(WHwnd);
Pcl.Text := intTostr(First);
(*******************************************)
Pch.Text := '0x'+int2hex(First,5);
بدست اوردن کلاس مربوط به parent
نقل قول: (*******************************************)
GetClassName(First,ParentClass,255);
Ph.Text := ParentClass;
(*******************************************)
end;

end.
موفق باشید[/quote]
۲۹-خرداد-۱۳۸۷, ۰۰:۱۴:۴۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : vz67, aminbrleevb
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #8
RE: دريافت مقادير آبجكت برنامه هاي ديگه
اتفاقا نرم اقزاری رو که این کارو می کنه نوشتم، حتی سورس کد رو هم خودش تولید میکنه و در اختیار کاربر قرار میده و چندین امکان منحصر به فرد دیگه که به شخصه مشابهشو ندیدم در اختیار کاربر قرار میده...
1 ماه پیش نوشته بوذمش برای جشنواره خوارزمی البته فقط برای کسب تجربه شرکت کردم چون واقعا نمیدونم در چه سطحی برگزار میشه و برنامه من در اون سطح بود یا نه.
اگه وقت کردم با توضیحات کامل توی سایت میزارمش...

۳۰-خرداد-۱۳۸۷, ۱۲:۴۶:۲۶
ارسال‌ها
پاسخ
تشکر شده توسط : vz67


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ارسال و دريافت اطلاعات با پورت usb aliomid 11 11,922 ۲۶-مهر-۱۳۹۱, ۲۱:۵۹:۲۸
آخرین ارسال: HELLO 4 U
  برنامه من رو سيستمهاي ديگه كار نميكنه! Mohandese_Javan 8 6,411 ۲۷-مرداد-۱۳۹۰, ۱۸:۵۲:۵۶
آخرین ارسال: rap0661
  كدم پايگاه داده بهتره و چند سوال ديگه 1nafar 17 11,573 ۰۸-مرداد-۱۳۸۸, ۱۸:۲۲:۳۹
آخرین ارسال: ajlajlajl
  پيدا كردن هندل اشيا داخل برنامه هاي ديگه!!!! mamad-pc 3 3,748 ۲۹-اردیبهشت-۱۳۸۸, ۱۸:۴۴:۳۹
آخرین ارسال: HoseinVig
  اجراي برنامه همزمان با يه برنامه ديگه alaska 18 10,562 ۱۱-بهمن-۱۳۸۶, ۰۰:۴۱:۵۲
آخرین ارسال: alaska
  آبجكت ماروسافت آجنت چيست ؟ ashkan 6 5,694 ۰۸-مهر-۱۳۸۵, ۱۷:۳۴:۳۰
آخرین ارسال: Rayanehfarda
  شر كردن كانكشن از رو يه سيستم ديگه NabiKAZ 5 4,921 ۱۱-مرداد-۱۳۸۵, ۰۸:۲۷:۴۴
آخرین ارسال: NabiKAZ
  ديگه هيچ جا امن نيست - افسانه ي رويايي به واقعيت پيوست... rRezar 24 15,316 ۲۴-شهریور-۱۳۸۴, ۱۶:۳۹:۲۲
آخرین ارسال: lolohacko
  دريافت صدا در وي بي mehrsoft 3 2,559 ۲۶-اردیبهشت-۱۳۸۴, ۰۶:۴۱:۵۸
آخرین ارسال: kimia
  محاسبه مقادير فرمولي از طريق Text Box redpen 1 2,248 ۲۴-اردیبهشت-۱۳۸۴, ۰۸:۱۱:۰۹
آخرین ارسال: ashkan

پرش به انجمن:


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

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