タイトル : AddPrinterDriverがうまくいきません 投稿日 : 2010/10/19(Tue) 23:21 投稿者 : zonk
プリンタドライバをインストールしたいのですが、「プリンタ名が無効です」と 表示されて上手くいきません。 AddPrinterDriverW を AddPrinterDriverA に変えると、エラーメッセージは 「パラメータが間違っています」になります。 どこがまずいかご教授お願いします。 環境はVista、VB2008です。 必要なファイルは事前に C:\Windows\system32\spool\DRIVERS\W32X86 にコピー済みで、 ファイルをフルパスで指定しても同じ結果になります。 Private Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverW" _ (ByVal pName As String, _ ByVal Level As Integer, _ ByRef pDriverInfo As DRIVER_INFO_3) As Integer Public Structure DRIVER_INFO_3 Public cVersion As Long Public pName As String Public pEnvironment As String Public pDriverPath As String Public pDataFile As String Public pConfigFile As String Public pHelpFile As String Public pDependentFiles As String Public pMonitorName As String Public pDefaultDataType As String End Structure Public Shared Function DriverInstall(ByVal strDriverName As String) As Boolean Dim di As New DRIVER_INFO_3 With di .cVersion = 3 .pConfigFile = "ps5ui.dll" .pDataFile = strDriverName & ".ppd" .pDependentFiles = "pscript.ntf" & vbNullChar _ & "pscript.hlp" & vbNullChar _ & "ps5ui.dll" & vbNullChar _ & strDriverName & ".ppd" & vbNullChar _ & "pscript5.dll" .pDriverPath = "pscript5.dll" .pEnvironment = "Windows NT x86" .pHelpFile = "pscript5.hlp" .pMonitorName = String.Empty .pName = strDriverName .pDefaultDataType = "RAW" End With If AddPrinterDriver(String.Empty, 3, di) = 0 Then Dim ExcptWin32 As New Win32Exception(Marshal.GetLastWin32Error()) MessageBox.Show(ExcptWin32.Message, "Win32Err", MessageBoxButtons.OK) Return False End If Return True End Function |