mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-19 20:13:33 +02:00
* removed registry unit dependency by using winapi instead
git-svn-id: trunk@6666 -
This commit is contained in:
parent
01b2873bf0
commit
90c5a79e2d
@ -13,7 +13,7 @@
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
uses windows,registry;
|
||||
uses windows;
|
||||
|
||||
Function TEventLog.DefaultFileName : String;
|
||||
|
||||
@ -70,7 +70,7 @@ end;
|
||||
Function TEventLog.RegisterMessageFile(AFileName : String) : Boolean;
|
||||
|
||||
Const
|
||||
SKeyEventLog = '\SYSTEM\CurrentControlSet\Services\EventLog\Application\%s';
|
||||
SKeyEventLog = 'SYSTEM\CurrentControlSet\Services\EventLog\Application\%s';
|
||||
SKeyCategoryCount = 'CategoryCount';
|
||||
SKeyEventMessageFile = 'EventMessageFile';
|
||||
SKeyCategoryMessageFile = 'CategoryMessageFile';
|
||||
@ -78,29 +78,31 @@ Const
|
||||
|
||||
Var
|
||||
ELKey : String;
|
||||
R : TRegistry;
|
||||
|
||||
Handle : HKey;
|
||||
SecurityAttributes: Pointer; //LPSECURITY_ATTRIBUTES;
|
||||
Value,
|
||||
Disposition : Dword;
|
||||
begin
|
||||
SecurityAttributes:=nil;
|
||||
CheckIdentification;
|
||||
If AFileName='' then
|
||||
AFileName:=ParamStr(0);
|
||||
R:=TRegistry.Create;
|
||||
Try
|
||||
R.RootKey:=HKEY_LOCAL_MACHINE;
|
||||
ELKey:=Format(SKeyEventLog,[IDentification]);
|
||||
Result:=R.OpenKey(ELKey,True);
|
||||
If Result then
|
||||
try
|
||||
R.WriteInteger(SKeyCategoryCount,4);
|
||||
R.WriteString(SKeyCategoryMessageFile,AFileName);
|
||||
R.WriteString(SKeyEventMessageFile,AFileName);
|
||||
R.WriteInteger(SKeyTypesSupported,7);
|
||||
except
|
||||
Result:=False;
|
||||
end
|
||||
Finally
|
||||
R.Free;
|
||||
end;
|
||||
ELKey:=Format(SKeyEventLog,[IDentification]);
|
||||
Result:=RegCreateKeyExA(HKEY_LOCAL_MACHINE,
|
||||
PChar(ELKey),0,'',
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_ALL_ACCESS,
|
||||
SecurityAttributes,Handle,
|
||||
pdword(@Disposition))=ERROR_SUCCESS;
|
||||
If Result then
|
||||
begin
|
||||
Value:=4;
|
||||
Result:=Result and (RegSetValueExA(Handle,PChar(SKeyCategoryCount),0,REG_DWORD,@Value,sizeof(DWORD))=ERROR_SUCCESS);
|
||||
Value:=7;
|
||||
Result:=Result and (RegSetValueExA(Handle,PChar(SKeyTypesSupported),0,REG_DWORD,@Value,sizeof(DWORD))=ERROR_SUCCESS);
|
||||
Result:=Result and (RegSetValueExA(Handle,PChar(SKeyCategoryMessageFile),0,REG_SZ,@AFileName[1],Length(AFileName))=ERROR_SUCCESS);
|
||||
Result:=Result and (RegSetValueExA(Handle,PChar(SKeyEventMessageFile),0,REG_SZ,@AFileName[1],Length(AFileName))=ERROR_SUCCESS);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToCategory(EventType: TEventType): Word;
|
||||
|
Loading…
Reference in New Issue
Block a user