LEITOR DE CÓDIGO BARRAS
Pessoal preciso de criar uma solução para ler o código de barras, só que ele tem que ficar em um lup sempre lendo o leitor sem que a tela do sistema esteja aberta para visualização e o txtbox esteja com foco nele para receber o que foi lido no código de barras.
Ou seja Ler o código de barras em BackGorund com C#, a pessoa pode estar trabalhando normal no pc, ou navegando na internet que ao leitor de mão esses simples ler um código de barras, o sistema receberá a string e executará alguma função.
Alguém poderia dar uma ideia de como ficaria esse código ou se é possÃvel fazer isso.
Ou seja Ler o código de barras em BackGorund com C#, a pessoa pode estar trabalhando normal no pc, ou navegando na internet que ao leitor de mão esses simples ler um código de barras, o sistema receberá a string e executará alguma função.
Alguém poderia dar uma ideia de como ficaria esse código ou se é possÃvel fazer isso.
Utilize Thread para isso: http://www.macoratti.net/10/09/c_thd1.htm
Citação::
Utilize Thread para isso: http://www.macoratti.net/10/09/c_thd1.htm
ok mais e a leitura do código de barras com leitor usb. para implementar no exemplo que você me passou, você conhece alguma forma de ler o código de barras com leitor que pode ser colocá-lo dentro da Thread ?
é só você criar um método que encapsule o que você tem e torna-lo responsável por essa leitura, depois crie uma thread que chame esse método em loop. Basicamente é isso!
Citação::
é só você criar um método que encapsule o que você tem e torna-lo responsável por essa leitura, depois crie uma thread que chame esse método em loop. Basicamente é isso!
vixx JABA, agradeço a ajuda mais meu conhecimento não está ainda nesse nÃvel para entender e executar essa operação.
Estou tentando usar esse código abaixo com a thread modelo do macorati mas é para porta com será que funcionaria para USB?
private void serialPort_DataRecieved(object sender, SerialDataReceivedEventArgs e)
{
byte[] btData = new byte[serialPort1.BytesToRead];
serialPort1.Read(btData, 0, btData.Length);
string dataRecieved = string.Empty;
dataRecieved = Encoding.UTF8.GetString(btData);
MessageBox.Show([Ô]licodigo: [Ô] + dataRecieved);
}
Isso aà é o evento disparado pelo objeto principal e ele (o evento) não precisa estar dentro da thread que você criou. Eventos são apenas aquilo que algum objeto disparou. O objeto responsável pelos eventos é que tem que ser controlado dentro da thread.
http://www.macoratti.net/12/06/c_event1.htm
http://www.macoratti.net/12/06/c_event1.htm
Citação::
Isso aà é o evento disparado pelo objeto principal e ele (o evento) não precisa estar dentro da thread que você criou. Eventos são apenas aquilo que algum objeto disparou. O objeto responsável pelos eventos é que tem que ser controlado dentro da thread.
http://www.macoratti.net/12/06/c_event1.htm
JABA
Desculpe minha ignorância no assunto mais não consegui associar o evento a como coletar os dados o que o leitor vai passar pela USB.
entendi a ligação de se criar um evento que irá aguardar a leitura porem não como ler e recepcionar essa string do Leitor USB.
Onde que o evento serialPort_DataRecieved é disparado? Como que você está lidando com isso?
Citação::
Onde que o evento serialPort_DataRecieved é disparado? Como que você está lidando com isso?
como teste eu executo ele manualmente em um while dentro de Programa ou seja estou com um projeto simples só com um form tentando coletar o que o leitor lê.
Então não tenho a função nem telas definidas, até por que não funcionou ainda.
Se você colocar o form sempre no topo e invisivel, será que não vai não?
http://www.devmedia.com.br/forum/form-sempre-a-frente-das-outras/253150
http://www.devmedia.com.br/forum/form-sempre-a-frente-das-outras/253150
Olha não querendo jogar um balde de água fria, mas... pela minha experiencia com com automação comercial e leitores de códigos de barras, você só vai conseguir fazer isso se o leitor for serial, pois um leitor conectado na USB o computador interpreta ele como se fosse um teclado normal, jogando os caracteres lidos no buffer do teclado, como se estivesse digitando diretamente os mesmos.
Já um leitor na serial, devidamente instalado na porta COM1, COM2, etc, ai sim você consegue abrir a porta e capturar a leitura sem ter esses caracteres jogado no buffer do teclado, e partir dai fazer o que quiser com eles.
Digo isso baseado na maioria dos leitores USB que já configurei em meu sistema, agora se o leitor tiver um driver com que permita realizar tal encapsulamento ai é outra coisa.
Já um leitor na serial, devidamente instalado na porta COM1, COM2, etc, ai sim você consegue abrir a porta e capturar a leitura sem ter esses caracteres jogado no buffer do teclado, e partir dai fazer o que quiser com eles.
Digo isso baseado na maioria dos leitores USB que já configurei em meu sistema, agora se o leitor tiver um driver com que permita realizar tal encapsulamento ai é outra coisa.
Tópico encerrado , respostas não são mais permitidas