Visual Basic Standardrucker

Hallo!
Ich moechte gerne den Standarddrucker bei Windows NT 4.0 mit einem VB
6.0- Programm umstellen lassen. Eigentlich suche ich nur eine einfache
Zuweisung, wie z.B. Printstandard= „DT00013“. Leider habe ich einen solchen Befehl noch nicht gefunden.

Hat da jemand einen Tip fuer mich?

Vielen Dank schon mal im vorraus

Andrea Geerlings

sollte mit dem „Common Dialog Control“ gehen - tut es aber nicht (gibt M$ sogar zu). Du mußt es leider mit API-Calls verreichten.

>sollte mit dem „Common Dialog Control“
>gehen - tut es aber nicht immer
>(gibt M$ sogar zu). Du mußt es leider mit >API-Calls verreichten.

Auf den Knowledge seiten steht massig dazu ich habs aber auch nicht hingekriegt. Wenn du es geschaft hast sag mir bescheid! Ich brauchs auch dringend.

So sollte es gehen (der Code ist zwar nur unter Access-VBA getestet, sollte aber unter VB genauso funktionieren):

Public Const WM\_WININICHANGE = &H1A
Public Const HWND\_BROADCAST = &HFFFF
Declare Function SendMessage Lib "User32" Alias "SendMessageA" \_
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" \_
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" \_
(ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long

Public Function SetDefaultPrinter(PrName As String)
' Parameter: Druckername
' Rückgabewert: Erfolg der Aktion
Dim Buffer As String, RW, Tmp As String
On Error GoTo Er

 Buffer = String(255, 0)
 RW = GetProfileString(ByVal "devices", ByVal PrName, ByVal "", Buffer, Len(Buffer))
 If RW 1 Then
 SetDefaultPrinter = False
 Exit Function
 End If
' und mitteilen, daß sich die WIN.INI geändert hat
 RW = SendMessage(HWND\_BROADCAST, WM\_WININICHANGE, 0&, 0&amp:wink:
 SetDefaultPrinter = True

Ex:
 Exit Function

Er:
 MsgBox "SetDefaultPrinter: " & Err.Description
 SetDefaultPrinter = False
 Resume Ex

End Function

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]