ورود

View Full Version : مشكل در اجراي برنامه با چند پيغام



mobina.amiry
سه شنبه 20 بهمن 1388, 17:21 عصر
سلام من توي ايم برنامه اي كه نوشتم از hookmenu control1.4و kewlbuttonzو microsoft ado data control6.0و microsoft datagrid control6.0وmicrosoft masked edit control6.0 وlelik software-xp style components استفاده كردم ومن وقتي كه ويندوز كامپيوتر خودم را عوض كردم ديگه اين برنامه اي كه نوشتم اجرا نميشه و پيغام خطا ميده كه عكس اونا را ضميمه كردم و وقتي كه اين پيغام ها را تاييد ميكنم چند پپيام ديگر مشابه پيام دوم ميآيد و وقتي كه آنها را نيز تاييد ميكنم و برنامه را اجرا ميكنم نه دكمه ها را نشان ميدهد ونه پس زمينه اي را كه انتخاب كرده بودم و از ado نيز خطا ميگيرد و از برنامه خارج ميشود چگونه ميتوانم اين مشكل را حل كنم تا برنامه اجرا بشه و وقتي كه اين برنامه را روي سيستم ديگه اي خواستم اجرا كنم خودكار اجرا بشه و اين مشكلات پيش نياد.
ممنون ميشم اگه كمك كنيد :عصبانی++:

aryasoft2872
سه شنبه 20 بهمن 1388, 17:52 عصر
مشکل از آدرس های فایل اکتیوایکست هست که رجیستر نشده بهتره اول فایل های اکتیو ایکست رو ببری تو windows\system32 رجیستر کنی بعدش بیایی از تو برنامه ات لودشون کنی
واسه سیستم خام هم باید یا یک رجستریتور بسازی یا به نصب کننده ات فایل اکتیوایکس رو بدی تا رجیستر کنه
(بار 278 که این سوال رو واسش تاپیک می زنند)

mobina.amiry
سه شنبه 20 بهمن 1388, 18:22 عصر
مشکل از آدرس های فایل اکتیوایکست هست که رجیستر نشده بهتره اول فایل های اکتیو ایکست رو ببری تو windows\system32 رجیستر کنی بعدش بیایی از تو برنامه ات لودشون کنی
واسه سیستم خام هم باید یا یک رجستریتور بسازی یا به نصب کننده ات فایل اکتیوایکس رو بدی تا رجیستر کنه
(بار 278 که این سوال رو واسش تاپیک می زنند)

ببخشيد من اين فايل هاي اكتيو ايكست را بايد از كجا بيارم ورجيسترش كنم
ممنون اگه ميتونيد كمكم كنيد

unit001
سه شنبه 20 بهمن 1388, 18:32 عصر
سلام.

این فایل هایی که شما استفاده کردید اکتیوایکس هست و برای رجیستر کردنش باید فایل رو با "regsvr32.exe" در System32 رجیستر کنید


ببخشید من این فایل های اکتیو ایکست را باید از کجا بیارم ورجیسترش کنم
ممنون اگه میتونید کمکم کنید

اگه شما فایل ها رو دارید باید اونا رو در System32 کپی کنید و اگه ندارید باید از یه جا گیر بیارید (مثلا از اینترنت).

mobina.amiry
سه شنبه 20 بهمن 1388, 19:53 عصر
سلام.

این فایل هایی که شما استفاده کردید اکتیوایکس هست و برای رجیستر کردنش باید فایل رو با "regsvr32.exe" در System32 رجیستر کنید

اگه شما فایل ها رو دارید باید اونا رو در System32 کپی کنید و اگه ندارید باید از یه جا گیر بیارید (مثلا از اینترنت).

:ناراحت:سلام من متوجه نشدم که این فایل های اکتیو ایکست را از کجا باید انتخاب کنم این فایل ها در کجا قرار دارند لطفا اگه متونید راهنمایی کنید

من تویSystem32 رفتم وروی این regsvr32.exe کلیک کردم واین صفحه را برام آورد که عکس اونا ضمیمه کردم. بايد چيكار كنم

javadt
سه شنبه 20 بهمن 1388, 20:09 عصر
با استفاده از این فایل می تونی رجیستری کنی
فایل رو با نت پد باز کن و بعد به جای myocx اسم ocx خودت رو بزار و ذخیره و اجراش کن

Mr'Jamshidy
سه شنبه 20 بهمن 1388, 21:20 عصر
سلام :)

تا جایی که من میدونم یک سری کامپوننت (ActiveX) بصورت پیشفرض به همراه ویندوز نصب میشن به عنوان مثال Rich Textbox

شما کامپوننت هایی که استفاده میکنی رو باید همیشه ازش یک بک آپ داشته باشی حتی اونایی رو که خود ویندوز براتون نصب میکنه چون ممکنه ویندوز دستکاری شده باشه و اون کامپوننت حذف شده باشه

البته همه ویندوز هایی که ما استفاده میکنیم دستکاری شده به جز اونایی که بصورت اورجینال میخریم که کمتر کسی این کار رو انجام میده

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

تنها کمکی که از دست من بر میومد همین بود

-------
یا حق

mobina.amiry
سه شنبه 20 بهمن 1388, 23:09 عصر
اگه من اين اکتیوایکس ها را توي پوشه برنامه خودم قرار بدم و اين پوشه حاوي برنامه اي كه نوشتم را به همره اکتیوایکس هاي داخل پوشه را ببرم روي يه سيستم ديگه برنامه من كامل اجرا ميشه ديگه با اين مشكلي كه توي پست اول گفته بودم مواجه نميشم يا بايد كار ديگه اي هم انجام بدم

xxxxx_xxxxx
چهارشنبه 21 بهمن 1388, 00:50 صبح
مشکل با کامپوننت ها (http://barnamenevis.org/forum/showthread.php?t=203513)

mostafa_bahar
چهارشنبه 21 بهمن 1388, 10:39 صبح
آقا شما برنامه رو با خطا لود كن بعد اكتيو اكس رو بيار داخل وبي برنامه رو ببند ولي ذخيره نكن وقتي دوباره لود كردي درست مي شه

aryasoft2872
چهارشنبه 21 بهمن 1388, 14:10 عصر
به قول دکتر (حسنی سافت امروز) سوتی که شاخ و دم نداره شما می گی از ابزار hookmenu , kewelbutton , ... استفاده کردی بعد کلا ابزار (Activex) رو منکر می شی می گی اصلا ابزار چیه!!!!!!!!!
(اکتیئ ایکس همون ابزاره و پسوندشون هم .ocx)

mobina.amiry
سه شنبه 27 بهمن 1388, 20:00 عصر
سلام دوستانمن اگه بخوام اين اكتيو ايكس ها به طور خودكار رجيستر بشن بايد چيكار كنممنظورم اينه كه من ميخوام اين برنامه را بدم به يكي ديگه و ما فرض ميكنيم كه اون طرف بلد نيست به صورت دستي بره و اين فايلها را رجيستر كنه آيا راهي هست كه به طور خودكار با اجراي برنامه اين فايل هاي اكتيو ايكس هم رجيستر بشه

xxxxx_xxxxx
سه شنبه 27 بهمن 1388, 23:01 عصر
سلام دوستانمن اگه بخوام اين اكتيو ايكس ها به طور خودكار رجيستر بشن بايد چيكار كنممنظورم اينه كه من ميخوام اين برنامه را بدم به يكي ديگه و ما فرض ميكنيم كه اون طرف بلد نيست به صورت دستي بره و اين فايلها را رجيستر كنه آيا راهي هست كه به طور خودكار با اجراي برنامه اين فايل هاي اكتيو ايكس هم رجيستر بشه
http://barnamenevis.org/forum/showthread.php?t=203513

mobina.amiry
چهارشنبه 28 بهمن 1388, 15:23 عصر
http://barnamenevis.org/forum/showthread.php?t=203513


سلام
اين پست ها را هم مطالعه كردم توي اين پست ها گفته بودن كه يه فايل متنيbatبساز و يه سري كد را بنويس توي اون و هر وقت كه خواستي برنامه را اجرا كني ابتدا روي اين فايل bat كليك كن تا اكتيوايكس ها ها رجيستر بشن بعد برنامه را اجرا كنيد ديگه در اين صورت برنامه بدون هيچ مشكلي اجرا ميشه.
اما من ميخوام وقتي كه خواستم برنامه را اجرا كنم خودكار اين اكتيو ايكس ها رجيستر بشن وديگه نيازي نباشه كه روي يه چيز ديگه اي كليك كنيم.
اگه ميدونيد راهنمايي كنيد ممنون ميشم

xxxxx_xxxxx
چهارشنبه 28 بهمن 1388, 16:05 عصر
پس معلومه تاپیک رو کامل نخوندید.
در انتهای اون تاپیک گفته شده که میتونید با دستور Shell هم ابزارها رو رجیستر کنید:

سلام،
regsvr32 یک دستور نیست. نام یک فایل هست که پارامتر ورودیش نام ocx یا dll هست.
اگر میخواید رجیستر کردن رو از طریق VB انجام بدید باید با دستور Shell این فایل رو اجرا کنید.
مثلاً:


Shell "regsvr32 FileName.ocx"
برای جلوگیری از نمایش پیغام تأیید رجیستر شدن میتونید این فایل رو با s/ اجرا کنید:
در این باره جستجو کنید، قبلاً بحث شده.


Shell "regsvr32 FileName.ocx /s"


شما اینکارو از طریق برنامه خودتون انجام میدید. یعنی این دستور رو بین دستورات برنامه تون مینویسید.
فقط باید به یک نکته مهم توجه کنید.
برنامه زمانی که اجرا میشه باید ابزارهای فرمی که نمایش داده شده رجیستر شده باشن. یعنی مثلاً نمیشه شما تو فرم اولتون از یک ابزاری استفاده کرده باشید و تو همون فرم بخواید ابزار رو توسط دستور Shell رجیستر کنید. مگر اینکه عمل رجیستر شدن در رویداد Initialize فرم انجام بشه:


Private Sub Form_Initialize()
Shell "regsvr32 FileName.ocx"
End Sub

و یا اینکه ابزارهاتون رو توی تابع Main در یک ماژول رجیستر کنید و بعد فرمهاتون رو از توی اون تابع فراخوانی کنید.

اما میتونید ابزاری رو که هنوز Load نشده (فرمش نمایش داده نشده) رو از طریق یکی از بخش های دیگه برنامه رجیستر کنید و بعد فرمش رو Show کنید.

موفق باشید/