PDA

View Full Version : اضافه کردن Scheduled



reza_Nazem
جمعه 21 تیر 1387, 14:22 عصر
با سلام
من می خوام در برنامه ام یک Scheduled به Scheduled tasks ویندوز (xp یا 2003 server) اضافه کنم که راس ساعت خاصی یک برنامه را اجرا کند

vcldeveloper
شنبه 22 تیر 1387, 02:46 صبح
می تونید از تابع NetScheduleJobAdd استفاده کنید. Header مربوط به آن در دلفی بطور پیش فرض ترجمه نشده، ولی می تونید یک نسخه از یونیتی که Header مربوط به Microsoft Task Scheduler API را برای دلفی ترجمه کرده، از لینک زیر دانلود کنید:
http://www.koders.com/delphi/fidA00E8BCF617A25CF6F23E6E047079873ECB04258.aspx?s =network#L1

reza_Nazem
یک شنبه 23 تیر 1387, 01:55 صبح
ممنوع از راهنمایتان واقعا عالی بود مشکلا تقریبا حل شد
من این تابع را توانستم پیدا کنم


type
PATInfo = ^ATInfo;

ATInfo = record
JobTime: DWord;
DaysOfMonth: DWord;
DaysOfWeek: byte;
Flags: byte;
Command: PWideChar;
end;

function NetScheduleJobAdd(servername: PWideChar; buf: PATInfo; var JobId: DWord): DWord;
stdcall; external 'netapi32.dll' name 'NetScheduleJobAdd';

حالا مشکل من با رکورد ATINFo است چه طوری می شه مثلا ساعت 17:35 را به dword تبدیل کر د و به فیلد jobtime ان اختصاص داد و همین طور فیلد های دیگر

vcldeveloper
یک شنبه 23 تیر 1387, 02:47 صبح
حالا مشکل من با رکورد ATINFo است چه طوری می شه مثلا ساعت 17:35 را به dword تبدیل کر د و به فیلد jobtime ان اختصاص داد و همین طور فیلد های دیگر
در Windows SDK که از طریق منوی Help دلفی در دسترس هست، یا در MSDN عبارت AT_INFO را جستجو کنید. در آنجا توضیح داده شده. مثلا JobTime مقدار میلی ثانیه های سپری شده از ساعت 12 را مشخص می کند.
هر ثانیه = 1000 میلی ثانیه، پس هر دقیقه = 60,000 میلی ثانیه، و هر ساعت = 3,600,000 میلی ثانیه.
ساعت 17:35 یعنی (17 * 3,600,000) + (35 * 60,000) = 63,300,000 میلی ثانیه