Postagens

Mostrando postagens de fevereiro, 2012

Delphi - Limpando a lixeira pela API do windows

Segue abaixo uma rotina para limpar a lixeira do Windows. procedure EmptyRecycleBin; const   SHERB_NOCONFIRMATION = $00000001;   SHERB_NOPROGRESSUI = $00000002;   SHERB_NOSOUND = $00000004; type   TSHEmptyRecycleBin = function(Wnd: HWND;                                 pszRootPath: PChar;                                 dwFlags: DWORD): HRESULT;  stdcall;    var     SHEmptyRecycleBin: TSHEmptyRecycleBin;     LibHandle: THandle;       begin          LibHandle := LoadLibrary(PChar('Shell32.dll'));       ...

Delphi - Verificando se o programa está sendo executado no VMWARE.

function IsInsideVMWare: Boolean; var   rc: Boolean; begin   rc := False;    try     asm     push   edx     push   ecx     push   ebx     mov    eax, 'VMXh'     mov    ebx, 0           mov    ecx, 10     mov    edx, 'VX'     in     eax, dx     cmp    ebx, 'VMXh'     setz   [rc]     pop    ebx     pop    ecx     pop    edx  end;   except     on EPrivilege do rc := False;   end;   Result := rc; end; begin   Write(' Dentro do VMWare:');       sInsideVMWare the...

Delphi - Descobrindo o último acesso de um arquivo

Function GetFileLastAccessTime(sFileName : string ) : TDateTime; var ffd : TWin32FindData;       dft : DWord;        lft : TFileTime;        h : THandle; begin   h := Windows.FindFirstFile(PChar(sFileName), ffd);     if(INVALID_HANDLE_VALUE <> h)then        begin         Windows.FindClose( h );         FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft );         FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo);        Result := FileDateToDateTime(dft);      end; end; Para Utilizá-la: procedure TForm1.BitBtn1Click(Sender: TObject); begin   caption:= datetostr(GetFileLastAccessTime('C:\Teste.txt')); end;

Delphi - Apagar arquivos temporários da internet

//Declare a unit WinInet uses WinInet; procedure DeleteIECache; var   lpEntryInfo: PInternetCacheEntryInfo;   hCacheDir: LongWord;   dwEntrySize: LongWord; begin   dwEntrySize := 0;   FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);   GetMem(lpEntryInfo, dwEntrySize);     if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;        hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);     if hCacheDir <> 0 then       begin         repeat           DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);           FreeMem(lpEntryInfo, dwEntrySize);          dwEntrySize := 0;          FindNextUr...

Delphi - Testando se o diretório está vazio

function DirectoryIsEmpty(Directory: string): Boolean; var SR: TSearchRec;           i: Integer; begin Result := False; FindFirst(IncludeTrailingPathDelimiter(Directory) + '*', faAnyFile, SR);   for i := 1 to 2 do      if (SR.Name = '.') or (SR.Name = '..') then          Result := FindNext(SR) <> 0;          FindClose(SR); end; Para utilizá-la adicione um botão no formulário com o seguinte código: procedure TForm1.BitBtn1Click(Sender: TObject); begin    if DirectoryIsEmpty('C:\test') then       Caption := 'Este diretório está vazio!'    else      Caption := 'Este diretório não está vazio!'; end;

Firebird - Como posso apagar um Generator?

DELETE FROM  RDB$GENERATORS WHERE RDB$GENERATOR_NAME = 'NOME_DO_SEU_GENERATOR'; Obs: O Firebird possui o comando DROP GENERATOR para remover um generator do banco de dados.

Delphi - Criando uma Procedure para transformar BMP em ÍCONE

procedure Tform1.bmp2ico(Image: TImage; FileName: TFilename); var   Bmp: TBitmap;   Icon: TIcon;   ImageList: TImageList; begin   Bmp  := TBitmap.Create;   Icon := TIcon.Create;   try     Bmp.Assign(Image.Picture);     ImageList := TImageList.CreateSize(Bmp.Width, Bmp.Height);     try       ImageList.AddMasked(Bmp, Bmp.TransparentColor);       ImageList.GetIcon(0, Icon);       // Save it to a file       Icon.SaveToFile(FileName);     finally       ImageList.Free;     end;   finally     Bmp.Free;     Icon.Free;   end; end; Para chamá-la utiliza um botão, segue abaixo o código. procedure TForm1.BitBtn1Click(Sender: TObject); begin    bmp2ico(Image1, ...

Windows Forms - Enviando Emails utilizando o Visual Studio

Imagem
Neste artigo montaremos um exemplo bem simples de envio de E-mails com a possibilidade de enviar anexos e utilizando autenticação. Construiremos este exemplo utilizando os denominados “Windows Forms” com o Visual Studio 2005 junto com a linguagem C#. Para isto abra o Visual Studio 2005 e em File/ New/ Project em Project Types deixe como “Visual C#” em “Templates” escolha “Windows Application” e na região inferior colocaremos um nome para nossa “solution” e escolheremos uma pasta para ser salvo, Veja Figura 01 para melhores detalhes. Figura 01. Iniciando o projeto.   Criando o formulário Iremos alterar as seguintes propriedades do Formulário. Name: FmEnvia StartPosition: CenterScreen Text: Windows Forms - Envio de E-mails     Em seguida colocaremos quatro componentes Textbox, quatro Labels, um Listbox e dois Buttons.  O formulário deverá ficar parecido com o da figura 02. É importante ressaltar que no Textbox da Mensagem a propriedad...

Firebird - Extraindo o Metadata

Imagem
Neste artigo irei dar uma dica muito importante em se tratando de Banco de Dados Firebird, como extrair o Metadata, ou seja, gerar o Script de uma base de dados. Utilizaremos a ferramenta de gerenciamento Ibexpert Completa Trial, válida por 45 dias, encontrada no seguinte endereço: www.ibexpert.com . Devido ao fato desta ferramenta possuir um processo de instalação rápido e fácil não iremos abordar isso no artigo, focaremos apenas na exportação do Banco de Dados. Para eventuais testes utilizaremos o Banco de Dados Employee, encontrado por padrão na pasta: C:\Arquivos de programas\Firebird\Firebird_1_5\examples\Employee.fdb Depois de registrado o Banco de Dados, deixe-o como ativo e na região superior iremos acessar o menu Tools/Extract Metadata. Aparecerá uma janela chamada “Extract Metadata”, veja Figura 01. Figura 01. Extraindo o Metadata. Em Meta Objects encontramos os objetos do Banco de Dados, como por exemplo os domínios, as tabelas, visões, entre outr...