PDA

View Full Version : تعیین نرم افزار اجراء کننده فایل از طریق رجیستری



ali190
شنبه 30 مرداد 1389, 14:36 عصر
باسلام و عرض خسته نباشید

***امیدوارم که نماز و روزه همگی مقبول درگاه حق تعالی واقع شده باشه***
میخواستم از محضر اساتید این سئوال رو بپرسم که چطور میتونم نرم افزار دلخواه برای گشودن یک فایل رو از طریق رجیستری سیستم تعین کنم.
من یک برنامه با vb توشتم که بعد انجام یک سری محاسبات نتایج رو در یک فایل اکسس ذخیره میکنه و کاربر نهایتاً اون فایل اکسس رو از طریق همون فرم vb باز میکنه و اطلاعات لازم رو در report اکسس میبینه.
حالا مشکل من اینجاست که وقتی در یک سیستم دو تا اکسس نصب هست (یعنی نسخه 2003 و 2007 ) و از اونجایی که من میخوام فایل اکسس من که با فرمت mdb هم هست تحت اکسس 2003 اجرا بشه ، (برای اینکار نمیخوام کاربرم به folder option بره و از قسمت file type تنظیمات لازم رو انجام بده) بلکه میخوام این مهم از طریق رجیستری ویندوز انجام بشه ومن نهایتاً فایل رجیستری مذبور رو از طریق یک نرم افزار ستاپ ساز به سیستم کاربرم تزریق کنم.
ممنون میشم اگر راهنماییم کنید.

ali190
شنبه 30 مرداد 1389, 22:10 عصر
سلام
من در این زمینه یک ماژول پیدا کردم
فقط نمیتونم چطور باید آرگومانهاشو ست کنم
میشه با این ماژول یک sample درست کنید که فایل mdb رو تحت aCCESS 2003 اجرا کنه
ممنون میشم

Saman_12
شنبه 30 مرداد 1389, 22:13 عصر
سلام.
ببین شاید این روشی که میگم جواب داد شایدم جواب نداد.(درضمن هر گونه خراب شدن کامپیوترتون دست خودتونه اگه با کار توسط ریجستری آشنایی ندارین اول یه بک آپ از ریجستری بگیرین.)
اول ریجستری رو باز کن حالا توی Classes_Root به دنبال پسوند Mdb بگرد باید یه کلید که اسمش MdbFile هست رو پیدا می کنی.
حالا توی زیر شاخه هاش دنبال Shell>Open>Command بگرد حالا یه داده که از نوع Reg_EXpand_sz میبینی حالا اینو باز کن بعد هم توی دوتا " آدرس فایلی که قراره فایل اونو باز کنه بده بعد هم یه اسپیس و بعد هم توی دوتا " دیگه بنویس :

%1
خوب حالا Ok کن وکلید اف5 رو فشار بده حالا امتحان کن اگه نشد اون اسپس و کد بعدش رو بردادر بازم اگه نشد دیگه نشده حالا نوشته داخل داده رو به حالت قبل بر گردون بعد هم کلید اف 5 (از این کلید یک Export بگیر که اگه نشد مجبور به نصب مجدد نشی.)
بازم می گم شاید شد شاید نشد.
درضمن اگه شد تمام فایل هایی با این پسوند هستند توسط برنامه تایین شده باز میشوند.

ali190
شنبه 30 مرداد 1389, 22:28 عصر
سلام
ممنون از پاسختون
تست کردم
جواب نگرفتم
تاثیری نداشت

modirmasool
شنبه 30 مرداد 1389, 23:26 عصر
بعد از اینکه مسیر نصب اکسس رو در سیستم کاربر پیدا کردین، باید شل بگیرین.
مثلا فرض کنیم اکسس در درایو C و الی آخر هستش:



Shell "C:\Program Files\Microsoft Office2007\Office12\MSACCESS.EXE c:\database.MDB"

ali190
یک شنبه 31 مرداد 1389, 00:03 صبح
سلام
ممنون از جوابتون
ولی من میخوام این مهم از طریق رجیستری سیستم محقق بشه و بنا به دلایلی از اجرای خواسته ام از طریق کدنویسی معذوریت دارم.

Saman_12
یک شنبه 31 مرداد 1389, 00:45 صبح
ببین Ali جون من قبلا یه ویروس نویس بودم و برای اینکه کاری کنم سیستم آلوده کمکم هنگ کنه به همون روشی که گفتم با یکم تفاوت توی کلید CmdFile تغییر ایجاد میکردم.(کد شو نمی زارم چون ممکنه بعضی ها سوء استفاده کنن).بعد هم یه فایل با پسوند Cmd می ساختم و اونو اجرا می کردم.
این فایل توسط Explorer سعی در باز کردن خودش داشت چون نمی تونست سیستم هنگ می کرد.
خوب پس روشی که من گفتم کار میکنه یعنی من یه فایل که داس اونو اجرا می کنه با Explorer اجرا کردم.
شما اگه همون کدی رو که گذاشتم دقیق عمل کنی حتما کار می کنه.(دلیل این که گفتم شاید کار نکنه این بود که احتمال 1% وجود داشت که ریجستری اجازه دست رسی نده.)
من همین الان خودم یه فایل Cmd رو با نت پد اجرا کردم چون نت پد نمی تونه فایل اجرا کنه پس اونو باز کرد.
خوب من دیگه مطالب گفتنی رو گفتم بقیش با خودتونه.

modirmasool
یک شنبه 31 مرداد 1389, 00:53 صبح
از همون راهی که Saman_12 گفت میشه. اما من الان دوتا اکسس رو ندارم، شما که داری بگو اسم EXE هاشون باهم فرق داره یا نه؟ چون اگه نئاشته باشه اینطوری نمیشه کاریش کرد.

parselearn
یک شنبه 31 مرداد 1389, 00:53 صبح
http://barnamenevis.org/forum/showthread.php?t=188298

Saman_12
یک شنبه 31 مرداد 1389, 00:57 صبح
از همون راهی که Saman_12 گفت میشه. اما من الان دوتا اکسس رو ندارم، شما که داری بگو اسم EXE هاشون باهم فرق داره یا نه؟ چون اگه نئاشته باشه اینطوری نمیشه کاریش کرد.
میدر مسئول جون از شما دیگه بعید بود!!!
خوب حتی اگه اسم فایل ها یک باشه با دادن آدرس میشه بین اونها تفاوت قائل شد.

modirmasool
یک شنبه 31 مرداد 1389, 00:57 صبح
سلام
ممنون از جوابتون
ولی من میخوام این مهم از طریق رجیستری سیستم محقق بشه و بنا به دلایلی از اجرای خواسته ام از طریق کدنویسی معذوریت دارم.

خوب به هرحال شل که باید بگیری! مگه نه؟ آخه گفته بودین کاربر از طریق برنامه شما فایل رو اجرا می کنه.

ali190
یک شنبه 31 مرداد 1389, 01:02 صبح
جناب parselearn عزیز ممنون از نمونتون
میشه خواهش کنم این نمونه رو برام جوری تغییرش بدید که یک فایل mdb از طریق اکسس2003 اجرا بشه.
ممنون میشم

parselearn
یک شنبه 31 مرداد 1389, 02:52 صبح
جناب parselearn عزیز ممنون از نمونتون
میشه خواهش کنم این نمونه رو برام جوری تغییرش بدید که یک فایل mdb از طریق اکسس2003 اجرا بشه.
ممنون میشم
پسوند مورد نظر در آموزش svs است
فقط يك Replace ساده در كل پروژه انجام بديد svs->mdb

نكته: مساله ديگر با اين كار فايلهاي mdb با برنامه شما باز ميشود
و آفيس غير فعال ميشود براي فايلهاي mdb