PDA

View Full Version : درست کردن برنامه‌ای برای برچیدن نرم‌افزار نصب شده



A.Farzin
سه شنبه 26 دی 1385, 17:33 عصر
با سلام

اگر از ویزارد Package ساز VB برای ساخت بسته نصب برنامه استفاده کنیم موقع نصب مجدد یک برنامه ابتدا اقدام به Remove نسخه قبلا نصب شده نمی‌کند.
چطوری می‌شه یک برنامه مستقل برای Remove این جور نرم‌افزارهای نصب شده ساخت.

با تشکر

Payam Moradi
سه شنبه 26 دی 1385, 18:54 عصر
با سلام

اگر از ویزارد Package ساز VB برای ساخت بسته نصب برنامه استفاده کنیم موقع نصب مجدد یک برنامه ابتدا اقدام به Remove نسخه قبلا نصب شده نمی‌کند.
چطوری می‌شه یک برنامه مستقل برای Remove این جور نرم‌افزارهای نصب شده ساخت.

با تشکر

Package خود وی بی این قابلیت رو نداره. باید نسخه قبلی را ابتدا Remove و نسخه جدید را نصب کنید.

A.Farzin
جمعه 29 دی 1385, 14:24 عصر
راهش را پیدا کردم ولی نمی‌دانم آن را چطوری اجرا کنم.

همراه با نصب بسته تولید شده با Package & Deployment Wizard یک فایل به نام ST6UNST.EXE نصب می‌شود که در واقع وظیفه برچیدن نرم‌افزار را می‌تواند انجام دهد.
برای برچیدن نرم‌افزار کافی است در خط فرمان Command Line و یا در کنسول Run وارد کنم

G:\WINDOWS\st6unst.exe -n "G:\Program Files\AIS-Soft\ST6UNST.LOG"
ولی نمی‌دانم این دستور خط فرمانی را چگونه در دل برنامه پیاده سازی کنم. از چه توابع API باید استفاده کنم.
از دو تابع API به نامهای SHFileOperation و ShellExecute هم استفاده کردم نشد و هر دوی این توابع روی سوئیچ‌های این دستور خطا می‌گرفت. اگر سوئیچ‌ها را حذف کنم، APIها فایل st6unst.exe را به درستی اجرا می‌کنند ولی متاسفانه برای صحت کارکرد آنها نیاز به این سوئیچها است و بدون آنها فایده ندارد.

این ارسال هم در همین زمینه بود
http://www.barnamenevis.org/forum/showthread.php?t=57427
اگر از دوستان کسی راهنمایی کند ممنون می‌شوم

sjj
شنبه 30 دی 1385, 01:42 صبح
از دستور Shell استفاده کردید ؟

Neeloofar
شنبه 30 دی 1385, 01:44 صبح
شما میخوای این خط رو از داخل یک برنامه ویژال بیسیک اجرا کنی. خب از دستور Shell استفاده کن.
ضمنا یادآور شوم مایروسافت سورس برنامه Setup رو در اختیار گذاشته در این مسیر.

Drive:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1

یک جواریی تو همین سورس دستکاری کن و دستور بالا رو بکار ببر. بعد میتونی سورس رو EXE کنی در این مسیر جایگزین فایل اصلی Setupکنی:(فایل با نام Setup1 هست که برنامه های VB رو نصب میکنه).

Drive:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard
حواست باشه قبلا از Setup1 تو مسیر بالا یک بک آپ بگیری.

A.Farzin
سه شنبه 03 بهمن 1385, 17:02 عصر
با سلام
من اقدام به دستکاری پروژه Setup1 نمودم ولی دیدم مکان کنترلها قابل تغییر نیست. مثلا یک کلید که در سمت چپ قرار گرفته را می‌خواهم به سمت چپ فرم منتقل کنم.

چرا جای قرارگیری کنترلهای موجود روی فرمهای پروژه Setup1 را نمی‌شود تغییر داد. مثل اینکه در جای خوشان قفل شده‌اند؟

با تشکر

Neeloofar
سه شنبه 03 بهمن 1385, 18:14 عصر
با سلام
من اقدام به دستکاری پروژه Setup1 نمودم ولی دیدم مکان کنترلها قابل تغییر نیست. مثلا یک کلید که در سمت چپ قرار گرفته را می‌خواهم به سمت چپ فرم منتقل کنم.

چرا جای قرارگیری کنترلهای موجود روی فرمهای پروژه Setup1 را نمی‌شود تغییر داد. مثل اینکه در جای خوشان قفل شده‌اند؟

با تشکر

هااااااااااااااااااا !!!؟

خب فرمهای این سورس برای Edit قفل شده. شما ابتدا پس از باز کردن فرم و قبل از تغییر در کنترلها از منوی Fromat گزینه Lock Controls که فعال هست غیر فعال کنید.
در ضمن توصیه میکنم اگر مبتدی هستید فقط به گذاشتن یک خط کد (Shell) در روال Form_Load از فرم frmSetup1 بسنده کنید. چون علاوه بر کدهای پیچیده‌ای که داره نیاز به یک سری فایل جانبی هم برای اجرا داره.

موفق باشید.

A.Farzin
پنج شنبه 05 بهمن 1385, 22:46 عصر
با سلام و تشکر

از راهنمایی شما بسیار سپاسگزارم چون با کمک همین راهنمائیهای شما توانستم علاوه بر گنجاندن دستور مورد نیاز برای برچیدن نسخه قبلاً نصب شده، تقریباً تمامی پیغامها (غیر از آنهایی که مربوط به توزیع بسته به وسیله فلاپی می‌شد) را فارسی کنم. به این مورد تا حالا بر نخورده بودم.
در هر حال از راهنمائی شما باز هم متشکرم
ممنون

A.Farzin
یک شنبه 15 بهمن 1385, 20:12 عصر
با سلام مجدد

برنامه Setup فوق قرار است روی کامپیوتری اجرا شود که کلاینت شبکه بوده و حساب کاربری مورد استفاده کاربر آن از نوع User تعریف شده است و اجازه Add/Remove کردن برنامه‌ها را ندارد.
طریقه اجرای برنامه Setup هم به این شکل خواهد بود که کاربر یک نرم‌افزاری را اجرا خواهد کرد. این نرم‌افزار ابتدا اقدام به تطبیق نسخه خود با نسخه برنامه نصب که در دسترس برنامه است خواهد کرد. چنانچه شماره نسخه برنامه قدیمی‌تر از نسخه برنامه نصب باشد، آنگاه دستور اجرای برنامه Setup از دل همان نرم‌افزاری صادر خواهد شد که توسط کاربر قرار است اجرا شود. مشکل اینجاست که این کاربر اجازه برچیدن و نصب ندارد.
آیا نمی‌توان از طریق دستورات Shell به ویندوز فهماند که درست است کاربر فعلی اجازه نصب و برچیدن ندارد ولی شما فقط این برنامه را با سطح دسترسی Administrator اجرا کن؟
با تشکر

Payam Moradi
یک شنبه 15 بهمن 1385, 20:57 عصر
با سلام مجدد

برنامه Setup فوق قرار است روی کامپیوتری اجرا شود که کلاینت شبکه بوده و حساب کاربری مورد استفاده کاربر آن از نوع User تعریف شده است و اجازه Add/Remove کردن برنامه‌ها را ندارد.
طریقه اجرای برنامه Setup هم به این شکل خواهد بود که کاربر یک نرم‌افزاری را اجرا خواهد کرد. این نرم‌افزار ابتدا اقدام به تطبیق نسخه خود با نسخه برنامه نصب که در دسترس برنامه است خواهد کرد. چنانچه شماره نسخه برنامه قدیمی‌تر از نسخه برنامه نصب باشد، آنگاه دستور اجرای برنامه Setup از دل همان نرم‌افزاری صادر خواهد شد که توسط کاربر قرار است اجرا شود. مشکل اینجاست که این کاربر اجازه برچیدن و نصب ندارد.
آیا نمی‌توان از طریق دستورات Shell به ویندوز فهماند که درست است کاربر فعلی اجازه نصب و برچیدن ندارد ولی شما فقط این برنامه را با سطح دسترسی Administrator اجرا کن؟
با تشکر

نخیر اگه اینطوری بود دیگه ادمین معنا نداشت.
شما تنها یک راه داری. اونم اینکه فقط فایل اجرایی برنامه (EXE) را از برنامه نصب بریزی در مسیری که برنامه قبلا نصب شده. یعنی فقط فایل EXE جایگزین قدیمی شود.
این در صورتی عملی هست که DLL یا OCX جدیدی برای برنامه‌ی جدید استفاده نکرده باشی.

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

A.Farzin
سه شنبه 17 بهمن 1385, 17:37 عصر
با تشکر
شیوه کار برنامه، در حال حاضر، به همان ترتیبی است که فرمودید، یعنی کپی کردن نسخه جدید فایل اجرایی روی نسخه قبلی آن. ولی به دنبال اینم که بتوانم در چنین شرایطی Setup را Run کنم.
به نظرم چنین می‌رسد که می‌توان به Shell فهماند که دستوری را با سطح دسترسی مدیر سیستم اجرا کند و اگر این چنین کاری با تطبیق UserName و Password یکی از کاربران عضو گروه Administrators صورت گیرد، کجای کار با فلسفه ایجاد ادمین تعارض خواهد داشت.
در هر حال از پاسخی که دادید ممنونم - موفق باشید

Payam Moradi
سه شنبه 17 بهمن 1385, 19:35 عصر
با تشکر
شیوه کار برنامه، در حال حاضر، به همان ترتیبی است که فرمودید، یعنی کپی کردن نسخه جدید فایل اجرایی روی نسخه قبلی آن. ولی به دنبال اینم که بتوانم در چنین شرایطی Setup را Run کنم.
به نظرم چنین می‌رسد که می‌توان به Shell فهماند که دستوری را با سطح دسترسی مدیر سیستم اجرا کند و اگر این چنین کاری با تطبیق UserName و Password یکی از کاربران عضو گروه Administrators صورت گیرد، کجای کار با فلسفه ایجاد ادمین تعارض خواهد داشت.
در هر حال از پاسخی که دادید ممنونم - موفق باشید

شما اصلا در ست آپ تغییری نده و پسورد ادمین رو برنامه نبر. کار راحت:
رو آیکون Setup راست کلید کن و گزینه Run As رو بزن و در دیالوگ باز شده گزینه The following User: را انتخاب و یوزر ادمین و پسوردش رو بده و OK.
بهر حال بد نبود که بگم.:چشمک: