《.NET中掃描器控制的實現》
摘要
在windows圖象應用程式中,用於掃描的主要API是不幸的,是新的.NET Freamework框架沒有內建支援TWAIN.因此,我們必須去寫一個方法去使.NET下可以使用這個API。這個簡單的程式碼包含的不是最終的功能介紹,只是一些並於.NET應用開發的TWAIN程式設計基本的步驟
祥細設計<?xml:namespace prefix = o />
第一步是最重要的部分,設定TWAIN.H埠,這部分程式碼在TwainDefs.cs中可以找到。主要的邏輯程式碼在TwainLib.cs的Twain 類中。TWAIN API 存在於Windows DLL
[DllImport("twain_32.dll", EntryPoint="#1")]
private static extern TwRC DSMparent(
[In, Out] TwIdentity origin,
IntPtr zeroptr,
TwDG dg, TwDAT dat, TwMSG msg,
ref IntPtr refptr );
Twain 類的第5步如下:
class Twain
{
Init();
Select();
Acquire();
PassMessage();
TransferPictures();
}
對於某些“回叫訊號”,TWAIN呼叫特殊Windows通訊,並且捕獲應用環路資訊。在.NET中,唯一的捕獲方式是呼叫IMessageFilter.PreFilterMessage(),過濾器將在呼叫Application.AddMessageFilter()時被啟用。在過濾器的方法中,我們將轉送每一個資訊給Twain.PassMessage(),並顯示操作提示(Twain命令選單).
例項應用
這個例子是Windows
侷限性
程式碼除錯環境是:windows 2000/SP2,日本愛普生科技公司 USB掃描器 。
掃描影象埠:Windows DIB(TWAIN spec呼叫)