Я использую устройство под названием 3m cr100m, которое можно использовать для ввода данных из паспорта и так далее. Я запускаю приведенный ниже скрипт, но хотел бы сделать паузу после определенного обработчика данных, пока не нажму определенную клавишу, например ctrl W или что-то подобное.

Приложение, для которого я его использую, основано на 2 страницах.

Первая страница содержит имя, пол и дату рождения и некоторые данные, которые необходимо ввести вручную, затем нажмите «Далее», вторая страница имеет номер паспорта, дату выпуска и дату истечения срока действия.

Ниже приведен мой код для 3m cr100m с использованием программы под названием «клавиатурный клин», которая загружает указанный ниже сценарий. Этот сценарий находится в файле XML и предназначен для небольшой обработки данных только из того, что я могу понять.

Если любая помощь SDK для этого устройства доступна на http://www.3m.com/ssdcp/3M Swipe Readers/SDK/3M Swipe Reader SDK 1.2.1.2 Setup.exe

{amp}lt;?xml version="1.0"?{amp}gt; {amp}lt;OutputWedge{amp}gt; {amp}lt;InputModule name="Swipe"{amp}gt; {amp}lt;Parameters{amp}gt; {amp}lt;Parameter name="LogLevel" value="1" /{amp}gt; {amp}lt;Parameter name="LogFileName" value="SwipeOutputWedge.log" /{amp}gt; {amp}lt;Parameter name="DateOfBirthFormat" value="%d-%m-%y"/{amp}gt; {amp}lt;Parameter name="ExpiryDateFormat" value="%d/%m/%y"/{amp}gt; {amp}lt;/Parameters{amp}gt; {amp}lt;/InputModule{amp}gt; {amp}lt;OutputModules{amp}gt; {amp}lt;OutputModule name="Keyboard" alias="keyb"{amp}gt; {amp}lt;Parameters{amp}gt; {amp}lt;Parameter name="DelayBetweenKeys" value="10" /{amp}gt; {amp}lt;/Parameters{amp}gt; {amp}lt;/OutputModule{amp}gt; {amp}lt;/OutputModules{amp}gt; {amp}lt;DataMerging{amp}gt; {amp}lt;DestDataItem name="General_DocumentNumber"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_DOC_NUMBER" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_DOC_NUMBER" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_LICENCENUMBER" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_FullName"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_FULLNAME" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_GivenNames"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_FORENAMES" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_FORENAMES" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_GIVENNAMES" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Surname"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_SURNAME" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_SURNAME" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_SURNAME" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Forename"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_FORENAME" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_FORENAME" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_FORENAME" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Forenames"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_FORENAMES" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_FORENAMES" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_MiddleName"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_MIDDLENAME" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_NameSuffix,"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_NAMESUFFIX" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_GivenNames,"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_GIVENNAMES" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_SecondName,"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_SECOND_NAME" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_SECOND_NAME" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Gender"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_SEX" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_SEX" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_SEX" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_GenderLetter"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_SHORT_SEX" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_SHORT_SEX" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_SHORTSEX" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_AddressStreet"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ADDRESS_STREET" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_AddressCity"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ADDRESS_CITY" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_AddressState"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ADDRESS_STATE" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_AddressPostalCode"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ADDRESS_POSTALCODE" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_AddressCountry"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_ISSUING_STATE" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ADDRESS_COUNTRY" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_IssuingState"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_ISSUING_STATE" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_ISSUING_STATE" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Nationality"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_NATIONALITY" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_NATIONALITY" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_OptionalData1"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_OPTIONAL_DATA_1" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_OPTIONAL_DATA_1" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_OptionalData2"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_OPTIONAL_DATA_2" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_OPTIONAL_DATA_2" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_DateOfBirth"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_DATE_OF_BIRTH_STR" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_DATE_OF_BIRTH_STR" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_DATEOFBIRTH" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_IssueDate"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ISSUEDATE" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_ExpiryDate,"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_EXPIRY_DATE_STR," priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_EXPIRY_DATE_STR," priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_EXPIRYDATE" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_DateOfBirthFormatted"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_DATE_OF_BIRTH_STR_FORMATTED" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_DATE_OF_BIRTH_STR_FORMATTED" priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_DATEOFBIRTH_FORMATTED" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_IssueDateFormatted"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_ISSUEDATE_FORMATTED" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_ExpiryDateFormatted"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_EXPIRY_DATE_STR_FORMATTED," priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_EXPIRY_DATE_STR_FORMATTED," priority="2" /{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_EXPIRYDATE_FORMATTED" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_CodelineData"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_DATA" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_DATA" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Codeline1"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_LINE_1" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_LINE_1" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Codeline2"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_LINE_2" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_LINE_2" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Codeline3"{amp}gt; {amp}lt;SrcDataItem name="CODELINE_LINE_3" priority="1" /{amp}gt; {amp}lt;SrcDataItem name="SCDG1_CODELINE_LINE_3" priority="2" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Height"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_HEIGHT" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Weight"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_WEIGHT" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Hair_Color"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_HAIR_COLOR" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;DestDataItem name="General_Eye_Color"{amp}gt; {amp}lt;SrcDataItem name="AAMVA_PARSED_EYE_COLOR" priority="1" /{amp}gt; {amp}lt;/DestDataItem{amp}gt; {amp}lt;/DataMerging{amp}gt; {amp}lt;Script name="FIRST PAGE" startup="True"{amp}gt; {amp}lt;!-- OCR Codeline Data --{amp}gt; {amp}lt;DataHandler name="CODELINE_FORENAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SECOND_NAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SURNAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SEX" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_TAB" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_DATE_OF_BIRTH_STR" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;/Script{amp}gt; {amp}lt;Script name="SECOND PAGE"{amp}gt; {amp}lt;!-- OCR Codeline Data --{amp}gt; {amp}lt;DataHandler name="CODELINE_FORENAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SECOND_NAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SURNAME" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_SEX" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_TAB" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;DataHandler name="CODELINE_DATE_OF_BIRTH_STR" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt; {amp}lt;/Script{amp}gt; {amp}lt;/OutputWedge{amp}gt; 

Как я могу приостановить или заморозить ввод данных. Допустим, после кода ниже .. {amp}lt;DataHandler name="CODELINE_SEX" storeAs="$data"{amp}gt; {amp}lt;Task name="keyb:TypeString" source="$data" /{amp}gt; {amp}lt;Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" /{amp}gt; {amp}lt;/DataHandler{amp}gt;