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