2016-05-31 9 views
1

저는 C#의 바코드 스캐너 응용 프로그램에서 작업 중이며 Microsoft POS 1.14를 사용하여 스캐너와 통신하고 있습니다. 바코드 스캐닝은 잘 작동하지만 고객은 바코드 대신 "친숙한"텍스트를 표시하기 위해 디스플레이가있는 스캐너를 사용하려고합니다.Micosoft POS.NET을 사용하여 DataLogic Gryphon 바코드 스캐너의 디스플레이로 텍스트를 보내려면 어떻게합니까?

이 작업을 수행하는 방법에 대한 코드 예제를 찾지 못했지만 가능한 경우입니다. 아마도 "DirectIO"명령을 사용할 수는 있지만 불행히도 작동하지 않을 수 있습니다.

DataLogic의 Product Reference Guide에서 스캐너로 보낼 수있는 "이스케이프 시퀀스"를 찾을 수 있습니다. 아마도 이것이 해결책 일 수 있습니다.

내 질문은 ... 거기에 내 문제에 대한 해결책을 가질 수있는 POS 전문가가 있습니까? 스캐너 (또는 자기 카드 판독기)을 기반으로 비슷한 일을 한 후

안부

답변

0

는 기본적으로 키보드되고 나는 나는했습니다 ... 듣고 그들이 특정 패턴에 있었다으로 그 키 누름을 처리 할 수

키를 눌러 패턴 ...

;123123? 

내가 TEH 기본 폼 수준에서 키 누름을 통지하려면 다음 코드를 썼다 ...... 어 다음 해달라고 연 다음/적절한 양식 필드를 초점 ";"에. 그런 다음 다른 모든 키를 "?" 그것을 "엔터"라고 생각하십시오.

private void EPOSForm_KeyDown(object sender, KeyEventArgs e) { 
    //this captures ";" and gives focus to the member ref for input also escape key 
    if (e.KeyValue == 186 || e.KeyValue == 27) { 
    textBox.Focus(); 
    } 
} 

private void textBox_KeyDown(object sender, KeyEventArgs e) { 
    //this captures ";" and ignores it 
    if (e.KeyValue == 186 || e.KeyValue == 191 || e.KeyValue == 27) 
    return; 
} 

private void textBox_TextChanged(object sender, EventArgs e) { 
    if (textBox.Text.IndexOf(";") != -1) { 
     //prevents typing of the last char 
    textBox.Text = textBox.Text.Replace(";", ""); 
    textBox.Focus(); 
    textBox.SelectionStart = textBox.Text.Length; 
    } 

    if (textBox.Text.IndexOf("?") != -1) { 
     //prevents typing of the last char, but assumes it mean "enter" 
    textBox.Text = textBox.Text.Replace("?", ""); 
    textBox.Focus(); 
    textBox.SelectionStart = textBox.Text.Length; 
    //click button 
    } 
} 
+0

안녕하세요 배리와 당신의 답변에 감사드립니다. 어쩌면 제 질문이 조금 애매했기 때문에 화면이 아닌 스캐너 디스플레이에 텍스트를 표시하지 않을 수도있었습니다. 이스케이프 시퀀스를 스캐너로 보내는 것은 가능하지만 작동시킬 수는 없습니다. Microsoft Point of Service 1.14를 사용하여 어떻게 수행 할 수 있는지 실마리가있는 누군가? – stgus