Active News - Nº 42  - www.activedelphi.com.br 

             Terça-feira, 28 de maio de 2002

 

          Notícia da Edição : Falha expõe sistemas Windows NT e 2000

 

          Uma falha de segurança no utilitário de depuração (debugging) de programas permite que hackers assumam o controle do servidor em sistemas Windows NT 4.0 e Windows 2000. 


          A falha (identificada como Authentication Flaw in Windows Debugger) está associada a uma característica que dá à ferramenta de depuração a capacidade de conectar-se a uma aplicação ativa e ganhar o controle dela, para realizar análises e diagnósticos. A ferramenta tem condições de enviar comandos à aplicação, interrompê-la e até iniciar outros programas. 


          Localizada no sistema de autenticação do depurador, a brecha abre espaço para que um programa não-autorizado ganhe acesso ao utilitário e daí execute outro programa, conquistando o controle da máquina. A correção para o problema está disponível no endereço www.uol.com.br/info/aberto/download/2551.shl 

fonte : Info

 

       Não deixe de enviar sua dica de Programação Delphi para nós a publicarmos no ActiveNews, a equipe do ActiveDelphi e todos os assinantes ficarão agradecidos com a sua contribuição.
 
          1- Tratando campos boleanos em um TDbGrid. Enviada por André Bazan arbazan@terra.com.br

 

     Para tratar um campo boleano em um TDbGrid, trocando true/false por sim/não, basta informar no campo da tabela, pelo componente table, a propriedade DisplayValue ( Sim;Nao ).

 

     Seja um colaborador do ActiveDelphi. Saiba como...

-

          2- Extraindo datas no Interbase.

 

  Como extrair o ano, o mês e o dia de um campo do tipo Data no Interbase.

 

  SELECT EXTRACT (YEAR FROM HIRE_DATE) AS ANO.

              EXTRACT (MONTH FROM HIRE_DATE) AS MES.

              EXTRACT (DAY FROM HIRE_DATE) AS DIA.

  FROM EMPLOYEE

 

          Suporte em Delphi. cadastre-se já 

          Este serviço tem por finalidade oferecer aos associados um suporte técnico na linguagem de programação Delphi, nas versões Standard, Professional e Client/Server.   

          Atualmente, contamos com uma equipe de profissionais qualificados e prontos pra lhe atender e ajudá-lo da melhor forma possível.  

          Nosso atendimento é feito através de e-mail e formulário web, de segunda à sexta das 08:00h às 18:00h.

-
          3-  Retornando o Path em formato de nome curto (8 Caracteres).

 

  Adicione a Unit filectrl na cláusula uses de sua unit.


  function LongToShortPath(Long: string): string;
  var
    ActualLength: Longint;
  begin
    if directoryexists(Long) then
    begin
      SetLength(Result, Length(Long) + 1);
      ActualLength := GetShortPathName(PChar(Long), PChar(Result), Length(Result));
      SetLength(Result, ActualLength);
    end
    else
    begin
      result := 'Caminho inválido ou não encontrado';
    end;
  end;

          Várias Apostilaswww.activedelphi.com.br/apostilas.htm
          4- Retornando o número de dias úteis entre duas datas, descartando os sábados e domingos.

 

  function DiasUteis (dtinicial, dtfinal : Tdate) : Integer;

  var

    contador : Integer;

    data : TDate;

  begin

    contador := 0 ;

    data:= dtinicial;

    while data <= dtfinal do

    begin

      if not (Dayoftheweek (data) in [6..7]) then

        inc (contador);

      data := data + 1 ;  

    end;

    result := data + 1 ;

  end;

 

            Visite nosso Fórum de discussões sobre Delphi, é gratuito e não precisa se cadastrar. Clique Aqui
-
          5- Retornando a versão da tabela selecionada.


  Adicione as Units Db,DbiTypes e  DbiProcs, na cláusula uses de sua Unit.

  

  function DbGetVersao(table: TTable): LongInt;
  var
    hCursor : hDBICur;
    tableDesc: TBLFullDesc;
    cName : array[0..255] of Char;
  begin
    StrPCopy(cName, table.TableName);
    Check(DbiOpenTableList(table.DBHandle, True, False, cName, hCursor));
    Check(DbiGetNextRecord(hCursor, dbiNOLOCK, @tableDesc, nil));
    Result := tableDesc.tblExt.iRestrVersion;
    Check(DbiCloseCursor(hCursor));
  end;

 

          Não deixe de enviar sua dica de Programação Delphi para nós a publicarmos no ActiveNews, a equipe do ActiveDelphi e   todos os assinantes ficarão agradecidos com a sua contribuição.  

-
          6- Excluindo um diretório inteiro de uma vez.

     
  Declare as units Shellapi e filectrl na cláusula uses de sua Unit

  function DeleteFolder(FolderName: String; LeaveFolder: Boolean): Boolean;
  var
    r: TshFileOpStruct;
  begin
    Result := False;
    if not DirectoryExists(FolderName) then Exit;
    if LeaveFolder then
      FolderName := FolderName + ' *.* '
    else
      if FolderName[Length(FolderName)] = ' \ ' then
    Delete(FolderName,Length(FolderName), 1);
    FillChar(r, SizeOf(r), 0);
    r.wFunc := FO_DELETE;
    r.pFrom := PChar(FolderName);
    r.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
    Result := ((ShFileOperation(r) = 0) and (not r.fAnyOperationsAborted));
  end;

  Utilize assim:

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    deleteFolder('c:\temp',false);
  end;

 

          Suporte em Delphi. cadastre-se já 

          Este serviço tem por finalidade oferecer aos associados um suporte técnico na linguagem de programação Delphi, nas versões 1, 2, 3, 4 e 5 Standard, Professional e Client/Server.   

          Atualmente, contamos com uma equipe de profissionais qualificados e prontos pra lhe atender e ajudá-lo da melhor forma possível.  

          Nosso atendimento é feito através de e-mail e formulário web, de segunda à sexta das 08:00h às 18:00h.

-
          7- Cancelando a exibição do Form.

 

  Usando a mensagem WM_CLOSE, podemos, antes do formulário ser exibido, cancelar sua exibição.


  procedure TForm1.Form1OnShow (Sender : TObject);
  begin
    // aqui você poderá fazer algum tipo de validação antes de fazer o cancelamento...
    PostMessage (Handle, wm_Close, 0, 0);
  end; 

 

-

          Pensamento:
          Aceite-se tal como você é, incondicionalmente.
          Você não é do tamanho da sua conta bancária, do bairro onde mora, da roupa que usa ou do tipo de trabalho que faz. Você é, como todo mundo, uma mistura extremamente complexa de capacidades e limitações.

 

-

          Repasse este News para seus amigos(as)...

 

          Até a próxima semana !

 

          EQUIPE  ACTIVEDELPHI

          www.activedelphi.com.br

          info@activedelphi.com.br

 

 Este é um serviço gratuito oferecido pelo site www.activedelphi.com.br

 Para cancelar sua assinatura, basta responder esse e-mail, colocando no campo assunto "Cancelar".