powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / winspool.drv Add/Delete Monitor/Port/Printer
2 сообщений из 2, страница 1 из 1
winspool.drv Add/Delete Monitor/Port/Printer
    #35809562
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь имел дело с энтим?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" _
    (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long
Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" _
(ByVal pName As String, ByVal Level As Long, pMonitors As Byte) As Long
Private Declare Function AddPort Lib "winspool.drv" _
   Alias "AddPortA" _
  (ByVal pName As String, _
   ByVal hwnd As Long, _
   ByVal pMonitorName As String) As Long

Private Declare Function DeletePort Lib "winspool.drv" _
   Alias "DeletePortA" _
  (ByVal pName As String, _
   ByVal hwnd As Long, _
   ByVal pPortName As String) As Long
 
Private Declare Function AddPortEx Lib "winspool.drv" _
   Alias "AddPortExA" _
  (ByVal pName As String, _
   ByVal pLevel As Long, _
   lpBuffer As Any, _
   ByVal pMonitorName As String) As Long

Надо программно установить/удалить некий виртуальный принтер.
Это дело сначала устанавливает монитор принтера, потом порт на этот монитор, потом сам принтер.
Как установить/удалить сам принтер на готовый порт, проблем особо не вижу, пример для add/delete port я нашел, непонятно чего делать с add/Delete monitor , обыскался , нужен пример.
...
Рейтинг: 0 / 0
winspool.drv Add/Delete Monitor/Port/Printer
    #35809572
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажись, ОНО , по крайней мере с монитором разобрался, усе в лучшем виде:
http://files.codes-sources.com/fichier.aspx?id=21918&f=PDFCreator%5CPDFCreator%5CmodPrinter.bas

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Private Type MONITOR_INFO_2
 pName As String
 pEnvironment As String
 pDLLName As String
End Type
Public Enum eInstall
 Install =  0 
 unInstall =  1 
End Enum
Public Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" _
    (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long
Public Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" _
(ByVal pName As String, ByVal Level As Long, pMonitors As Any) As Long
'-------------
Public Function PrinterMonitor(InstallTyp As eInstall) As Long
    Dim res As Long, Monitor2 As MONITOR_INFO_2, tStr As String
    Select Case InstallTyp
        Case  0 : ' Install
            With Monitor2
                .pName = "MyNew Monitor" & Chr$( 0 )
                .pEnvironment = "" & Chr$( 0 )
                .pDLLName = "MyNewMonitor.dll" & Chr$( 0 )
            End With
            res = AddMonitor(vbNullString,  2 , Monitor2)
            PrinterMonitor = res
            Exit Function
        Case  1 : ' UnInstall
            res = DeleteMonitor(vbNullString, vbNullString, "MyNew Monitor" & vbNullString)
            PrinterMonitor = res
            Exit Function
        End Select
End Function
'-----------------------
Private Sub Command1_Click()
    MsgBox PrinterMonitor(unInstall)
End Sub
Private Sub Command2_Click()
    MsgBox PrinterMonitor(Install)
End Sub

Порт оно кстати в моем случае само устанавливает вместе с монитором,
ну а драйвер принтера/принтер м.б. тоже разумно устанавливать/удалять через эти API (winspool), другой вариант это конструкции типа
Код: plaintext
rundll32 printui.dll,PrintUIEntry /if /b "MyNewPrinter" /f MyprinterDriver.inf /r "MyPort:" /m "MyPrinter" /u
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / winspool.drv Add/Delete Monitor/Port/Printer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]