Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Installing a printer driver programmatically
Message
General information
Forum:
Visual FoxPro
Category:
Installation, Setup and Configuration
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows Server 2003
Network:
Windows 2003 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
00984245
Message ID:
00984250
Views:
23
Yes there is a way.

Forgive me for pulling this code directly out of one of my Listener classes, Rick, I'm kind of in a rush, but you will see what you need to do. Of course the running user has to have admin permissions, but that's probably true of the rest of your process.

You can use code like this in a batch file calling during a setup EXE's processing, FWIW. I just happen to have this example from a class handy. The critical part is what you see in the lcCmd variable.
   PROCEDURE VerifyPrinterSetup()

      PRIVATE laSetups[1]

      LOCAL lcCmd, lcFailureConditions

      lcFailureConditions = ;
       " APRINTERS(laSetups) = 0 OR " + ;
       " ASCAN(laSetups,[" + ;
       THIS.PSDriverSetupName+"],1,ALEN(laSetups,1),1,7) = 0 "  
      
      * check for the existance of the appropriate printer driver
      * if it is not there, attempt to install
      * if it is not installed after attempt,
      * return .F.      

     IF &lcFailureConditions.

        THIS.DoStatus(INSTALLING_DRIVER_LOC)

        lcCmd = ;
        [%windir%\\system32\\rundll32.exe  ] + ;
        [printui.dll,PrintUIEntry /if /b ] + ;
        ["] + THIS.PSDriverSetupName + ["] + ;
        [ /f %windir%\\inf\\ntprint.inf /r  "lpt1:" /m "] + ;
        DRIVER_TO_USE + [" /Z]

        llReturn = ;
         THIS.oWinAPI.ProgExecute( ;
             lcCmd,lcFailureConditions,THIS.WaitAttempts)              

        THIS.ClearStatus()

     ENDIF   

     RETURN APRINTERS(laSetups) > 0 AND ;
        ASCAN(laSetups,THIS.PSDriverSetupName,1,ALEN(laSetups,1),1,7) > 0   

   ENDPROC
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform