@echo FY|xcopy \\server\program\program.exe c:\program\program.exe /D
@c:\program\program.exe
задача АГЕНТ
в компе находиться приложение
‘C:\приложениею.exe’
и в сервере находиться приложение
‘\\server\папка \приложениею.exe’
агент проверяет ‘C:\приложениею.exe’ если он оказывается более старым чем
‘\\server\папка \приложениею.exe’ (через дату или как) то его заменяет и запускает и обратно в нору.
Это нужен чтобы обеспечить клиентов новой версией программы
1. Агенту нужен вот такой возможность, когда его первый раз запускаем он должен записать свои данные в реестр, чтобы следующий раз проснуться вместе с windows, но он должен делать это только один раз, чтобы каждый раз не загружать память!
Заранее благодарен всем, кто откликнется!
[COLOR=red]замечание: просьба темы так не называть: "Все смотрите туда, ...".
читайте пожалуйста правила форума. (moderator)[/COLOR]
Код:
Действие - перезапись программы новой, если на диске C: файл создан ранее чем на сервере.
Цитата:
1. Агенту нужен вот такой возможность, когда его первый раз запускаем он должен записать свои данные в реестр, чтобы следующий раз проснуться вместе с windows, но он должен делать это только один раз, чтобы каждый раз не загружать память!
Прописать вызов в реестре "SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce" в системном или пользовательском разделе
Цитата:
The CompareFileTime function compares two 64-bit file times.
LONG CompareFileTime(
CONST FILETIME *lpFileTime1, // pointer to first file time
CONST FILETIME *lpFileTime2 // pointer to second file time
);
Parameters
lpFileTime1
Points to a FILETIME structure that specifies the first 64-bit file time.
lpFileTime2
Points to a FILETIME structure that specifies the second 64-bit file time.
Return Values
If the function succeeds, the return value is one of the following values:
Value Meaning
-1 First file time is less than second file time.
0 First file time is equal to second file time.
+1 First file time is greater than second file time.
See Also
GetFileTime, FILETIME
В зависимости от результата скопировать поверх нового:
Цитата:
The CopyFile function copies an existing file to a new file.
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Parameters
lpExistingFileName
Points to a null-terminated string that specifies the name of an existing file.
lpNewFileName
Points to a null-terminated string that specifies the name of the new file.
bFailIfExists
Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
Security attributes for the existing file are not copied to the new file.
File attributes (FILE_ATTRIBUTE_*) for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to CopyFile will also have the FILE_ATTRIBUTE_READONLY file attribute. For further information on file attributes, see CreateFile.
See Also
CreateFile, MoveFile
1. Агенту нужен вот такой возможность, когда его первый раз запускаем он должен записать свои данные в реестр, чтобы следующий раз проснуться вместе с windows, но он должен делать это только один раз, чтобы каждый раз не загружать память!
Заранее благодарен всем, кто откликнется!
[/QUOTE]
Предлагаю.
Когда агент будет прописывать себя в реестр, пусть пропишет
путь к себе + какой то ключ (путь + /K), когда агент запускается с ключом (читаеш параметер) реестр не проверяет, в ином случае (когда он запускается впервые) делает запись в реестре.