PDA

View Full Version : سوال در مورد ساخت آپدیت برای برنامه



alizanganeh
دوشنبه 11 دی 1391, 15:07 عصر
سلام
من یک آپدیت برای برنامم ساختم
ینی یک فرمی هست که فایل exe جدید برنامه که تغییراتی جدید داره رو جاگزین فایل exe قدیمی میکنه
میخواستم بدونم اگر من به برنامم مثلا یک کامپوننت یا یک ماژول اضافه کنم هم میشه فایل exe رو جایگزین کنم و کامپوننت رو هم داخل system32 کپی کنم و برنامه درست کار کنه (در صورتی که موقع ساخت برنامه اون کامپوننت ها رو از توی system32 به برنامه اضافه کرده باشم)

میشه آیا ؟

ممنون

Hashemvp
دوشنبه 11 دی 1391, 15:20 عصر
بله میشه در صورتی ک هنگام جایگزین کردن فایل exe کامپونت های اضافه شده ب نسخه ی جدید هم دانلود بشه و در system32ذخیره و رجیستر بشن
برنامه درست کار میکنه و مشکلی نداره

موفق باشی

alizanganeh
دوشنبه 11 دی 1391, 18:08 عصر
ینی چی این؟
من برنامه رو که کامپوننت های جدید بهش اضافه شده جایگزین فایل exe میکنم و کامپوننت ها رو توی system32 کپی میکنم
کار دیگه ای نیازه ؟

Hashemvp
دوشنبه 11 دی 1391, 18:19 عصر
اره دیگه کامپونت ها رو ک فقط کپی کنی جواب نمیده
باید بعد از کپی کردن رجیستر بشه ک بتونه باهاش ارتباط برقرار کنه با استفاده از این کد میتونی توی CMD کامپونت ها رو توی هر سیستمی رجیستر کنی
regsvr32 nameOCX
با ی خورده کدنویسی هم میتونی ب صورتی خودکار اینا انجام بشه
موفق باشی

alizanganeh
دوشنبه 11 دی 1391, 18:39 عصر
این کامپوننت ها باید کجا ریجستر بشن؟
و اینکه چه کدی لازمه تا خود برنامه این کار رو انجام بده ؟

Hashemvp
دوشنبه 11 دی 1391, 18:49 عصر
دوست عزیز الان کامل توضیح میدم.

اول اینکه ب عنوان مثال اگر تو نگارش اول برنامه ات از کامپونت A و B استفاده کردی و این دوتا موقع نصب نگارش اولیه کپی میشن تو سیستم کاربر و رجیستر میشن.

بعد شما امدی نگارش دوم برنامه رو دادی بیرون ولی کامپونتی استفاده نکردی همون دوتا کامپونت نگارش اول بودن پس فقط فایل EXE جدید رو جایگزین میکنی

ولی حالا نگارش سوم برنامه شد و شما ی تغییرات کلی تو برنامه دادی و از یک کامپونت جدید ب اسم C استفاده کردی
زمانیکه فایل exe جدید داره جایگزین میشه بعد از اون باید کامپونت C هم توی سیستم طرف کپی بشه حالا کجا کپی بشه مهم نیست و بهتره که تو System32 باشه
بعد از اینکه کپی شد اونجا شما باید رجیسترش کنی هر فایل ی کد رجیستر منحصر بفرد داره که توی رجیستری ویندوز ثبت میشه که زمانیکه برنامه ی شما خواست ازش استفاده کنی و فراخوانی کنه
ویندوز بتونه برنامه شما رو راهنمایی کنه ک این فایل کجا هست و ......

برای رجیستر کردن دستی این خط کد رو توی Run ویندوز بنویس
regsvr32 C.ocx
بعد از اینکار کامپونت رجیستر میشه
منتها اگه ویندوز طرف 64 بیتی باشه باید کامپونت ها رو هم توی پوشه system32 کپی کنی هم توی پوشه sysWOW64.

موفق باشید.

alizanganeh
دوشنبه 11 دی 1391, 19:52 عصر
خیلی ممنون عزیز

توضیحات عالی و کامل
فقط میخواستم بدونم اگر من بخوام بصورت کدی توی برنامه کامپوننت رو بصورت خودکار ریجستر کنم از چه کدی باید استفاده کنم
منظورم اینه که کد خاصی وجود داره که یک حالت کلی باشه و با تغییراتی در نام و ... برای کامپوننت های جدید کار کنه؟
یا اینکه برای هر کامپوننت باید برم بصورت دستی توی سیستم طرف ریجستر کنم؟
و سوال دیگه اینکه با نوشتن کد regsvr32 C.ocx خودش میره و کامپوننت رو از هر جای سیستم که باشه پیدا میکنه یا فقط اگر توی system32 باشه پیدا میکنه؟

ممنون فراوان

Hashemvp
دوشنبه 11 دی 1391, 20:33 عصر
با استفاده از این کد توی وی بی میتونی رجیسترشون کنی
shell "regsvr32 c.ocx"

نه فقط داخل پوشه system32
ی مورد ک باید رعایت کنی اینکه اسم فایل و مسیر فایل نباید space داشته باشه.نداشته باشه بهتره چون ممکنه موقع رجیستر کردن بهت خطا بده
اگه کامپونت توی مسیر دیگه است اینطوری میتونی استفاده کنی. بعنوان مثال

shell "regsvr32 c:\windows\hvp\nameocx.ocx"

موفق باشی

alizanganeh
دوشنبه 11 دی 1391, 21:01 عصر
دمت گرم داداش
یک دنیاااااا ممنون کارم راه افتاد
ممنون فراوان ♥