رفتن به مطلب
  • 0

یه سوال کوچیک تو مبحث گرفتن pid


mclub

سوال

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

 

یه کدی دارم که لیست تمامی برنامه هایی که نصب رو میگیره و با آیکونشون نشون میده خیلی قشنگ و تمیز !!!

 

حالا فقط نمیتونم دونه دونه کنترلشون کنم ینی مثلا یه مورد انتخاب شد pid اونو بگیره که با استفاده از کتابخونه os library بشه اونو تو رم بست

 

حالا از دوستان میخوام یه کمکی به ما بکنند ممنون

 

اینم کد و عکس مربوط به اون

 

قبلش هم lv لیست ویو هست که تو لایوته ...

Activity.LoadLayout("layout1")
    lv.Clear
    Dim pm As PackageManager
    Dim packages As List
    packages = pm.GetInstalledPackages
    For i = 0 To packages.Size - 1
    Dim p As String = packages.Get(i)
        Dim bdw As BitmapDrawable = pm.GetApplicationIcon(p)
        lv.AddTwoLinesAndBitmap(pm.GetApplicationLabel(p),packages.Get(i),bdw.Bitmap)
        Log(packages.Get(i))
    Next

packagemanager001.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

13 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

نه متاسفانه اصلا کار نمیکنه آقا کسی نیست به ما بگه چجوری توی msgbox پکیج نیم مورد کلیک شده رو بزاریم ؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

به وسیله این تابع می تونید pid   رو بگیرید :

Dim os As OperatingSystem
os.RunningAppProcessInfo(nameList,pidList,nameAndPidList)

توی خود تابع توضیحاتی رو راجب عملکردش داده شده.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

به وسیله این تابع می تونید pid   رو بگیرید :

Dim os As OperatingSystem
os.RunningAppProcessInfo(nameList,pidList,nameAndPidList)

توی خود تابع توضیحاتی رو راجب عملکردش داده شده.

 

ممنون از پاسختون ولی مشکل من اینجاست که نمیتونم این دو رو با هم یکی کنم یعنی اگه روی مورد اول لیست ویو کلیک شد که نمیدونیم چیه (یکی از برنامه های نصبی است) pid اون رو بگیره و حالا مثلا اونو ببنده یا اصلا به صورت msgbox پس بده . مشکل فقط همینه ولی برای انجام عملیات بعد گرفتن pid مشکل خاصی ندارم .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب دوستم از اونجایی که می دونیم اینجا شما  دارید میایید تمامی برنامه های نصبی و می گیرید و عملا تمامی برنامه ها دارای pid  نیستن که بتونیم با کلیک روی هر کدوم پروسس رو ببندیم.

اینجا یکم کارتون پیچیده تر میشه

شما با متدی که بنده دادم می تونید اسم برنامه ها و pid رو بگیرید.و برای اینکه بتونید با کلیک و یا لانگ کلیک پروسسشو ببندید باید pid  رو به مقدار Return Value  مربوط به لیست ویو اختصاص بدید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب دوستم از اونجایی که می دونیم اینجا شما  دارید میایید تمامی برنامه های نصبی و می گیرید و عملا تمامی برنامه ها دارای pid  نیستن که بتونیم با کلیک روی هر کدوم پروسس رو ببندیم.

اینجا یکم کارتون پیچیده تر میشه

شما با متدی که بنده دادم می تونید اسم برنامه ها و pid رو بگیرید.و برای اینکه بتونید با کلیک و یا لانگ کلیک پروسسشو ببندید باید pid  رو به مقدار Return Value  مربوط به لیست ویو اختصاص بدید.

 

کاملا درسته خوب پیشنهادی برای اینکه فقط اون هایی که pid دارند رو نشون بده تا کارمون راحت تر بشه ندارید ؟

 

بذارید یه توضیح بیشتری بدم تا ابهام ها برطرف بشه :

این برنامه دقیقا کارش خالی کردن رم هست که با استفاده از os library برنامه هایی که توی رم باز هستن (به جز سیستمی ها که نمیتونه ببنده) بسته میشن تا اینجا درسته هیچ مشکلی هم ندارم

 

ولی مشکل از اونجایی شروع میشه که میخوایم براش استثنا هم تعریف بکنیم کل گیر کارم اینجاس که چن روزیه درگیرم و فهمیدم که چجوری لیست برنامه های نصب شده با پکیج نیمشون بگیریم ولی با این نوع لیست ویو مشکلی که دارم اینه که تو هر دستگاهی مورد اول یه برنامه نیست و همه با هم فرق میکنن و من هم میخوام که با کلیک شدن روی اون مورد ( که یه برنامه نصب شدست) پکیج نیم یا pid اون که برای کار os library لازمه رو توی یه فایل ذخیره کنه و هنگام خالی کردن رم اون پکیج نیم ها یا pid هارو چک کنه و اون هارو استثنا قرار بده .

 

خوب در این مورد میتونید کمک کنید اقا مجید گل ؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب به طبع برنامه های سیستمی دارای پکیج هستن.

شما می تونید یک لیست سیاهی از پکیج این برنامه ها بسازید و عملا با مقایسه کردن پکیج های این لیست با پکیج های برنامه های در حال اجرا بتونید لیست ویو رو هیتلر بندی کنید.

یعنی فقط برنامه های نصبی بتونن توی لیست ویو اضافه بشن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام

کد مربوط به اضافه کردن آیتم به لیست ویو رو به این شکل تغییربدید :

lv.AddTwoLinesAndBitmap2(pm.GetApplicationLabel(p),packages.Get(i),bdw.Bitmap,packages.Get(i))

و توی رویداد کلیک به این شکل می تونید روی هر آیتمی که کلیک میشه پکیجشو توی فایل تکست بنویسه :

Sub lv_ItemClick(Position As Int,Value As Object)
 If File.Exist(File.DirInternal,"pn.txt") Then
  File.WriteString(File.DirInternal,"pn.txt",Value)
 End If
End Su

 

درسته ولی فکر میکنم یه خرده باید تغییر کنه چون که اصلا هیچ فایلی که نمیسازه هیچ بلکه نمیتونه هم فایلو بخونه با دادان همین آدرسی که داره ...

Sub lv_ItemClick(Position As Int,Value As Object)
 If File.Exist(File.DirInternal,"pn.txt") = true Then
  File.WriteString(File.DirInternal,"pn.txt",Value)
 End If
End sub

این میتونه جواب بده ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب کد رو تستش کنید. :fekr:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون آقا مجید گل ولی این ها رو بیخیال من کلا میخوام توی همچین نمونه کدی که بالا نوشتم وقتی روی یه مورد از موارد توی لیست ویو کلیک شد پکیج نیم اون گرفته بشه حالا مثلا توی یه فایل تکست ذخیره شه . ممنون میشم دوستان دیگر هم نظراتشون رو ابراز کنند.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کد مربوط به اضافه کردن آیتم به لیست ویو رو به این شکل تغییربدید :

lv.AddTwoLinesAndBitmap2(pm.GetApplicationLabel(p),packages.Get(i),bdw.Bitmap,packages.Get(i))

و توی رویداد کلیک به این شکل می تونید روی هر آیتمی که کلیک میشه پکیجشو توی فایل تکست بنویسه :

Sub lv_ItemClick(Position As Int,Value As Object)
 If File.Exist(File.DirInternal,"pn.txt") Then
  File.WriteString(File.DirInternal,"pn.txt",Value)
 End If
End Su
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...