日期:2014-05-20  浏览次数:20674 次

C#并口打印类,请做过的帮忙看一下如何该得更合理
类是网上找的,不知是哪位高人写的,我调用的时候使用如下语句:
                      try
                        {
                                LPTControl   lpt   =   new   LPTControl();
                                lpt.Open();
                                lpt.Write( "打印测试! ");
                                lpt.Close();
                        }
                        catch
                        {
                        }
因为是直接操作并口,打印的时候速度非常快,效果还可以。
现在的问题是,如果电脑上没有安装打印机时,执行lpt.Write( "打印测试! ");会非常慢,程序像死了一样(lpt.Open();这句能通过)请问没有安装打印机时程序该如何处理?


使用的类如下,装打印机时效果还可以。
        public   class   LPTControl
        {
                [StructLayout(LayoutKind.Sequential)]
                private   struct   OVERLAPPED
                {
                        int   Internal;
                        int   InternalHigh;
                        int   Offset;
                        int   OffSetHigh;
                        int   hEvent;
                }
                [DllImport( "kernel32.dll ")]
                private   static   extern   int   CreateFile(
                  string   lpFileName,
                  uint   dwDesiredAccess,
                  int   dwShareMode,
                  int   lpSecurityAttributes,
                  int   dwCreationDisposition,
                  int   dwFlagsAndAttributes,
                  int   hTemplateFile
                  );
                [DllImport( "kernel32.dll ")]
                private   static   extern   bool   WriteFile(
                  int   hFile,
                  byte[]   lpBuffer,