تشخیص نصب برنامه خاص در ویندوز

MATFB

Well-Known Member
سلام به همه ی بچه ها
می شه توی ام ام بی تشخیص دارد که برنامه ای برای مثال همون ام ام بی نصبه یا نه
ممنون از راهنماییتون
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
بله، با استفاده از رجیستری، میتونید بیک کلید خاص رو در مسیر مشخصی از رجیستری جستجو کنید و اگه موجود بود یعنی اون برنامه نصب هست، که معمولاً (اگر اشتباه نکنم) در مسیر HKEY_LOCAL_MACHINE\SOFTWARE قرار دارن
مثلاً برای برنامه ی PowerDVD این مسیر هست:
HKEY_LOCAL_MACHINE\SOFTWARE\Cyberlink\PowerDVD8
که مسیر نصب برنامه در کلیدی بنام InstallPath ذخیره شده

با استفاده از پلاگینهای کار با رجیستری مثل SmallPlugIn به هدفتون میرسید.
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
این کدی هست از یکی از مثالهای پلاگین Plugy که اینکار رو میکنه، برای پلاگینهای دیگه ی کار با رجیستری هم روال به همین شکل هست:

کد:
[FONT=Courier New][SIZE=2][color=#009000]**find POWER DVD[/color] 
[color=#009000]**set root[/color] 
hkey$=[color=#800000]'HKEY_LOCAL_MACHINE'[/color] 
[color=#000090][b]PluginSet[/b][/color]("PlugIn","hkey$") 
[color=#000090][b]PluginRun[/b][/color]("PlugIn","r_init") 
[color=#000090][b]PluginGet[/b][/color]("PlugIn","status") 
[color=#009000]**read a string[/color] 
var$=[color=#800000]'SOFTWARE\CyberLink\PowerDVD|InstallPath'[/color] 
[color=#000090][b]PluginSet[/b][/color]("PlugIn","var$") 
[color=#000090][b]PluginRun[/b][/color]("PlugIn","r_get") 
[color=#000090][b]PluginGet[/b][/color]("PlugIn","status") 
[color=#000090][b]PluginGet[/b][/color]("PlugIn","Path$") 
Path$=Path$+[color=#800000]'\PowerDVD.exe'[/color] 
[color=#000090][b]FileExist[/b][/color]("Path$","test") 
[color=#0000FF]If[/color] (test=[color=#ff0000]1[/color]) [color=#0000FF]Then[/color] 
[color=#000090][b]Message[/b][/color]("PowerDVD is Installed","") 
[color=#0000FF]Else[/color] 
[color=#000090][b]Message[/b][/color]("PowerDVD is NOT Installed","") 
[color=#0000FF]End[/color][/SIZE][/FONT]
 

MATFB

Well-Known Member
ممنون از راهنماییتون
ولی یه مشکل هست و اون اینه که من میزنم Power DVD کار نمی کنه چون روی سیستم من نسخه 8 نصبه وایراد می گیره و در اونجا که فایل Power DVD رو سرچ میکنه من می زنم Power DVD8 وکار میکنه من میخوام این کد رو توی برنامم بگذارم و اگه برنامه Power DVD نصبه حالا هر نسخه ای پیغام بده چنین چیزی ممکنه؟
 

m javad

کاربر متخصص
راهنمایی

با سلام:rose:

دوست من آدرس تمامی ( فکر کنم تمامی) برنامه های نصب شده تو xp و ویستا اینجاست:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

توی این شاخه برای هر نرم افزار باید یه کلاس (Classes) تعریف بشه که از اون به بعد تمامی رفتارهای مربوط به اون نرم افزار تو رجیستری با همون کلاس ( یا با کد ابتدایی یکسان) بررسی میشه
این کلاسها این شکلیند:
{78B75C6D-E53C-424C-BF83-4B63BD4A6682}
تعداد کارکتر ها یکسان هستش و توی هر کدوم یه سری اطلاعات هست:
DisplayIcon
DisplayName
Version
SystemComponent
HelpLink
VersionMajor
VersionMinor
UninstallString
Publisher
و...

هر نرم افزاری اطلاعات خودش رو میزاه
شما باید اول لیست تمامی شاخه های موجود در آدرس اول رو بدست بیاری
بعد تو هر کدوم DisplayName و Version یا VersionMajor و ... رو بدست بیاری تا بتونی دقیقا بفهمی که چه برنامه هایی نصب هست.

موفق باشی
 

جدیدترین ارسال ها

بالا