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   管理者用   
このエントリーをはてなブックマークに追加





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ