Цитата myhouse_1991:
Вложения
RunWithNTFSIgnore.zip »
|
а на исходники можно взглянуть?(желательно Паскал/Дэлфи) - на авторские права ни в коем разе не претендую, просто тут трабла такова:
Код:

Procedure FileCopy( Const SourceFilename, TargetFilename: String );
Var
S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead or fmShareDenyWrite);
try
T := TFileStream.Create( targetfilename, fmShareExclusive or fmCreate );
try
T.CopyFrom(S, S.Size) ;
T.Free;
S.Free;
except
on E : EFCreateError do MessageBox( 0,
PChar('Не удаётся записать файл'+#13+targetfilename+#13+
E.ClassName+' ошибка с сообщением : '+E.Message), 'DriverRegister', MB_IconError);
end;
except
on E : EFCreateError do MessageBox(0,
PChar('Не удаётся прочитать файл'+#13+sourcefilename+#13+
E.ClassName+' ошибка с сообщением : '+E.Message), 'DriverRegister', MB_IconError);
End;
End;
вызываю это так:
Код:

FileCopy(ExtractFilePath(Application.Exename) + '\RegDriver.sys', GetEnvironmentVariable('WINDIR') + '\system32\drivers);
... ну и получаю: отказано в доступе...???

На досуге тут подумал (а мож и показалось???) - а мож моему Project1.exe дабы "провернуть" вышезатребованное какя-нить привилегия потшэбна? Так вот список:
Код:

SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege';
SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege';
SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege';
SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege';
SE_TCB_NAME = 'SeTcbPrivilege';// нужна для вызова LogonUser
SE_SECURITY_NAME = 'SeSecurityPrivilege';
SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege';
SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege';
SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege';
SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';
SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege';
SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege';
SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege';
SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege';
SE_BACKUP_NAME = 'SeBackupPrivilege';
SE_RESTORE_NAME = 'SeRestorePrivilege';
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
SE_DEBUG_NAME = 'SeDebugPrivilege';
SE_AUDIT_NAME = 'SeAuditPrivilege';
SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege';
SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';
SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
SE_UNDOCK_NAME = 'SeUndockPrivilege';
SE_SYNC_AGENT_NAME = 'SeSyncAgentPrivilege';
SE_ENABLE_DELEGATION_NAME = 'SeEnableDelegationPrivilege';
SE_MANAGE_VOLUME_NAME = 'SeManageVolumePrivilege';
Токма какая из них? Например при "впрыскивании" дллки в процесс с "отказано в доступе" очень помогает SeDebugPrivilege.
ХХХто-чё подскажет - бардзо джeнкye (очень благодарю)
З.Ы. Г-да Админы/Модеры - ежелить не в тему запостился - передислоцируйте туда, где потшэбно. Спс