Drucker installieren per PB4

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Drucker installieren per PB4

Beitrag von dysti »

Hallo,
ich möchte mit Purebasic einen Systemdrucker, den Generic-Textdrucker, einrichten. Muß ja wie bei ODBC auch per API möglich sein. Wie kann ich das machen.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hey,
ich bin etwas weitergekommen. Mit diesem Befehl ann ich per VB6 einen Drucker installieren:

Code: Alles auswählen

Shell "rundll32 printui.dll,PrintUIEntry /if /f c:\Windows\inf\ntprint.inf /r " & _
  Chr$(34) & "File:" & Chr$(34) & " /m " & _
  Chr$(34) & "Apple Color LW 12/660 PS" & Chr$(34) & " /b " & _
  Chr$(34) & "Mein Drucker" & Chr$(34) & " /z"
Der PB-Befehl zum Aufruf eines externen Programes ist:

Code: Alles auswählen

Aufruf=RunProgram(prgname$,parameter$,"",1)
Habe einiges versucht, den Aufruf in PB umzusetzen. Bin am verzweifeln.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

so?

Code: Alles auswählen

prgname$ = "rundll32"
parameter$ = "printui.dll,PrintUIEntry /if /f c:\Windows\inf\ntprint.inf /r " + Chr(34) + "File:" + Chr(34) + " /m " +  Chr(34) + "Apple Color LW 12/660 PS" + Chr(34) + " /b " +  Chr(34) + "Mein Drucker" + Chr(34) + " /z"
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Danke Kiffi.
Hatte die Zeile auch so, aber weiß der Teufel, was an deiner Zeile anders ist. Auf jeden Fall habe ich meine Zeile gelöscht und deine eingefügt. Nun funktioniert es. Super.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Also, hier jetzt das vollständige Tool. Man kann auch den Drucker wieder löschen. Vielleicht kann es ja auch jemand anderes gebrauchen.

Code: Alles auswählen

Procedure Druckerinst()
prgname$ = "rundll32.exe"
; Für Windows XP
;parameter$ = "printui.dll,PrintUIEntry /if /f c:\Windows\inf\ntprint.inf /r " + Chr(34) + "File:" + Chr(34) + " /m " +  Chr(34) + "Generic / Text Only" + Chr(34) + " /b " +  Chr(34) + "Mein Drucker" + Chr(34) + " /z" 
; Für Windows 2000 Professionel
parameter$ = "printui.dll,PrintUIEntry /if /f c:\Winnt\inf\ntprint.inf /r " + Chr(34) + "File:" + Chr(34) + " /m " +  Chr(34) + "Generic / Text Only" + Chr(34) + " /b " +  Chr(34) + "Mein Drucker" + Chr(34) + " /z" 
If RunProgram(prgname$,parameter$,"",1)
MessageRequester("","Drucker wurde installiert")
Else
MessageRequester("","Drucker konnte nicht installiert werden")
EndIf
EndProcedure

Procedure Druckerloeschen()
prgname$ = "rundll32"
parameter$ = "printui.dll,PrintUIEntry /dl /n " + Chr(34) + "Mein Drucker"  + Chr(34)
If RunProgram(prgname$,parameter$,"",1)
MessageRequester("","Drucker wurde erfolgreich gelöscht")
Else
MessageRequester("","Drucker konnte nicht gelöscht werden")
EndIf
EndProcedure

If OpenWindow(0, 100, 200, 320, 200, "Druckerinstallation", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If CreateGadgetList(WindowID(0)) 
   ButtonGadget(1, 40, 120, 100, 30, "Drucker installieren")
   ButtonGadget(2, 180, 120, 100, 30, "Drucker löschen")
   TextGadget(3, 40,  20, 250, 20, "Manuelle", #PB_Text_Center)
   TextGadget(4, 40,  70, 250, 20, "Druckerinstallation", #PB_Text_Center)
   ButtonGadget(5, 110, 160, 100, 30, "Ende")

EndIf
EndIf
  Repeat
  EventID = WaitWindowEvent()
  WindowID=EventWindow()
  GadgetID=EventGadget()
  EventType=EventType()
  Select EventID
    Case #PB_Event_Gadget
      EventID=EventGadget()
      If EventID=1
        Druckerinst()
        End
      ElseIf EventID=2
        Druckerloeschen()
        End
        ElseIf EventID=5
        End
      EndIf
  EndSelect
  Until EventID=#PB_Event_CloseWindow
End
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten