sábado, 23 de maio de 2009

Alterarando o local share via programação

{No WIN 95 você pode alterar diretamente a chave do registro que seta esta opção. Fica em HKEY_LOCAL_MACHINE/Software/ LOCAL SHARE "TRUE" (Pesquise com o regedit). }

Procedure ModifyBDE(Path,Chave,Valor:String);
var ParamList: TParamList;
Lista:TStringList;
cfgMode:TConfigMode;
i:Integer;
begin
Lista:=TStringList.Create;
//Recupera Lista de Configurações
Session.GetConfigParams(Path,'',Lista);
//Verifica na lista, onde a chave modificada se encontra
For i:=0 to Lista.Count-1 do
If Pos(UpperCase(Chave),UpperCase(Lista[i]))<>0 Then
Lista[i]:=UpperCase(Chave)+'='+Valor;
//Salva o atual modo de configuração da variável de sessão
cfgMode:=Session.ConfigMode;
//Coloca em modo de alteração
Session.ConfigMode:=cmPersistent;
//Cria lista de parâmetros
ParamList := TParamList.Create(Lista);
//Chama API do BDE para modificar as configurações
Check(DbiCfgModifyRecord(nil, PChar(Path), ParamList.FieldCount,
PFLDDesc(ParamList.FieldDescs), ParamList.Buffer));
//Recupera o modo de configuração da variável de sessão
Session.ConfigMode:=cfgMode;
//Salva as configurações da sessão
Session.SaveConfigFile;
ParamList.Free;
Lista.Free;
End;

//Alguns exemplos de chamada da função para modificar o valor no BDE
//Nota: certas chaves possuem alguma diferença quanto ao Path no BDE
ModifyBDE('SystemFORMATSNUMBER','DECIMALSEPARATOR',',');
ModifyBDE('SystemInit','Local Share','TRUE');
ModifyBDE('DriversParadoxInit','Net Dir','F:');

//Após utilizar a função é necessário reiniciar o sistema.

Nenhum comentário:

Postar um comentário