![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокирование запуска чужого приложения во время исполнения ... [D7, WinXP]
Gear © (2006-03-02 23:50:00)Здравствуйте! Реально ли сделать блокирование запуска чужого приложения во время исполнения своей программы?
Джо (2006-03-03 02:13:00) [1]> [2] Gear (03.03.06 01:10)
> Что это означает?
unit FileBlocker;
interface
uses Windows, SysUtils, Classes, Contnrs;
// Блокирует указанный файл до конца работы приложения
procedure BlockFile (AFileName: string);
implementation
type
TFileBlocker = class
private
FHandle: THandle;
public
constructor Create (AFileName: string);
destructor Destroy; override;
end;
var
FBlockedFile: TObjectList;
procedure BlockFile (AFileName: string);
begin
FBlockedFile.Add(
TFileBlocker.Create(AFileName)
)
end;
{ TFileBlocker }
constructor TFileBlocker.Create(AFileName: string);
begin
inherited Create;
FHandle := CreateFile(PChar(AFileName),
GENERIC_READ,
0, // No sharing
nil,
OPEN_EXISTING,
0,
0
);
if FHandle = INVALID_HANDLE_VALUE then
RaiseLastOSError;
end;
destructor TFileBlocker.Destroy;
begin
CloseHandle (FHandle);
inherited;
end;
initialization
FBlockedFile := TObjectList.Create (True);
finalization
FBlockedFile.Free;
end.
----
Пример использования:
----
procedure TForm1.Button1Click(Sender: TObject);
begin
BlockFile('D:\Delphi\Delphi6\Projects\RasterLib\RR.exe');
end;
Германн (2006-03-03 02:10:00) [2]Если "чужое" == "любое другое", то - ДОС!
Если иначе - см. выше.
Eraser (2006-03-03 01:53:00) [3]
> Gear (02.03.06 23:50)
реально. Установи соотв. ограниченые права той программе.
Суслик (2006-03-03 01:45:00) [4]в общем случае сложно, но в частно, реально, имхо
Gear (2006-03-03 01:10:00) [5]Что это означает?
Marser (2006-03-02 23:54:00) [6]Открыть его файл монопольно.