PDA

View Full Version : سوال: طریقه بدست اوردن درصد از پنجره دانلود منیجر



movaffag
جمعه 09 تیر 1391, 15:21 عصر
سلام من می خوام وقتی با دانلود منیجر دانلود می کنم مثلا idm بتونم درصدی که دانلود شده رو تو برنامه نشون بدم !!!
چطوری میشه این کار رو کرد؟

بهروز عباسی
شنبه 10 تیر 1391, 00:00 صبح
درود اگه میشه کمی بیشتر توضیح بدید!!

movaffag
شنبه 10 تیر 1391, 09:31 صبح
http://www.allaeas.com/wp-content/uploads/2010/08/Free-Intenet-Downlod-Manager-IDM.gif

الان توی این عکس ببینین یه درصدی سمت چپ بالا گوشه نوشته من می خوام اون درصد رو توی برنامه خودم هم بیارم (نشون بدم) چطور می تونم همچین کاری کنم

بهروز عباسی
شنبه 10 تیر 1391, 23:35 عصر
الان توی این عکس ببینین یه درصدی سمت چپ بالا گوشه نوشته من می خوام اون درصد رو توی برنامه خودم هم بیارم
1-عکس کجاست
2-اگه درصد استفاده جای نوشته شده با API هندلش رو به دست بیار و مقدار رشته ای (Caption) اونو بخون و در برنامه خودت استفاده کن

موفق باشی

movaffag
یک شنبه 11 تیر 1391, 15:35 عصر
http://www.allaeas.com/wp-content/uploads/2010/08/Free-Intenet-Downlod-Manager-IDM.gif

مشیه تکه کدی برای نمونه قرار بدین

just4froum
یک شنبه 11 تیر 1391, 16:19 عصر
با سلام :

بفرمایید یک Command و یک ListBox بگذار روی فرمت.

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Const GW_CHILD As Long = 5
Private Const GW_HWNDNEXT As Long = 2
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Sub Command1_Click()
Dim DesktopHwnd As Long, ChildHwnd As Long, Class As String
DesktopHwnd = GetDesktopWindow
ChildHwnd = GetWindow(DesktopHwnd, GW_CHILD)

List1.Clear

Do While ChildHwnd
Class = FindClass(ChildHwnd)
If Class = "#32770" Then
If FindWindowEx(ChildHwnd, 0&, vbNullString, "Start positions and download progress by connections") <> 0 Then
If Left(FindText(ChildHwnd), 2) Like "#%" Then
List1.AddItem Left(FindText(ChildHwnd), 2)
ElseIf Left(FindText(ChildHwnd), 3) Like "##%" Then
List1.AddItem Left(FindText(ChildHwnd), 3)
ElseIf Left(FindText(ChildHwnd), 4) Like "###%" Then
List1.AddItem Left(FindText(ChildHwnd), 4)
End If
End If
End If
ChildHwnd = GetWindow(ChildHwnd, GW_HWNDNEXT)
Loop
End Sub

Private Function FindClass(hwnd As Long) As String
Dim buf As String, lenbuf As Long
buf = String(255, Chr(0))
lenbuf = GetClassName(hwnd, buf, 255)
buf = Left(buf, lenbuf)
FindClass = buf
End Function

Private Function FindText(hwnd As Long) As String
Dim buf As String, lenbuf As Long
buf = String(255, Chr(0))
lenbuf = GetWindowText(hwnd, buf, 255)
buf = Left(buf, lenbuf)
FindText = buf
End Function

movaffag
یک شنبه 11 تیر 1391, 16:27 عصر
منکه نتونشتم جواب بگیرم ازش

just4froum
یک شنبه 11 تیر 1391, 16:40 عصر
برنامه بالا رو یکم تغییر دادم الان کل متن بالای IDM رو که داره دانلود می کنه رو نشون میده. استخراج درصد ازش دیگه کاری نداره.

برنامه ضمیمه شد.
:قلب::قلب::قلب:

سید حمید حق پرست
یک شنبه 11 تیر 1391, 16:48 عصر
سلام علیکم
با اجازه ی آقای just4froum (http://barnamenevis.org/member.php?211054-just4froum) کدهاشونو به صورت سورس در اوردم و به جای لیست لیبیل قرار دادم
گفتم شاید بخواید لیبیل باشه . برای اینکه برنامه نشونش بده اول یک دانلود رو شروع کنید و برنامه رو ببینید


موفق باشید


یا علی (ع)

movaffag
یک شنبه 11 تیر 1391, 19:34 عصر
دوستان ممنون از کد هایی که قرار دادین من تست کردم ولی جواب نداد؟
مشکل میتونه از کجا باشه؟

just4froum
یک شنبه 11 تیر 1391, 20:09 عصر
ورژن IDM شما چنده ؟
ویندوزتون چی ؟

مال من
6.07
seven

movaffag
یک شنبه 11 تیر 1391, 21:05 عصر
xp

6.07