@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The GetDefaultPrinter function retrieves the printer name of the default printer for the current user on the local computer !!!!C# Signature: [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool GetDefaultPrinter(StringBuilder pszBuffer, ref int pcchBuffer); !!!!VB Signature: Declare Function GetDefaultPrinter Lib "winspool.drv" Alias "GetDefaultPrinterA" _ (ByVal pszBuffer As System.Text.StringBuilder, ByRef pcchBuffer As Int32) As Boolean !!!!User-Defined Types: None. !!!!Notes: Works even if print spooler service is stopped (W2K) You will need to import System.Runtime.InteropServices. !!!!Tips & Tricks: !!!!Sample Code: private const int ERROR_FILE_NOT_FOUND = 2; private const int ERROR_INSUFFICIENT_BUFFER = 122; public static String getDefaultPrinter() { int pcchBuffer = 0; if (GetDefaultPrinter(null, ref pcchBuffer)) { return null; } int lastWin32Error = Marshal.GetLastWin32Error(); if (lastWin32Error == ERROR_INSUFFICIENT_BUFFER) { StringBuilder pszBuffer = new StringBuilder(pcchBuffer); if (GetDefaultPrinter(pszBuffer, ref pcchBuffer)) { return pszBuffer.ToString(); } lastWin32Error = Marshal.GetLastWin32Error(); } if (lastWin32Error == ERROR_FILE_NOT_FOUND) { return null; } throw new Win32Exception(Marshal.GetLastWin32Error()); } VB.Net sample code: Private Shared Function _getDefaultPrinterName() As String Dim pszBuffer As System.Text.StringBuilder = New System.Text.StringBuilder(100) pszBuffer.Length = 100 Dim pcchBuffer As Integer = CInt(pszBuffer.Length) Dim retVal As Boolean = GetDefaultPrinter(pszBuffer, pcchBuffer) Return pszBuffer.ToString.Trim 'StringBuilder manages the null-terminated string End Function !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: GetDefaultPrinter@msdn on MSDN
Edit winspool.GetDefau...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.