sozzled 2015-03-24 09:59 采纳率: 0%
浏览 1551

C#操作并口时报错??

        public const short FILE_ATTRIBUTE_NORMAL = 0x80;
    public const short INVALID_HANDLE_VALUE = -1;
    public const uint GENERIC_READ = 0x80000000;
    public const uint GENERIC_WRITE = 0x40000000;
    public const uint CREATE_NEW = 1;
    public const uint CREATE_ALWAYS = 2;
    public const uint OPEN_EXISTING = 3;

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern IntPtr CreateFile(string lpFileName, uint dwDesiredAccess,
        uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition,
        uint dwFlagsAndAttributes, IntPtr hTemplateFile);
    public string SendCMDToLPT1()
    {
        try
        {
            IntPtr ptr = CreateFile("LPT1", GENERIC_WRITE, 0,
                     IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
            if (ptr.ToInt32() == -1)
            {
                Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
            }
            else
            {
                FileStream lpt = new FileStream(ptr, FileAccess.ReadWrite);
                Byte[] buffer = new Byte[5];
                //0x1B, 0x70, 0x00,0x16,0x16
                buffer[0] = 0x1B;
                buffer[1] = 0x70;
                buffer[2] = 0x00;
                buffer[3] = 0x16;
                buffer[4] = 0x16;
                lpt.Write(buffer, 0, buffer.Length);
                lpt.Close();
            }
            return "";
        }
        catch (Exception e)
        {
            return "" + e.Message.ToString();
        }
    }

            以上是我操作并口的代码。在winform工程下这个是很好用的。
            后来封装到ActiveX,里面。用IE调用的时候。
            IntPtr ptr = CreateFile("LPT1", GENERIC_WRITE, 0,
                     IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);

            运行到这个句话的时候异常。

            请教各位大侠!
  • 写回答

3条回答 默认 最新

  • threenewbee 2015-03-24 11:33
    关注

    权限不足,ActiveX没有操作lpt1的权限,lpt1相当于文件,需要给浏览器提权,还要设置安全等级为低才行。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿