۲۳-اسفند-۱۳۸۵, ۱۸:۵۳:۲۱
سلام
خوب هستيد
اين كاري رو كه ميخواهيد بكنيد بيشتر به بخش برنامه نويسي ربط داره تا كرك كردن . اما خوب يه جا هايش هم مربوطه بگذريم برسيم به جواب شما
1- برنامه بايد اجرا بشه
2- بعد از نصب بياد و فايل مورد نظر شمكا كپي بشه
خوب براي اين كار چند تا كار ميتوني بكني
فرض كنيم برنامه براي اجرا بعد از نصب احتياج داره ريستارت كنه:
1- يك برنامه بنويسي كه هنگام نصب اول و قبل از برنامه نصب اجرا بشه و خودش رو توي شاخه runonce توي ريجيستري كپي كنه و بعد برنامه نصب رو اجرا كرده و خارج بشه . حالا وقتي دستگاه ريستارت شد اين برنامه كه توي شاخه ريجستري نشته بياد ببينه كه برنامه كجا نصب شده و كرك رو توي شاخه نصب برنامه كپي كنه ( از روي سي دي و يا هارد و يا جايي كه هنگام اولين اجرا برنامه كرك رو بصورت موقت كپي كرده باشه )
خوب برنامه احتياج به راه اندازي نداره
2- برنامه نصب را با تابع api: creat proccess بصورت ساسپند ران كنه
- با تابع Api:ResumeThread برنامه رو راه بندازه
- *چك شه برنامه در حال اجرا است يا نه ( با تابع WaitForSingleObject و ورودي هاي هندل پروسس و مقدار 0 يعني چك كن اين پروسس توي حافظه هست يا نه )
- اگر مسير نصب معين نشده بود چك كنه ايا مسير نصب را يوزر معين كرده يا نه ( بيشتر برنامه ها موقع نصب مسير نصبشون رو توي ريجستري مينويسن و يا توي يك فايل ini )
- **اگر مسير نصب پيدا شده بود :
-- چك كنه ايا فايل مورد نظر با انداره اش توي مسير نصب كپي شده يا نه
-- اگر كپي شده بود فايل كرك رو روش كپي كنه و به *** بره وگرنه ادامه بده
- اتمام **
- صدا زدن APi:sleep 10 جهت اينكه هي لوپ اجرا نشه و پروسس به 100 درصد نرسه ( ابته اگر از وي بي استفاده ميشه استفاد ه از تابع doevents بهتر است )
- پرش به *
- *** خروج
خوب هستيد
اين كاري رو كه ميخواهيد بكنيد بيشتر به بخش برنامه نويسي ربط داره تا كرك كردن . اما خوب يه جا هايش هم مربوطه بگذريم برسيم به جواب شما
1- برنامه بايد اجرا بشه
2- بعد از نصب بياد و فايل مورد نظر شمكا كپي بشه
خوب براي اين كار چند تا كار ميتوني بكني
فرض كنيم برنامه براي اجرا بعد از نصب احتياج داره ريستارت كنه:
1- يك برنامه بنويسي كه هنگام نصب اول و قبل از برنامه نصب اجرا بشه و خودش رو توي شاخه runonce توي ريجيستري كپي كنه و بعد برنامه نصب رو اجرا كرده و خارج بشه . حالا وقتي دستگاه ريستارت شد اين برنامه كه توي شاخه ريجستري نشته بياد ببينه كه برنامه كجا نصب شده و كرك رو توي شاخه نصب برنامه كپي كنه ( از روي سي دي و يا هارد و يا جايي كه هنگام اولين اجرا برنامه كرك رو بصورت موقت كپي كرده باشه )
خوب برنامه احتياج به راه اندازي نداره
2- برنامه نصب را با تابع api: creat proccess بصورت ساسپند ران كنه
- با تابع Api:ResumeThread برنامه رو راه بندازه
- *چك شه برنامه در حال اجرا است يا نه ( با تابع WaitForSingleObject و ورودي هاي هندل پروسس و مقدار 0 يعني چك كن اين پروسس توي حافظه هست يا نه )
- اگر مسير نصب معين نشده بود چك كنه ايا مسير نصب را يوزر معين كرده يا نه ( بيشتر برنامه ها موقع نصب مسير نصبشون رو توي ريجستري مينويسن و يا توي يك فايل ini )
- **اگر مسير نصب پيدا شده بود :
-- چك كنه ايا فايل مورد نظر با انداره اش توي مسير نصب كپي شده يا نه
-- اگر كپي شده بود فايل كرك رو روش كپي كنه و به *** بره وگرنه ادامه بده
- اتمام **
- صدا زدن APi:sleep 10 جهت اينكه هي لوپ اجرا نشه و پروسس به 100 درصد نرسه ( ابته اگر از وي بي استفاده ميشه استفاد ه از تابع doevents بهتر است )
- پرش به *
- *** خروج