View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Leith Ross[_102_] Leith Ross[_102_] is offline
external usenet poster
 
Posts: 1
Default Calling the Windows Deafult Printer


Hello Simon,

I posted this yesterday, but no problem to post it again. This works
for Excel and should work in Access also. Since the both use the same
caommand to set the printer.

EXAMPLE:
Application.ActivePrinter = GetDeafultPrinter


Code:
--------------------
Private Declare Function GetProfileString _
Lib "Kernel32.dll" _
Alias "GetProfileStringA" _
(ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long


Public Function GetDefaultPrinter() As String

Dim Buffer As String
Dim ByteCount As Long
Dim MaxCount As Long
Dim DefaultInfo As String

MaxCount = 260
Buffer = String(MaxCount, Chr$(0))

'Retreive current default printer information
ByteCount = GetProfileString("windows", "device", ",,,", Buffer, MaxCount)

DefaultInfo = Left(Buffer, ByteCount)

'Remove second item between commas and replace with "on"
I = InStr(1, DefaultInfo, ",")
LeftSide = Left(DefaultInfo, I - 1)
I = InStr(I + 1, DefaultInfo, ",")
RightSide = Right(DefaultInfo, ByteCount - I)
DefaultInfo = LeftSide & " on " & RightSide

GetDefaultPrinter = DefaultInfo

End Function

--------------------


Sincerely,
Leith Ross


--
Leith Ross
------------------------------------------------------------------------
Leith Ross's Profile: http://www.excelforum.com/member.php...o&userid=18465
View this thread: http://www.excelforum.com/showthread...hreadid=478889