1.من چطور ميتونم برناممو طوري بنويسم كه خودش بره تو استارت آپ تا با هر بار بالا امدن ويندوز اجرا بشه
2.من چطور ميتونم برنامه اي بنويسم كه ساعت سيستمو بگيره بعد تو زمان مشخص اجرا بشه
3.من از كامپايلر توربو سي استفاده ميكنم نه ويژوال سي:11:
Printable View
1.من چطور ميتونم برناممو طوري بنويسم كه خودش بره تو استارت آپ تا با هر بار بالا امدن ويندوز اجرا بشه
2.من چطور ميتونم برنامه اي بنويسم كه ساعت سيستمو بگيره بعد تو زمان مشخص اجرا بشه
3.من از كامپايلر توربو سي استفاده ميكنم نه ويژوال سي:11:
سلام.
از کدوم نسخه TC استفاده میکنین؟ تحت DOS یا تحت Windows ؟نقل قول:
من از كامپايلر توربو سي استفاده ميكنم نه ويژوال سي
به این دلیل مهم هست که نمیتونید در نسخه ی تحت DOS از API استفاده کنید مگه با استفاده
Windows Object Lib که باید پیداش کنید. (برای تغییر در registry برای startup .البته می شه با کپی
کردن در پوشه startup هم این کار رو انجام داد.)
برای جواب دادن مهمه که از کدوم نسخه استفاده میکنید.
تحت داس كار مي كنم
دوباره سلام.
برای startup کردن برنامه میتونین برنامه رو در این آدرس کپی کنین :
برای این کار فایل مورد نظر رو در binary mode باز کنین و دوباره به صورت binary در محل مورد نظر write کنین.کد:
"Windows Root" :\Documents and Settings\" Username" \Start Menu\Programs\Startup\
از این نمونه میتونین استفاده کنین:
اما در مورد اینکه برنامه تون در زمان خاصی اجرا بشه باید برنامه در حافظه مقیم بشه. (Resident) این کار روکد:
void CopyToStartup(const char *source,const char *S_Address)
{
FILE *src_file,*ads_file;
int ch;
//---------------
src_file = fopen(source,"r+b");
if ( src_file == NULL )
{
cout << "File Not Found in " << source << endl;
return;
}
ads_file = fopen(S_Address,"w+b");
if ( ads_file == NULL )
{
cout << "Write Faild in " << S_Address << endl;
return;
}
//----------------
while (true)
{
ch = getc(src_file);
putc(ch,ads_file);
if ( feof(src_file) )
break;
}
fclose(src_file);
fclose(ads_file);
}
معمولا با اجرا یه DLL در حافظه انجام میدن. در TC تحت DOS نمیتونین برای ویندوز DLL بنویسید.
بنابراین باید پنجره ی برنامه تون hide باشه. بهتر هست که برنامه از یه Thread برای این کار استفاده کنه. که
DOS ازش پشتیبانی نمیکنه.
می تونین از یه Timer در برنامه استفاده کنین (Timer.h) و در هر ثانیه , ساعت system رو با عدد مورد نظرتون
چک کنین. برای گرفتن ساعت سیستم میتونین از این کد استفاده کنین :
در مورد timer.h میتونین از help خود TC استفاده کنین.کد:
#include <stdio.h>
#include <dos.h>
#include <conio.h>
void main()
{
struct dostime_t t;
_dos_gettime(&t);
printf("current time is: %2d:%02d:%02d.%02d\n", t.hour, t.minute,
t.second, t.hsecond);
getch();
}