printui.dll を呼び出すメソッド

  /y /n "printer" で 通常使うプリンタを設定



  
Imports System.Runtime.InteropServices

Public Enum LboxEnumShowWindow

	SW_HIDE = 0
	SW_SHOWNORMAL = 1
	SW_NORMAL = 1
	SW_SHOWMINIMIZED = 2
	SW_SHOWMAXIMIZED = 3
	SW_MAXIMIZE = 3
	SW_SHOWNOACTIVATE = 4
	SW_SHOW = 5
	SW_MINIMIZE = 6
	SW_SHOWMINNOACTIVE = 7
	SW_SHOWNA = 8
	SW_RESTORE = 9
	SW_SHOWDEFAULT = 10
	SW_FORCEMINIMIZE = 11
	SW_MAX = 11

End Enum

Public Class LboxPrint

	' ****************************************
	' DLL 動的読み込み用
	' ****************************************
	<DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
	Private Shared Function LoadLibraryA( _
	 <MarshalAs(UnmanagedType.LPStr)> ByVal DllName As String _
	) As Integer
	End Function

	<DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
	Private Shared Function FreeLibrary( _
	  ByVal hModule As Integer _
	) As Integer
	End Function

	<DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
	Private Shared Function GetProcAddress( _
	  ByVal hModule As Integer, _
	  <MarshalAs(UnmanagedType.LPStr)> ByVal lpProcName As String _
	) As Integer
	End Function

	' ****************************************
	' デスクトップのウインドウハンドル
	' ****************************************
	<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
	Private Shared Function GetDesktopWindow() As Integer
	End Function

	Delegate Sub PrintUIEntryW( _
	   ByVal hwnd As Int32, _
	   ByVal hinst As Int32, _
	  <MarshalAs(UnmanagedType.LPWStr)> ByVal text As String, _
	  ByVal nCmdShow As Int32)

	' ****************************************
	' コマンド実行
	' ****************************************
	Public Sub PrintUI( _
	 ByVal command As String, _
	 Optional ByVal nType As Integer = LboxEnumShowWindow.SW_SHOW)

		Dim hModule As Integer = LoadLibraryA("printui.dll")

		' ********************************************************
		' 実行
		' ********************************************************
		Dim ptr As IntPtr
		ptr = GetProcAddress(hModule, "PrintUIEntryW")
		If ptr <> IntPtr.Zero Then
			Dim func1 As PrintUIEntryW = _
			  Marshal.GetDelegateForFunctionPointer(ptr, _
			  GetType(PrintUIEntryW) _
			  )
			Call func1(GetDesktopWindow(), hModule, command, nType)
		End If

	End Sub

End Class
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ