Bom, onde achei esse código, não tinha nada referente a hardlock.

Marcelo. 

-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de João Ricardo
Enviada em: quarta-feira, 28 de setembro de 2005 16:21
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Obtendo a porta da Impressora

eu  to com um hardlock na porta da impressora, sera que onde voce encontrou
esse programa nao tinha nada de como emular o hardlock ?

  ----- Original Message -----
  From: Marcelo A. Souza
  To: Delphi-br
  Sent: Wednesday, September 28, 2005 4:07 PM
  Subject: [delphi-br] Obtendo a porta da Impressora


  Pessoal, descolei essa funcão na Net que retorna a porta e outras
  informações da impressora selecionada em um PrintDialog. Mas o que me
  interessa mesmo é saber a porta da impressora e estou tendo um problema
  quando o nome da impressora é um pouco grande. Recebo um erro de Acess
  Violation exatamente ao executar a linha "FreeMem(pDevice,
cchDeviceName);".

  Reparei nesses casos que a vezes a variável pDevice que é onde contem a
  porta da Impressora, não trás o nome completo da impressora, mas mesmo
  quando vem completo o erro também acontece.

  Alguém poderia me ajudar?? Preciso muito que esta função funcione. Se
alguém
  tiver uma outra função que me retorne a porta da impressora selecionada eu
  agradeceria. Inclusive estou precisando saber como passar essa impressora
  para o quickreport sem ter que definir a impressora como padrão, ou seja
  passo a porta sem alterar a impressora padrão.

  Agradeço desde já qualquer ajuda!!!

  Uso delphi 5.

  Segue a função abaixo:


  procedure TfrmConfirmarImpressao.btnSelecionaImpressoraClick(
    Sender: TObject);

  var
     pDevice : pChar;
     pDriver : pChar;
     pPort   : pChar;
     hDMode  : THandle;

  begin

     if PrintDialog1.Execute then
     begin

        GetMem(pDevice, cchDeviceName);
        GetMem(pDriver, MAX_PATH);
        GetMem(pPort, MAX_PATH);
        Printer.GetPrinter(pDevice, pDriver, pPort, hDMode);

        if lStrLen(pDriver) = 0 then
        begin
           GetProfileString('Devices', pDevice, '', pDriver, MAX_PATH);
           pDriver[pos(',', pDriver) - 1] := #0;
        end;

        if lStrLen(pPort) = 0 then
        begin
           GetProfileString('Devices', pDevice, '', pPort, MAX_PATH);
           lStrCpy(pPort, @pPort[lStrLen(pPort)+2]);
        end;

        Self.label_impressora.Caption := StrPas(pDevice) ;

        FreeMem(pDevice, cchDeviceName);
        FreeMem(pDriver, MAX_PATH);
        FreeMem(pPort, MAX_PATH);

     end;

  end;



 
----------------------------------------------------------------------------
  -----------------------------
  Marcelo A. Souza
  Tel. (11) 9699-9938
 
----------------------------------------------------------------------------
  ----------------------------- 






  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
          


----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!. 




----------------------------------------------------------------------------
--


  No virus found in this incoming message.
  Checked by AVG Anti-Virus.
  Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 26/9/2005


[As partes desta mensagem que não continham texto foram removidas]



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos




 





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a