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

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

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #1
ارتباط با list view از طريق API
سلام دوستان
ميخوام با استفاده از API با list view ارتباط برقرار كنم
يعني اينكه بين آيتمهاش موضوع خودم رو جستجو كنم و آيتمي رو كه ميخوام select كنم
با LVM_GETITEMCOUNT تونستم تعداد آيتمهاي موجود در list view رو بگيرم
حالا براي اون دوتاي بالايي نميدونم ولي فكر كنم LVM_GETITEMTEXT كار كنه
اما مشكل من فرستادن يك نوع جديد به صورت زير هست
کد:
Private Type LVITEM
    mask As Long
    iItem As Long
    iSubItem As Long
    state As Long
    stateMask As Long
    pszText As String
    cchTextMax As Long
    iImage As Long
    lParam As Long
    iIndent As Long
End Type
كدومهاش رو بايد مقدار دهي كنم
طرز كارشون چي جوري هست
ممنون !

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

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #2
RE: ارتباط با list view از طريق API
کد:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const LVM_FIRST = &H1000 ' ListView messages
Public Const LVM_GETITEMCOUNT = (LVM_FIRST + 4)
Public Const LVM_GETITEMTEXTA = (LVM_FIRST + 45) 'unicode
Public Const LVM_GETITEMTEXTW = (LVM_FIRST + 115)

Public Type LVITEM
mask As Long
iItem As Long
iSubItem As Long
state As Long
stateMask As Long
pszText As Long 'String
cchTextMax As Long
iImage As Long
lParam As Long
iIndent As Long 'for IE>3
End Type

Function GetListViewText(ByVal hwnd As Long, ByVal ItemIndex As Long) As String
' Obtain the name of the specified Item of the list view
'On Error Resume Next
Dim objItem As LVITEM
Dim baBuffer(320) As Byte, N As Long
With objItem
.mask = LVIF_TEXT
.iSubItem = 0
.pszText = VarPtr(baBuffer(0))
.cchTextMax = UBound(baBuffer) - 1
End With
N = SendMessage(hwnd, LVM_GETITEMTEXTA, ItemIndex - 1, objItem) ' ItemIndex-1 is because of list is zero-based index
GetListViewText = Left$(StrConv(baBuffer, vbUnicode), N) 'convert from binary byte array to a String
End Function

Function GetListViewCount(ByVal hwnd As Long) As Long
'this simply get number of items
GetListViewCount = SendMessage(hwnd, LVM_GETITEMCOUNT, 0&, ByVal 0&)
End Function

کد:
Private Sub Command1_Click()

'With ListView1
'.View = lvwReport
'.ColumnHeaders.Add Text:="Name"
'.ListItems.Add Text:="John"
'.ListItems.Add Text:="Kharazmi"
'.ListItems.Add Text:="ABCD"
'.Refresh
'End With

Label1.Caption = "N = " & GetListViewCount(ListView1.hwnd)
Label2.Caption = "Item 1 = " & GetListViewText(ListView1.hwnd, 1)
Label3.Caption = "Item 3 = " & GetListViewText(ListView1.hwnd, 3)


End Sub

برای من وقتی هندل ليست ويو صفحه ديگه رو ميزارم اون برنامه ارور dont send ميخوره دليلش رو نميدونم.
(آخرین ویرایش در این ارسال: ۲۱-شهریور-۱۳۸۷, ۰۸:۱۹:۲۶، توسط CRazYFULL.)
۲۱-شهریور-۱۳۸۷, ۰۸:۱۸:۳۶
ارسال‌ها
پاسخ
تشکر شده توسط : vz67
vz67 آفلاین
كاربر دو ستاره
**

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

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #3
RE: ارتباط با list view از طريق API
خيلي ممنون عالي بود اما ...
با ليست ويو تو برنامه خودم كار ميكنه ولي برنامه هاي ديگه مثل explorer خطا ميده و explorer رو ريست ميكنه
دوستان و اساتيد كسي مي تونه اين مشكل رو حل كنه ؟!

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

ارسال‌ها: 518
موضوع‌ها: 52
تاریخ عضویت: تير ۱۳۸۶

تشکرها : 423
( 588 تشکر در 140 ارسال )
ارسال: #4
RE: ارتباط با list view از طريق API
شايد كدي كه هندل اكسپلورر رو مي گيره مشكل داشته باشه
مي توني كدشو بذاري؟

[تصویر:  banner_moharram-21.png]
روزها عاقلترينم شامها ديوانه ام...

www.EleRam.com :: نرم افزار هاي فارسي (رايگان)
www.PhotoImpact.blogfa.com :: آموزش کامل فتوايمپکت
۲۵-شهریور-۱۳۸۷, ۰۰:۰۷:۳۰
وب سایت ارسال‌ها
پاسخ
vz67 آفلاین
كاربر دو ستاره
**

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

تشکرها : 106
( 52 تشکر در 37 ارسال )
ارسال: #5
RE: ارتباط با list view از طريق API
اين هم كدي كه هم هندل اكسپلورر و در نهايت هندل list view رو به من ميده
با تابع lvm_getitemcount كار كرد ، اما با اين يكي مشكل داره
کد:
Dim hwnd As Long
Shell "explorer C:\", vbMaximizedFocus
A& = GetForegroundWindow
hwnd = FindWindowEx(A&, 0, "SHELLDLL_DefView", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "DUIViewWndClassName", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "DirectUIHWND", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "CtrlNotifySink", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "SysListView32", "FolderView")
'handel list view = hwnd

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


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ارتباط visual basic با دیگر نرم افزارها cortex-m3 2 3,317 ۳۰-شهریور-۱۳۹۴, ۱۵:۱۱:۲۳
آخرین ارسال: kimiafars
  مشکل ارتباط adodc با پایگاه داده access siana_k1980 6 6,094 ۰۱-بهمن-۱۳۹۱, ۱۲:۰۵:۳۲
آخرین ارسال: shey2nak
  گرفتن Ignore List snoopboy 9 8,079 ۲۷-آبان-۱۳۹۱, ۲۱:۳۶:۱۳
آخرین ارسال: *spring
Question [سوال] ارتباط با سرور Voice یاهو W-I-L-S-O-N 0 2,521 ۰۵-شهریور-۱۳۹۱, ۱۴:۰۲:۳۶
آخرین ارسال: W-I-L-S-O-N
  ارتباط aliarchin 2 3,729 ۱۴-خرداد-۱۳۹۱, ۱۸:۳۶:۰۸
آخرین ارسال: Ghoghnus
  عدم ارتباط با دیتابیس sahand87 5 5,523 ۰۹-اسفند-۱۳۹۰, ۱۱:۱۰:۳۳
آخرین ارسال: Di Di
  ارتباط با com apcog 2 2,950 ۱۵-بهمن-۱۳۹۰, ۱۸:۵۵:۴۱
آخرین ارسال: abbasalifix
Question جلوگیری از جا به جای آیتم های List View !!! 1120 1 3,152 ۰۹-بهمن-۱۳۹۰, ۲۳:۵۲:۱۰
آخرین ارسال: HamedFaa
  [سوال] اجراي يك برنامه از طريق آيكون برنامه در كنار ساعت در نوار وظيفه one hacker alone 3 3,273 ۲۷-آذر-۱۳۹۰, ۱۲:۲۷:۱۴
آخرین ارسال: Ghoghnus
  مشکل کار با ابزار Tree View restles20 3 4,278 ۱۹-آذر-۱۳۹۰, ۰۴:۰۰:۲۲
آخرین ارسال: sehm67

پرش به انجمن:


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

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