Olá, Boa Tarde Pessoal...
Depois de pesquisar muito na internet, encontrei pouco conteúdo sobre o assunto e resolvi postar aqui.
Nosso assunto hoje será como descobrir o destino de um atalho do windows.
Para que esta função rode corretamente é preciso declarar no uses as seguinte Units "ShellApi, ShlObj, ActiveX, ComObj, Registry" (sem as aspas).
1º - Declare a seguinte função:
Function PegaDestinoAtalho(const LinkFileName:String):String;
2º - Na área de implementações, implemente-a da seguinte maneira:
function TForm1.PegaDestinoAtalho(const LinkFileName: String): String;
var
psl : IShellLink;
ppf : IPersistFile;
Info : Array[0..MAX_PATH] of Char;
wfs : TWin32FindData;
begin
CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, psl);
if psl.QueryInterface(IPersistFile, ppf) = 0 then
begin
ppf.Load(PWChar(WideString(LinkFileName)), 0);
psl.GetPath(@info, MAX_PATH, wfs, SLGP_UNCPRIORITY);
Result := info;
end;
end;
3º - Para utilizar a função, chame-a da seguinte forma:
// Declare duas variáveis do tipo String ("caminho e destino").
// "caminho" será o caminho do atalho e
// "destino" receberá o destino do atalho.
caminho := 'C:\Users\usuario\Desktop\atalho.lnk';
destino := PegaDestinoAtalho(caminho);
OBS. 1: Em Breve postarei como ler todos os arquivos do tipo "*.lnk" de um determinado diretório.
OBS. 2: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Fonte.: Algum lugar da Internet e alterado para melhor entendimento.
Esta foi a dica de hoje, se for útil, comentem.
Se você tem uma dica interessante, pode postar nos comentários.
Atenciosamente
Dica Chave.
quarta-feira, 10 de julho de 2013
Nome do usuário logado no Windows com Delphi
Olá, Boa Tarde Pessoal...
Hoje vamos ver como saber o nome do usuário logado no Windows com o auxilio do Delphi.
1º - Declare a seguinte função:
Function NomeUsuario: String;
2º - Na área de implementações, implemente-a da seguinte maneira:
function TForm1.NomeUsuario: String;
var
lpBuffer : Array[0..20] of Char;
nSize : dWord;
mRet : boolean;
erro : dWord;
begin
nSize := 120;
mRet := GetUserName(lpBuffer, nSize);
if mRet then
begin
Result := lpBuffer
end
else
begin
erro := GetLastError();
MessageDlg('Ocorreu o erro ' + IntToStr(erro) + ' ao procurar o nome logado no computador.',
mtError, [mbOk], 0);
Result := '';
end;
end;
3º - Para utilizar a função, chame-a da seguinte forma:
nomeDoUsuario := NomeUsuario;
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Fonte.: Algum lugar da Internet.
Esta foi a dica de hoje, se for útil, comentem.
Se você tem uma dica interessante, pode postar nos comentários.
Atenciosamente
Dica Chave.
Hoje vamos ver como saber o nome do usuário logado no Windows com o auxilio do Delphi.
1º - Declare a seguinte função:
Function NomeUsuario: String;
2º - Na área de implementações, implemente-a da seguinte maneira:
function TForm1.NomeUsuario: String;
var
lpBuffer : Array[0..20] of Char;
nSize : dWord;
mRet : boolean;
erro : dWord;
begin
nSize := 120;
mRet := GetUserName(lpBuffer, nSize);
if mRet then
begin
Result := lpBuffer
end
else
begin
erro := GetLastError();
MessageDlg('Ocorreu o erro ' + IntToStr(erro) + ' ao procurar o nome logado no computador.',
mtError, [mbOk], 0);
Result := '';
end;
end;
3º - Para utilizar a função, chame-a da seguinte forma:
nomeDoUsuario := NomeUsuario;
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Fonte.: Algum lugar da Internet.
Esta foi a dica de hoje, se for útil, comentem.
Se você tem uma dica interessante, pode postar nos comentários.
Atenciosamente
Dica Chave.
sexta-feira, 24 de maio de 2013
Completar Uma String Até um Determinado Tamanho
Olá, Boa Tarde Pessoal...
Hoje vamos a mais uma dica simples, porem muito útil.
1º - Declare a seguinte função:
CompletaString(str: string; tamanho: Integer; caracter: string): String;
2º - Na área de implementações, implemente-a da seguinte maneira:
function TForm1.CompletaString(str: string; tamanho: Integer; caracter: string): String;
begin
// str -> Variavel a ser alterada.
// tamanho -> Tamanho desejado para a variavel.
// caracter -> Caracter usado para completar o tamanho da variavel.
while (Length(str) < tamanho) do
begin
str := str + caracter;
end;
Result := str;
end;
3º - Para utilizar a função, chame-a da seguinte forma:
minhaVariavel := CompletaString(minhaVariavel, 20, ' ');
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, se for útil, comentem.
Se você tem uma dica interessante, pode postar nos comentários.
Atenciosamente
Dica Chave.
Hoje vamos a mais uma dica simples, porem muito útil.
1º - Declare a seguinte função:
CompletaString(str: string; tamanho: Integer; caracter: string): String;
2º - Na área de implementações, implemente-a da seguinte maneira:
function TForm1.CompletaString(str: string; tamanho: Integer; caracter: string): String;
begin
// str -> Variavel a ser alterada.
// tamanho -> Tamanho desejado para a variavel.
// caracter -> Caracter usado para completar o tamanho da variavel.
while (Length(str) < tamanho) do
begin
str := str + caracter;
end;
Result := str;
end;
3º - Para utilizar a função, chame-a da seguinte forma:
minhaVariavel := CompletaString(minhaVariavel, 20, ' ');
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, se for útil, comentem.
Se você tem uma dica interessante, pode postar nos comentários.
Atenciosamente
Dica Chave.
terça-feira, 21 de maio de 2013
"Modo Deus" ou GodMode do Windows 7, 8 e 10
Olá, Bom dia a Todos.
Agora vamos ver uma dica muito simples, porem bastante útil, principalmente para quem trabalha com suporte técnico.
Vamos falar sobre o "Modo Deus" para Windows nas versões 7, 8 e 10.
O que é o "Modo Deus" ?
É uma funcionalidade do Windows 7, 8 e 10, onde encontramos uma grande relação de itens de configuração do Windows. No Windows 7 são 278 itens, no Windows 8.1 são 251 itens e no Windows 10 são 239 itens para o gerenciamento do sistema operacional.
Como criar e utilizar este recurso ?
Crie uma pasta em um local de sua escolha (Ex.: Área de Trabalho), logo após renomeie a pasta para "Modo_Deus.{ED7BA470-8E54-465E-825C-99712043E01C}" (Sem Aspas).
OBS. 1.: No canto superior direito, temos um campo de pesquisa, onde podemos filtrar os itens por palavra chave.
OBS. 2.: O nome da pasta "Modo_Deus" foi apenas um apelido usado para o nome do ícone criado, você pode usar qualquer outro nome para este recurso.
Ex.: Painel.{ED7BA470-8E54-465E-825C-99712043E01C}
Bom, espero ter ajudado com esta dica.
Agora vamos ver uma dica muito simples, porem bastante útil, principalmente para quem trabalha com suporte técnico.
Vamos falar sobre o "Modo Deus" para Windows nas versões 7, 8 e 10.
O que é o "Modo Deus" ?
É uma funcionalidade do Windows 7, 8 e 10, onde encontramos uma grande relação de itens de configuração do Windows. No Windows 7 são 278 itens, no Windows 8.1 são 251 itens e no Windows 10 são 239 itens para o gerenciamento do sistema operacional.
Como criar e utilizar este recurso ?
Crie uma pasta em um local de sua escolha (Ex.: Área de Trabalho), logo após renomeie a pasta para "Modo_Deus.{ED7BA470-8E54-465E-825C-99712043E01C}" (Sem Aspas).
A pasta ficará com um ícone parecido com este no Windows 7:
E igual a este no Windows 10:
Após abrir a pasta você terá uma janela semelhante a esta no Windows 7:
E semelhante a esta no Windows 10:
OBS. 1.: No canto superior direito, temos um campo de pesquisa, onde podemos filtrar os itens por palavra chave.
OBS. 2.: O nome da pasta "Modo_Deus" foi apenas um apelido usado para o nome do ícone criado, você pode usar qualquer outro nome para este recurso.
Ex.: Painel.{ED7BA470-8E54-465E-825C-99712043E01C}
Bom, espero ter ajudado com esta dica.
Atenciosamente
Dica Chave.
Função Para Validar Dígito Verificador de CNPJ
Olá, Bom Dia.
Conforme prometido, hoje vou publicar um função para validar o dígito verificador de CNPJs.
- Abra um novo projeto no Delphi;
- No formulário principal, insira um "Edit" e um "Button"(Guia Standard);
- Declare a seguinte função na seção de declarações "Public".
function verificaCNPJ(cnpj: String): Boolean;
4. Na seção de implementação "Implementation", implemente a função descrita acima, segue código:
function TForm1.verificaCNPJ(cnpj: String): Boolean;
var
numCNPJ : array[1..12] of integer;
cont, d1, d2 : integer;
digitado, calculado : String;
begin
for cont :=1 to 12 do
begin
numCNPJ[cont] := StrToInt(cnpj[cont]);
end;
d1 := numCNPJ[1]*5 + numCNPJ[2]*4 + numCNPJ[3]*3 + numCNPJ[4]*2 + numCNPJ[5]*9 +
numCNPJ[6]*8 + numCNPJ[7]*7 + numCNPJ[8]*6 + numCNPJ[9]*5 + numCNPJ[10]*4 +
numCNPJ[11]*3 + numCNPJ[12]*2;
if (d1 mod 11)<2 then
d1 := 0
else
d1 := 11 - (d1 mod 11);
d2 := numCNPJ[1]*6 + numCNPJ[2]*5 + numCNPJ[3]*4 + numCNPJ[4]*3 + numCNPJ[5]*2 +
numCNPJ[6]*9 + numCNPJ[7]*8 + numCNPJ[8]*7 + numCNPJ[9]*6 + numCNPJ[10]*5 +
numCNPJ[11]*4 + numCNPJ[12]*3 + d1*2;
if (d2 mod 11)<2 then
d2 := 0
else
d2 := 11 - (d2 mod 11);
digitado := cnpj[13] + cnpj[14];
calculado := IntToStr(d1)+IntToStr(d2);
if (digitado = calculado) then
verificaCNPJ := True
else
verificaCNPJ := False
end;
5. No evento "OnClick" do botão, coloque o seguinte código:
if (verificaCNPJ(Edit1.Text) = True) then
begin
ShowMessage('CNPJ Válido!!!');
end
else
begin
ShowMessage('CNPJ Inválido!!!');
end;
6. Salve o projeto em uma pasta de sua escolha e compile a aplicação, após compilar na janela que irá abrir, digite o número do CNPJ no Edit e clique no botão para validar o dígito.
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, em breve mais novidades em nosso Blog.
Atenciosamente
Dica Chave.
quinta-feira, 16 de maio de 2013
Função Para Validar Dígito Verificador de CPF
Olá, Boa Tarde.
Mais um dica chegando.
Hoje vou publicar um função para validar o dígito verificador de CPFs.
- Abra um novo projeto no Delphi;
- No formulário principal, insira um "Edit" e um "Button"(Guia Standard);
- Declare a seguinte função na seção de declarações "Public".
function verificaCPF(cpf: String): Boolean;
4. Na seção de implementação "Implementation", implemente a função descrita acima, segue código:
function TForm1.verificaCPF(cpf: String): Boolean;
var
numCPF : array[1..9] of integer;
cont, d1, d2 : integer;
digitado, calculado : String;
begin
for cont :=1 to 9 do
begin
numCPF[cont] := StrToInt(cpf[cont]);
end;
d1 := numCPF[1]*10 + numCPF[2]*9 + numCPF[3]*8 + numCPF[4]*7 + numCPF[5]*6 +
numCPF[6]*5 + numCPF[7]*4 + numCPF[8]*3 + numCPF[9]*2;
if (d1 mod 11)<2 then
d1 := 0
else
d1 := 11 - (d1 mod 11);
d2 := numCPF[1]*11 + numCPF[2]*10 + numCPF[3]*9 + numCPF[4]*8 + numCPF[5]*7 +
numCPF[6]*6 + numCPF[7]*5 + numCPF[8]*4 + numCPF[9]*3 + d1*2;
if (d2 mod 11)<2 then
d2 := 0
else
d2 := 11 - (d2 mod 11);
digitado := cpf[10] + cpf[11];
calculado := IntToStr(d1)+IntToStr(d2);
if (digitado = calculado) then
verificaCPF := True
else
verificaCPF := False
end;
5. No evento "OnClick" do botão, coloque o seguinte código:
if (verificaCPF(Edit1.Text) = True) then
begin
ShowMessage('CPF Válido!!!');
end
else
begin
ShowMessage('CPF Inválido!!!');
end;
6. Salve o projeto em uma pasta de sua escolha e compile a
aplicação, após compilar na janela que irá abrir, digite o número do CPF no Edit e clique no botão para validar o dígito.
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, em breve postarei uma nova dica para a validação de dígito verificador de CNPJ.
Atenciosamente
Dica Chave.
quarta-feira, 15 de maio de 2013
Formatando Data e Hora em Delphi Com a Função "FormatDateTime()"
Olá, Bom dia.
Vamos a mais uma dica.
Hoje vamos falar um pouco da função "FormatDateTime", função esta que está presente na Unit "SysUtils" do Delphi. Esta função retorna uma string com o formato passado no primeiro parâmetro(string) e tendo como base a data passada no segundo parâmetro(TDateTime).
Formato da função: FormatDateTime(formato, data).
Vamos a um exemplo prático:
- Abra um novo projeto no Delphi;
- No formulário principal, insira um "Memo" e um "Button"(Guia Standard);
- No evento "OnClick" do botão, coloque o seguinte código:
Memo1.Lines.Add(' ..:: Formatos Para Dia ::..');
Memo1.Lines.Add(' d: ' + FormatDateTime('d', Now));
Memo1.Lines.Add(' dd: ' + FormatDateTime('dd', Now));
Memo1.Lines.Add(' ddd: ' + FormatDateTime('ddd', Now));
Memo1.Lines.Add(' dddd: ' + FormatDateTime('dddd', Now));
Memo1.Lines.Add(' ddddd: ' + FormatDateTime('ddddd', Now));
Memo1.Lines.Add('dddddd: ' + FormatDateTime('dddddd', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos Para Mês ::..');
Memo1.Lines.Add(' m: ' + FormatDateTime('m', Now));
Memo1.Lines.Add(' mm: ' + FormatDateTime('mm', Now));
Memo1.Lines.Add(' mmm: ' + FormatDateTime('mmm', Now));
Memo1.Lines.Add(' mmmm: ' + FormatDateTime('mmmm', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos Para Ano ::..');
Memo1.Lines.Add(' y: ' + FormatDateTime('y', Now));
Memo1.Lines.Add(' yy: ' + FormatDateTime('yy', Now));
Memo1.Lines.Add(' yyyy: ' + FormatDateTime('yyyy', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formato Para Hora ::..');
Memo1.Lines.Add(' h: ' + FormatDateTime(' h', Now));
Memo1.Lines.Add(' hh: ' + FormatDateTime('hh', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos Para Minuto ::..');
Memo1.Lines.Add(' n: ' + FormatDateTime('n', Now));
Memo1.Lines.Add(' nn: ' + FormatDateTime('nn', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos Para Segundo ::..');
Memo1.Lines.Add(' s: ' + FormatDateTime('s', Now));
Memo1.Lines.Add(' ss: ' + FormatDateTime('ss', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos Para Milisegundos ::..');
Memo1.Lines.Add(' z: ' + FormatDateTime('z', Now));
Memo1.Lines.Add(' zzz: ' + FormatDateTime('zzz', Now));
Memo1.Lines.Add('');
Memo1.Lines.Add(' ..:: Formatos de Personalizados ::..');
Memo1.Lines.Add(' dd/mm/yyyy: ' + FormatDateTime('dd/mm/yyyy', Now));
Memo1.Lines.Add(' yyyy/mm/dd: ' + FormatDateTime('yyyy/mm/dd', Now));
Memo1.Lines.Add(' mm/dd/yyyy: ' + FormatDateTime('mm/dd/yyyy', Now));
Memo1.Lines.Add(' yyyy/dd/mm: ' + FormatDateTime('yyyy/dd/mm', Now));
Memo1.Lines.Add(' dd/mm: ' + FormatDateTime('dd/mm', Now));
Memo1.Lines.Add(' dd/mmm: ' + FormatDateTime('dd/mmm', Now));
Memo1.Lines.Add(' dd/mmmm: ' + FormatDateTime('dd/mmmm', Now));
Memo1.Lines.Add(' dd de mmmm de yyyy: ' + FormatDateTime('dd "de" mmmm "de" yyyy', Now));
Memo1.Lines.Add(' dddd, dd de mmmm de yyyy: ' + FormatDateTime('dddd"," dd "de" mmmm "de" yyyy', Now));
Memo1.Lines.Add('"Local", dd de mmmm de yyyy: ' + FormatDateTime('"Nome_Cidade," dd "de" mmmm "de" yyyy', Now));
4. Salve o projeto em uma pasta de sua escolha e compile a aplicação, após compilar na janela que irá abrir, clique no botão e veja o resultado gerado no campo "Memo".
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, podem comentar a vontade.
Atenciosamente
Dica Chave.
segunda-feira, 13 de maio de 2013
Trocar Vírgula Por Ponto em Delphi
Olá, Bom dia a Todos...
Como primeira dica, vamos postar algo simples, porém muito útil para desenvolvedores iniciantes com o Delphi.
function TForm1.TrocaVirgulaPPonto(Valor: string): String;
begin
Result := trim(StringReplace(Valor,',','.',[rfReplaceall]));
end;
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, podem comentar a vontade.
Atenciosamente
Dica Chave.
Como primeira dica, vamos postar algo simples, porém muito útil para desenvolvedores iniciantes com o Delphi.
function TForm1.TrocaVirgulaPPonto(Valor: string): String;
begin
Result := trim(StringReplace(Valor,',','.',[rfReplaceall]));
end;
OBS.: Para fins de compatibilidade, esta dica foi escrita usando Delphi XE3.
Esta foi a dica de hoje, podem comentar a vontade.
Atenciosamente
Dica Chave.
Assinar:
Postagens (Atom)