Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 usb port  [new]
Mykola
Member

Откуда:
Сообщений: 615
PowerBuilder 10.2
Используя Function Long CreateFileA(ref string lpszName, long fdwAccess, long &
fdwShareMode, long lpsa, long fdwCreate, long fdwAttrsAndFlags, long &
hTemplateFile) Library "Kernel32.dll" ALIAS FOR "CreateFileA;Ansi"
получаю handle usb port.
не получается записать данные
FUNCTION UnsignedLong WriteFile( UnsignedLong hFile, &
REF String lpBuffer, &
UnsignedLong nNumberOfBytesToWrite, &
REF UnsignedLong lpNumberOfBytesWritten, &
long lNull ) LIBRARY "kernel32.dll" alias for "WriteFile;Ansi"

при записи в порт LPT1 проблем нету

к usb подключен принтер Zebra LP2844


Буду благодарен за помощь

Сообщение было отредактировано: 19 фев 09, 08:42
19 фев 09, 01:09    [6837069]     Ответить | Цитировать Сообщить модератору
 Re: usb port  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Может назначить его для LPT1? Для USB так и было.
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
19 фев 09, 09:43    [6837516]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: usb port - win7  [new]
Mykola
Member

Откуда:
Сообщений: 615
для usb + winxp работает следующий вариант:
Constant UNSIGNEDLONG GENERIC_READ=2^31
Constant UNSIGNEDLONG GENERIC_WRITE = 2^30
Constant UNSIGNEDLONG OPEN_EXISTING = 3
Constant UNSIGNEDLONG FILE_SHARE_WRITE = 2
Constant UNSIGNEDLONG INVALID_HANDLE_VALUE=2^31 + (2^31 - 1)
Constant UNSIGNEDLONG CREATE_ALWAYS = 2

il_HandleFile = CreateFileA(as_printername, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING, 128, 0)


......
работает успешно

при установке приложения на win7 (64) - этот вариант не работает
CreateFileA() возвращает всегда INVALID_HANDLE_VALUE.

Буду благодарен за помощь
14 апр 10, 16:47    [8630054]     Ответить | Цитировать Сообщить модератору
 Re: usb port - win7  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Mykola
Буду благодарен за помощь

MSDN
If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.
15 апр 10, 09:49    [8632440]     Ответить | Цитировать Сообщить модератору
 Re: usb port  [new]
Dmitry..
Guest
http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx

вписан такой коммент:

Opening LPT Ports

Do not treat LPT ports as communication devices and specify OPEN_EXISTING as the dwCreationDisposition parameter. Doing so will cause the function to fail when called on Vista or a 2008 server to open an LPT port that is mapped to a network share. GetLastError() returns ERROR_FILE_NOT_FOUND.

Instead you can use the following parameters which I determined by using PROCMON.EXE from SysInternals to monitor calls to CreateFile() triggered by redirecting the output from DIR to a mapped LPT port eg. dir >lpt3

CreateFile("LPT3", GENERIC_WRITE | FILE_READ_ATTRIBUTES, FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);

The above has been tested on XP SP3, Windows Vista SP1 and Windows 2008 Terminal Server.


Сообщение было отредактировано: 15 апр 10, 12:33
15 апр 10, 10:38    [8632727]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить