Essa função só funciona em Win9x e ME. O que ocorre é que as plataformas baseadas no NT (NT, 2000 e XP) possuem rígidas restrições quanto ao acesso de recursos de baixo nível, como portas de I/O e interrupções de software. Essa função, com certeza, está acarretando o erro de instrução privilegiada. Sendo assim, duas coisas:
1) Essa função, no final das contas, vai verificar a porta (ou endereço) de I/O da porta paralela, onde geralmente temos uma impressora. Se quiser fazer isso, vc precisa escrever (ou adquirir) um driver WDM que permita esse tipo de comunicação entre portas de I/O, e a partir da sua aplicação vc preisa se comunicar com esse driver. E alerto tb que com o Delphi vc ñ consegue construir um driver. Somente usando Visual C++ e o DDK (Driver Development Kit) respectivo pra plataforma NT que vc irá desenvolver sua aplicação; 2) Essa função só testa se a impressora local está online. Pesquise mais sobre a API do Windows para saber como verificar se uma impressora de rede está online! []s >From: "Junior Terenzi" <[EMAIL PROTECTED]> >Reply-To: delphi-br@yahoogrupos.com.br >To: delphi-br@yahoogrupos.com.br >Subject: [delphi-br] Erro Verificar Impressora On Line + winXP >Date: Fri, 15 Jul 2005 03:48:54 -0000 > >Pessoal, achei a seguinte função para verificar se a impressora esta >on line na porta informada, mas esta dando um erro no WinXP. Não >testei em outras versóes pois náo tenho aqui. > > >{-------------------------------------------------------------------------} >function TForm1.PrinterOnLine(Porta: TPorts): Boolean; >var > nResult: Byte; > PrnNum : Word; // 0 para porta LPT1, 1 para porta LPT2, etc. >begin > PrnNum := ord( Porta ); > > asm > mov ah, $02; > mov dx,PrnNum; >// ------ linha onde aparece o erro > Int $17; >// ------ linha onde aparece o erro > mov nResult,ah; > end; > > result := (nResult and $80) = $80; //decimal=128 Bin=10000000 ou > //seja, testando o 7º bit >end; > >Alguem tem alguma dica sobre isso??? > > > _________________________________________________________________ MSN Messenger: converse com os seus amigos online. http://messenger.msn.com.br -- <<<<< 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