Fa مشکل در ساخت اتوران خاص

wolf21

Member
برنامه ای که من باهاش setup میسازم این کی رو که بهش میدم هر کجا که کاربر نصب کنه همون جا رو نشون میده.
<TARGETDIR>\Autorun.exe
 

پیوست ها

  • a.JPG
    a.JPG
    120.8 کیلوبایت · بازدیدها: 19
آخرین ویرایش:

evil_gates

اين نيز بگذرد ...
دوست عزيز
منظور من تصوير رجيستري شماست و مسيري كه كليد شما تو رجيستري ساخته ميشه. ميخوام ببينم بعد از نصب دقيقا چه كليدي با چه متغير و محتوايي تو رجيستريتون ذخيره ميشه.

HKEY_LOCAL_MACHINE\Software\My Company Name\My Project Name-1\1.00.0000\game
 

wolf21

Member
attachment.php
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
بنده تو پست هاي اول عرض كردم يك كليد حاوي يك متغير عددي در رجيستري ذخيره كنيد.

اما چيزي كه شما در game شما در رجيستري وجود داره اين نيست. شما در واقع يك متغير رشته اي رو ذخيره كرديد كه آدرس محل نصب برنامه شما رو داره.

بنابراين بايد شرط برنامه رو تغيير بديد تا خروجي صحيحي داشته باشه.

من تو پست قبلي با فرض اينكه مقدار متغير شما معادل 1 هست اون شرط رو دادم.

شما ميتونيد عبارتي كه بايد تو شرط مقايسه بشه رو تغيير بديد تا برنامه شما به درستي اجرا بشه.

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

موفق باشيد
 

wolf21

Member
من این کتاب را ندارم و در همین نرم افزار باید ذخیره ش کنم یا یه چیزه دیگه ای بسازم.
خودتون میشه یکی از save های همین طوریتون را بذارید:sad:در دکه play من چیزی ننوشتم نباید چیزی بنویسم در کد نویسی
 
آخرین ویرایش:

evil_gates

اين نيز بگذرد ...
من این کتاب را ندارم و در همین نرم افزار باید ذخیره ش کنم یا یه چیزه دیگه ای بسازم.

http://forum.majidonline.com/showthread.php?t=123477

خودتون میشه یکی از save های همین طوریتون را بذارید
تو پستهاي قبلي عرض كردم تو مسافرتم و فعلا دسترسي ندارم. اجازه بديد تو فرصت مناسب براتون نمونه ميسازم.
 

wolf21

Member
سلام من این کتاب را خواندم ممنون ولی در باره این مطلب ننوشته بود چگونه باید مقدار فایلی را که ذخیره کردم را بفهمم رشته ای هم هست.من به برنامه این طوری دادم وفایلمم را ذخیره کردم وبرنامه هم هست و دکمه play نمیاد .
کد:
regpath$='HKEY_LOCAL_MACHINE\Software\Firefly Studios\Stronghold Crusader\1.00.0000\Stronghold Crusader'
PluginSet("PlugIn","regpath$")
PluginRun("PlugIn","RegistryRead")
PluginGet("PlugIn","Stronghold Crusader$")
x=VAL(Stronghold Crusader$)
If (x=1) Then
  Show("Play")
  Show("Pla")
  Hide("Install")
  Hide("Instal")
Else
  Hide("Play")
  Hide("Pla")
  Show("Install")
  Show("Instal")
End
اگر میشه همین نوشته را برام اگر اشتباه درستش کنید.Stronghold Crusader کی من هست همون متغیر
 

evil_gates

اين نيز بگذرد ...
دوست عزیز
اشتباه شما اینه که سعی میکنید یک متغیر رشته ای حاوی متنی رو با تابع VAL تبدیل به یک متغیر عددی کنید و بعد هم یک شرط اشتباه رو مینویسید. در واقع کدی که تو پست های قبلی پیشنهاد شده بدون تغییرات لازم نمیتونه مشکل شما رو رفع کنه و قاعدتا با این روش نباید هم برنامه شما به درستی کار کنه.

اگه منابع آموزشی که معرفی کردم رو با دقت مطالعه کرده باشید حتما به این نکته رسیدید که نمیشه هر متنی رو با تابع VAL به عدد تبدیل کرد.

متاسفانه چون فعلا دسترسی ندارم تا نمونه بسازم براتون، اجازه بدید مراحل رو خط به خط تشریح کنم شاید بهتر تونستم منظورم رو برسونم.

ما در زمان نصب برنامه یک کلید در رجیستری ایجاد میکنیم که حاوی یک مقدار هست درسته؟

این مقدار چیه؟ طبق تصویری که من از رجیستری شما دیدم این کلید حاوی یک متغیر رشته ای هست که آدرس محل نصب برنامه رو داره.

خب حالا به دو روشی که تو پست اول گفتم با استفاده از این اطلاعات میشه فهمید که برنامه یا همون بازی شما به درستی نصب هست یا نه

1- اینکه ما با استفاده از این آدرس و دستور FileExist در این مسیر بگردیم و فایل اجرایی بازی رو ببینیم که در صورت وجود فایل شرط شما صحیح و دکمه play نمایش داده میشه.

2- با استفاده از روشی که تو چند تا پست قبلی طی می کردیم مقدار کلید رو برگردونیم و با شرط خودمون مقایسه کنیم که در صورت صحت دکمه play نمایش داده میشه.

اول باید مقدار ذخیره شده در رجیستری رو بخونیم. از اونجایی که میدونیم کلید ما متغیری از نوع متن خواهد بود. برای اینکار با پلاگین این مقدار رو تو یک متغیر رشته ای بر میگردونیم.
کد:
regpath$='HKEY_LOCAL_MACHINE\Software\Firefly Studios\Stronghold Crusader\1.00.0000\Stronghold Crusader'
PluginSet("PlugIn","regpath$")
PluginRun("PlugIn","RegistryRead")
PluginGet("PlugIn","get$")

مقدار موجود در متغیر $get همون متغیر رشته ای ماست که حاوی آدرس محل نصب بازی هست.

خب حالا برای روش اول باید با دستور FileExist و یک شرط وجود فایل رو مسیر مقصد چک کنیم.

با فرض اینکه نام فایل اجرایی بازی شما game.exe هست این کد رو استفاده میکنیم.
کد:
path$=get$+'game.exe'
FileExist("path$","x")
If (x=1) Then
Show("play")
Hide("install")
*** or any commands
Else
Hide("play")
Show("install")
*** or any commands
End
تو کد بالا وجود فایل اجرایی game.exe در مسیر مورد نظر ما که همون مقدار $get هست جستجو میشه و نتیجه به در یک متغیر عددی به نام x بر میگرده.

اگه فایل وجود داشته باشه مقدار x برای یک خواهد بود. و اگه فایل وجود نداشته باشه مقدار x صفر خواهد شد.

پس طبق شرط ما اگه x=1 دکمه play نمایش داده میشه و اگه غیر از این بود دکمه play مخفی میشه و یا هر فرمان دیگه ای که مدنظر شماست اجرا میشه.

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

پس میشه فقط با یک شرط چک کرد که آیا کلیدی حاوی مقدار مورد نظر تو رجیستری وجود داره یا نه که اگه وجود داره پس نتیجه میگیریم که بازی نصبه و باید دکمه play نمایش داده بشه و اگه وجود نداره نتیجه میگیریم بازی هم نصب نیست و نباید دکمه Play نمایش داده بشه.
کد:
regpath$='HKEY_LOCAL_MACHINE\Software\Firefly Studios\Stronghold Crusader\1.00.0000\Stronghold Crusader'
PluginSet("PlugIn","regpath$")
PluginRun("PlugIn","RegistryRead")
PluginGet("PlugIn","get$")
If (get$<>'') Then
Show("play")
Hide("install")
*** or any commands
Else
Hide(("play")
Show("install")
*** or any commands
End
تو کد بالا فقط چک میشه که در متغیر $get مقداری وجود داره یا نه. در صورتی که این متغیر خالی نباشه یعنی ' '<>$get پس نتیجه میگیریم که بازی نصب شده و میشه دکمه play رو نمایش داد.

دوست من سعی کنید کمی به مراحل کار و راهنمایی ها فکر کنید. صرفا استفاده از کدی که بنده یا دوستان پیشنهاد میدن که نمیتونه نیاز شما رو برای حل مسئله برآورده کنه اگه خودتون نسبت به اون کدها آشنایی و درک کافی نداشته باشید.

------------------------------------------------

دوستان دیگه هم اگه دسترسی دارن لطف کنن و یک مثال برای دوستمون بزارن من فعلا نمیتونم مثال بسازم. ممنون

موفق باشید.
 

wolf21

Member
ممنون در دکمه ی play چه چیزی باید بنویسم واین get$ همین باشد
 

evil_gates

اين نيز بگذرد ...
ممنون در دکمه ی play چه چیزی باید بنویسم
متوجه منظورتون نشدم!!! خب باید دستوراتی که مدنظرتون هست با زدن این کلید اتفاق بیفته رو بنویسید دیگه. دستورات داخل این کلید ربطی به چیزی که تا حالا در موردش بحث شد نداره.

واین get$ همین باشد
من که تو پست قبلی عرض کردم. این یک پیشنهاد برای حل مشکلتون هست. شما میتونید از این روش یا هر روش دیگه ای که مایل هستید برای نوشتن دستورات برنامه اقدام کنید. فقط قبلش دقیقا به کاری که می خواید انجام بدید فکر کنید و یک الگوریتم براش داشته باشید.
 

wolf21

Member
س

در برنامه در دکمه ای که بنام play هست چه کدی باید بدم که تا برنامه با متغیر که ساختم اجرا بشه
 

wolf21

Member
واین که قرمزه اسم متغیره باید بنوسم یا نه.'HKEY_LOCAL_MACHINE\Software\Firefly Studios\Stronghold
Crusader\1.00.0000\Stronghold Crusader'
 

evil_gates

اين نيز بگذرد ...
دوست عزیز

اول اینکه لطفا قوانین سایت رو مطالعه کنید.

دوم اینکه پیشنهاد میکنم به جای زدن چند تا پست مختلف و نامفهوم سوالتون رو دقیق تر و تو یک پست متمرکز بپرسید و منظورتون رو واضح توضیح بدید. راستش من که از این سه تا پست قبلی چیزی رو متوجه نشدم که بخوام دقیقتر راهنمایی کنم دوستان دیگه رو نمیدونم.

سال خوبی داشته باشید
 

saba202020

New Member
salam
khaste nabashid
be ye moshkele bozorg tooye MMb barkhordam
age mishe komakam kon
karam lang moonde
khili jaha donbalesh gashtam
age mishe lotfan komakam konid


man serial hardo az moshtari migiram ama nemidoonam chetori active kode besazam toro khoda komakam konid
 

evil_gates

اين نيز بگذرد ...
salam
khaste nabashid
be ye moshkele bozorg tooye MMb barkhordam
age mishe komakam kon
karam lang moonde
khili jaha donbalesh gashtam
age mishe lotfan komakam konid


man serial hardo az moshtari migiram ama nemidoonam chetori active kode besazam toro khoda komakam konid

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

قبل از مطرح كردن سوال در موردش جستجو كنيد. به احتمال زياد پاسخش رو خواهيد يافت.

در صورتي كه نياز به راهنمايي و پاسخ بيشتر داشتيد سوالتون رو با عنواني مشخص و توضيحات كافي تو يك مبحث جديد بپرسيد.

براي سوال از زبان و نوشتار فارسي استفاده كنيد.

از ايجاد مباحث تكراري و در بخش غير مرتبط خودداري كنيد

در مورد پاسخ سوالتون هم اگه كمي جستجو ميكرديد حتما به اين مبحث ميرسيديد

http://forum.majidonline.com/showthread.php?t=79611

موفق باشيد
 

saba202020

New Member
سلام مرسی چند تا عذز خواهی بهتون چون واقعا کارم گیره اگه قوانین رو رعلیت نکردم عذر می خوام

بعدش اینکه من کل majidOnline رو زیرو رو کردم این آدرس هم که دادینو رفته بودم تمام فایل هارو گرفته بودم
همه اینا سریال هارد رو میده
من با این مشکلی ندارم !

مشکلم اینه که نمی دونم با این سریال داده شده چطور کد فعال سازی به مشتری بدم
اگه برنامه خاصی یا الگوریتم خاصی داره لطفا راهنماییم کنین که با سریالی که از مشتری می گیرم بتونم بهش کد بدم که از نرم افزارم استفتده کنه

خیلی ممنونم
 

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

بالا