sábado, 22 de março de 2008

Dica Rápida - Access Point com WPA

Fala pessoal tudo bem ?

Ontem quebrando a cabeça um pouco com o access point aqui no escritório para resolver o problema "A STA is rejected by 802.1x daemon" descobri que este erro ocorre, pelo menos no meu caso pelo fato da senha (passfrase) de autenticação estar errada. Corrigi a senha e tcharam funcionando perfeitamente !

Encontrei em alguns sites com dicas falando mude o ssid de sua rede, blah blah blah ... e etc. Mas não me dou por vencido fácil então fui analisando tudo que poderia estar causando este erro que acabava não permitindo ao PC navegar nem entrar na rede, sendo que outros PCs wireless sempre navegaram normalmente.

Bom é isso espero que esta dica seja util ;)

Grande abraço,
Diego M. Garcia.

quarta-feira, 19 de março de 2008

Quer conhecer as grandes empresas ?

Fala pessoal tudo bem ?

Ontem estava procurando alguns quadros novos para mudar a decoração do meu escritorio e sem querer encontrei um site bem legal com fotos de varias empresas de tecnologia. Se você quer saber como é a estrutura do google por exemplo, com certeza lá você irá encontrar.

O endereço do site é http://www.officesnapshots.com

Vale a pena visitar ;)

Grande abraço,
Diego M. Garcia.

Baixando um arquivo com componente idHttp

Fala pessoal tudo bem ?

Bom como nossa amiga Marina pediu para que eu explicasse como fazer um sistema que baixe um arquivo utilizando o protocolo HTTP este será nosso assunto de hoje.

Bom vamos lá.

1- Crie um novo projeto no Delphi indo em File -> New VCL Forms Application.

2- Monte o visual do seu sistema com os seguintes componentes, um label com nome lblNomeArquivo com a propriedade Caption ‘Nome do Arquivo’, um Edit com nome edtNomeArquivo com a propriedade Readonly setada para true e Color para clBtnFace, um label com nome lblEnderecoArquivo com a propriedade Caption ‘Endereço do Arquivo’, um Edit com nome edtEnderecoArquivo, um buton com nome btBaixarArquivo com Caption ‘Baixar Arquivo’, um progressbar com nome pgrsArquivo propriedade smoth true.

3- Mude o nome do seu form para frmPrincipal propriedades BorderStyle para bsSingle, BorderIcons para [biSystemMenu,biMinimize] e Position para poDesktopCenter.

4- Agora coloque um componente idHttp com nome idHttp e um SaveDialog com nome svdArquivo.

Seu form deve ficar mais ou menos parecido com isto:

clip_image001

Ok com o visual montado vamos a parte divertida da coisa:

1- No evento OnChange do componente Edit com nome edtEnderecoArquivo coloque o seguinte código:

var
I: integer;
begin
  I := LastDelimiter('/',edtEnderecoArquivo.Text);
  edtNomeArquivo.Text := Copy(edtEnderecoArquivo.Text, I + 1, MaxInt);
end;

Explicando o código: A função LastDelimiter retorna a posição do ultimo delimitador de uma string , onde o delimitador deve ser informado em seu primeiro parâmetro, no nosso caso o delimitador é a ‘/’. Após armazenar a posição apenas copiamos para o edtNomeArquivo o texto iniciando da posição do ultimo delimitador.

2- O evento OnClick do botão btBaixarArquivo deve ficar como abaixo:

procedure TfrmPrincipal.btBaixarArquivoClick(Sender: TObject);
var
msArquivo: TMemoryStream;
begin
//Criamos a variavel msArquivo do tipo de um TMemoryStream para
//armazenarmos o arquivo enquanto esta sendo baixado.
msArquivo := TMemoryStream.Create;
try
  try
    //Fazemos o download do arquivo através do método Get do idHttp onde
    //passamos o endereço do arquivo no primeiro parâmetro e a variável do tipo
    //MemoyStream no segundo parâmetro.
    idHttp.Get(edtEnderecoArquivo.Text,msArquivo);
    //Mudamos agora a extensao do arquivo padrao do save dialog para a mesma do arquivo que foi baixado. 
    svdArquivo.DefaultExt := '*' + ExtractFileExt(edtNomeArquivo.Text)+'|' + ExtractFileExt(edtNomeArquivo.Text);
    //Mudamos o filtro tambem para o mesmo da extensao padrao
    svdArquivo.Filter := '*' + ExtractFileExt(edtNomeArquivo.Text)+'|' + ExtractFileExt(edtNomeArquivo.Text);
    //Setamos o nome do arquivo para o mesmo que foi baixado.
    svdArquivo.FileName := edtNomeArquivo.Text;
    //Mostramos o Save Dialog e Salvamos o arquivo.
    if svdArquivo.Execute then
      begin
       msArquivo.SaveToFile(svdArquivo.FileName);
       //Informamos que o arquivo foi salvo com sucesso
       Application.MessageBox('Arquivo salvo com sucesso !','Sucesso!',MB_OK+MB_ICONINFORMATION);
      end;
  except
   //Se ocorreu um erro então tratamos ele
   on E: EIdHttpProtocolException do
     begin
      
//Se não achou o arquivo entao mostra a mensagem.
       if E.ErrorCode = 404 then
        
Application.MessageBox('O arquivo solicitado não foi encontrado no servidor !',
                                                 'Erro arquivo não existe !',
                                                 MB_OK+ MB_ICONERROR);
     end;
  end;
finally
 
//Liberamos a variavel da memoria.
  FreeAndNil(msArquivo);
end;
end;

3- Agora no evento OnWorkBegin do idHttp coloque o seguinte código:

if AWorkCountMax > 0 then
  
pgrsArquivo.Max := AWorkCountMax;

4- E no evento OnWork coloque:

pgrsArquivo.Position := AWorkCount;

Bom acho que com isso já é possivel que vocês entendam como baixar um ou mais arquivos com o idHttp, caso tenham duvidas por favor coloque um comentario aqui que com certeza responderei ;)

Outra coisa o codigo fonte deste exemplo e o seu exe estão disponíveis no endereço http://www.unitone.com.br/arquivos/demoHttp.zip

Grande abraço a todos,
Diego M. Garcia