Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Помогите найти ошибку. DECLARE INTEGER OpenPrinter IN winspool.drv; STRING pPrinterName,; INTEGER @ phPrinter,; STRING pDefault DECLARE INTEGER GetPrinter IN winspool.drv AS GetPrinterA; INTEGER hPrinter, INTEGER Lvl, STRING @pPrinter,; INTEGER cbBuf, INTEGER @pcbNeeded *Определяем имя принтера по умолчанию это -cPrinter IF OpenPrinter(cPrinter, @hPrinter, lcPrnDefaults) = 0 ? "Error opening printer [" + cPrinter + "]" RETURN ENDIF *Этот участок кода выполняется нормально а вот дальше lnBufsize = 4096 && provide buffer of sufficient size lcPrnInfo = Repli(Chr(0), lnBufsize) lnResult = GetPrinterA(hPrinter,2, @lcPrnInfo, lnBufsize, @lnBufsize) И вот тут возникает ошибка lnResult=0 Где не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 12:47 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
The OpenPrinter function retrieves a handle to the specified printer or print server or other types of handles in the print subsystem. так что как минимум нужно испольвать ее результат при вызове функции getprinter и setprinter (она должна возвратить hPrinter) хотя может я и не прав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 13:29 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
т е hPrinter=OpenPrinter(cPrinter, @hPrinter, lcPrnDefaults) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 13:30 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Ну вообще-то OpenPrinter это BOOL функция Код: plaintext Код: plaintext 1. Так что тут все правильно, единственно, что не надо забывать закрывать хэндл принтера по ClosePrinter(hPrinter) И еще, если принтер сетевой под win2k, то иногда он не возвращает имя а только путь, поэтому имя принтера должно быть ТАК КАК НАПИСАНО в папке принтеры и никаких тут "\\SERVER\PRINTER" - это не пройдет, так де если в имени принтера есть русские буквы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 13:54 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Спасибо все получилось. Но теперь такой вопрос как мне получить значение статуса принтера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:15 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
BOOL GetPrinter( HANDLE hPrinter, // handle to printer DWORD Level, // information level LPBYTE *pPrinter, // printer information buffer DWORD cbBuf, // size of buffer LPDWORD pcbNeeded // bytes received or required ); Parameters hPrinter [in] Handle to the printer for which the function retrieves information. Use the OpenPrinter or AddPrinter function to retrieve a printer handle. Level [in] Specifies the level or type of structure that the function stores into the buffer pointed to by pPrinter. Windows 95/98/Me: This value can be 1, 2, or 5. Windows NT/2000/XP: This value can be 1, 2, 3, 4, 5, 6, 7, 8 or 9. pPrinter [out] Pointer to a buffer that receives a structure containing information about the specified printer. The buffer must be large enough to receive the structure and any strings or other data to which the structure members point. If the buffer is too small, the pcbNeeded parameter returns the required buffer size. The type of structure is determined by the value of Level. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:17 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
2filatova helen Если выдается имя принтера типа "\\SERVER\PRINER" то попробуй cPrinter=STRCONV("\\SERVER\PRTINTER",5)+CHR(0) Функции OpenPrinter и GetPrinter переведи в UNICODE т.е. OpenPrinterW и GetPrinterW соответсвенно. И еще через GetLastError проверь выдаваемыю ошибку, если ошибка 122 то по возврату переменной lnBufsize увелич размер буфера и вообще сначала вызови функцию с нулевым размером буфера, а потом когда узнаешь его размер - тогда подкорректируешь и попробуешь снова. Я сама сначала налетела на эти грабли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:18 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
2filatova helen Статус принтере лучше полчать с окончания стуркутры SubStr(lcPrnInfo,Len(lcPrnInfo)-6,2) и перести ее в число, заменить можно через STUFF и отправить полученную структуру в SetPrinter. Есло конечно размер структуры равен значению переменной возврашаемой размер из GetPrinter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:27 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Может я не совсем корректно поставила вопрос . Я получила ссылку на структуру PRINTER_INFO_2 . Теперь мне надо из этой структуры вытащить только лишь статус принтера. Как это правильно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:28 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
А что непонятно описала ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 14:32 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
2elena а у вас почтовый ящик есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 15:10 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
да есть. helen@spez.com.ua ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 16:03 |
|
||
|
GetPrinter выдает ошибку
|
|||
|---|---|---|---|
|
#18+
просто я не обещаю но если получеться чего я пришлю сами понимаете проблема не очень легкая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2004, 16:32 |
|
||
|
|

start [/forum/search_topic.php?author=vnedrenec&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 673ms |
| total: | 807ms |

| 0 / 0 |
