تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: خوندن آیتم های لیست باکس یک نرم افزار دیگر

  1. #1
    پروفشنال ULF_VB6's Avatar
    تاريخ عضويت
    Feb 2007
    پست ها
    591

    پيش فرض خوندن آیتم های لیست باکس یک نرم افزار دیگر

    سلام
    من باید برنامه ای بنویسم که میاد آیتم های داخل یه لیست باکس رو که داخل برنامه دیگه ای هستش رو میخونه و ذخیره میکنه.

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

  2. #2
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    باید از تابع SendMessage استفاده کنین با ثابت LB_GETTEXT :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  3. #3
    پروفشنال ULF_VB6's Avatar
    تاريخ عضويت
    Feb 2007
    پست ها
    591

    پيش فرض

    خيلي لطف كردي. واقعا ممنونم.
    برم ببينم مي‌تونم ازش استفاده كنم.

  4. #4
    پروفشنال ULF_VB6's Avatar
    تاريخ عضويت
    Feb 2007
    پست ها
    591

    پيش فرض

    آقا یه مشکل

    من اینو تست کردم، ولی مقدار LParam رو خالی میده.
    مقدار برگشتی تابع هم 4 میشه.
    4 یعنی چی؟

    راستی اگه بخوام متن toolTip یکی از آیتم های لیست باکس رو در بیارم، اون موقع باید از چه ثابتی استفاده کنم.
    من گشتم ولی چیزی پیدا نکردم.

    اگه لطف کنی یه توضیحاتی هم راجع به این تابع بدی ممنون میشم

  5. #5
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    طول بافر رو به اندازه کافی گرفتی؟ میتونی مثلا 255 بگیری یا با همین تابع SendMessage و ثابت LB_GETTEXTLENGTH اول طول آیتم رو بگیری و بعد خود متن رو.اون 4 ی که برگشت میداده احتمالا طول آیتم بوده.اگه مشکل داشته باشه هم 1- برگشت میده.
    مثلا اگه بخواهی متن آیتم اول لیست باکس (که حالا توی فرم خودمون هست واسه راحتی) رو بدست بیاری:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    برای پیدا کردن متن Tooltip هم چیز بدرد بخوری پیدا نکردم. این منبع خود مایکروسافت در مورد ToolTip :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  6. #6
    پروفشنال ULF_VB6's Avatar
    تاريخ عضويت
    Feb 2007
    پست ها
    591

    پيش فرض

    دستت درد نکنه.
    ولی مشکل من حل نشد.

    من تست کردم. وقتی یه ListBox توی فرم خودم گذاشتم و Hwnd اونو دادم، متن رو نشون داد ولی برای این برنامه هه یه رشته خالی برمیگردونه.
    یه چیزه دیگه. این لیست باکسی که توی این برنامه هست. کنار هر آیتم یه عکس هم گذاشته. به نظرت می تونه اشکال کار از این باشه. یعنی باید نوع متغیر Buffer رو تغییر بدم؟
    چی بذارم؟ که جواب بده.

    این لینکی هم که برای tooltip دادی درباره خود شئ tooltip توضیح داده. درباره چیزی که من میخوام هیچی ننوشته.
    چجوری میشه متنش رو خوند؟

    اصلا یه سوال دیگه؟
    راهی هست که بشه یه شئ رو که داخل یه برنامه دیگه هست رو بگیری و مثل آبجکت های خود vb باهاش رفتارکنی.
    یعنی بتونی از خصوصیاتش استفاده کنی و ...
    اگه راهی باشه (البته فکر نکنم باشه!!!) خیلی خوب میشه.

    یه راهه دیگه هم فکر کنم باشه.
    میشه با استفاده از پروسس های برنامه اطلاعاتی که برنامه داره ازشون استفاده میکنه رو تشخیص داد.
    باید عملی باشه. چون برای game hacking از همین روش استفاده میشه. یعنی میان اول آدرس پروسسهای مورد نظرشون رو در میارن و بعد مقداری رو که میخوان بهش میدن.
    البته اونا معمولا با اعداد کار میکنن. من میخام ببینم میشه با رشته ها هم همین کار رو کرد؟

  7. #7
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    همونطور که خودت گفتی کنار آیتم یک عکس گذشته بنابراین بعید میدونم این شی یک ListBox ساده باشه(با اسم کلاس "ListBox") بنابراین پیغامی که در موردش استفاده میکنی طبیعیه که جواب نمیده. با استفاده از ای پی آی GetClassName , اسم کلاس این شی رو پیدا کن ببینم چه شی ی هست.
    -
    درسته اون لینک در مورد خود ToolTip بود منم گشتم چیز بدرد بخوری پیدا نکردم اما حتما یه راهی داره.
    علت پیچیدگیش هم اینه که ToolTip خودش یک Window هست و hWnd خودش رو داره و یک خصوصیت برای یک شی مثل ListBox نیست که بشه از طریق ListBox به راحتی پیداش کرد.
    -
    دقیقا با ای پی آی ویندوز میشه خصوصیت های همه ی شی های موجود توی ویندوز رو تغییر داد.حتی وقتی توی برنامه ی خودت هم خصوصیت شی ها رو تغییر میدی در اصل ای پی آی مربوطه فراخوانی میشه و اون خصوصیت مثلا Caption یک Label تغییر میکنه.البته این تغییر وقتی امکان داره که شی مورد نظر یا از شی های استاندارد ویندوز باشه تا بدونی با استفاده از چه ای پی آی یی خصوصیت ها رو تغییر بدی یا اون شی مثل شی های استاندارد ویندوز عمل کنه و به پیغام های مورد نظر درست پاسخ بده.اگه یه شی کلا Custom باشه و درست به پیغام های مربوط به خصوصیاتش پاسخ نده یا اون پیغام ها رو ندونی با ای پی آی های ازین دست نمیشه روش کار کرد و همونطور که خودت گفتی یه راهش تغییر Memory مربوط به Process هست

  8. #8
    پروفشنال ULF_VB6's Avatar
    تاريخ عضويت
    Feb 2007
    پست ها
    591

    پيش فرض

    اسم کلاس رو قبلا دیدم اینه SysListView32
    ولی اسم کلاس لیست باکس های خود Vb یه چیز دیگست (ThunderListBox)

    خوب tooltip هم جزو خواص اشیا محسوب میشه. پس باید یه جوری بشه دیتکتش کرد.

    این رو هم میدونم که vb هم از api ها استفاده میکنه، حتی برای کوچکترین اعمالش.
    خب من یه سوال دیگه هم پرسیدم. این که میشه با process ها string رو هم تشخیص داد؟ و تغییراتی توش اعمال کرد.
    آخه این یکی رو من جایی ندیدم. می خواستم بینم مثل همون کار با اعداد میمونه، یعنی به همون روش میشه با string هم کار کرد؟

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •