⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycom.cs

📁 利用手机或短信发射机发送短信的源码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;


namespace SmsSender
{
    /// <summary>
    /// 
    /// </summary>
    public class mycom
    {
        public mycom()
        {
            // 
            // TODO: 在此处添加构造函数逻辑
            //
        }
        public int PortNum; //1,2,3,4
        public int BaudRate; //1200,2400,4800,9600
        public byte ByteSize; //8 bits
        public byte Parity; // 0-4=no,odd,even,mark,space 
        public byte StopBits; // 0,1,2 = 1, 1.5, 2 
        public int ReadTimeout; //10
        public int WriteTimeout; //10

        //comm port win32 file handle
        private int hComm = -1;

        public bool Opened = false;

        //win32 api constants
        private const uint GENERIC_READ = 0x80000000;
        private const uint GENERIC_WRITE = 0x40000000;
        private const int OPEN_EXISTING = 3;
        private const int INVALID_HANDLE_VALUE = -1;

        [StructLayout(LayoutKind.Sequential)]
        private struct DCB
        {
            //taken from c struct in platform sdk 
            public int DCBlength;           // sizeof(DCB) 
            public int BaudRate;            // current baud rate 
            public int fBinary;          // binary mode, no EOF check 
            public int fParity;          // enable parity checking 
            public int fOutxCtsFlow;      // CTS output flow control 
            public int fOutxDsrFlow;      // DSR output flow control 
            public int fDtrControl;       // DTR flow control type 
            public int fDsrSensitivity;   // DSR sensitivity 
            public int fTXContinueOnXoff; // XOFF continues Tx 
            public int fOutX;          // XON/XOFF out flow control 
            public int fInX;           // XON/XOFF in flow control 
            public int fErrorChar;     // enable error replacement 
            public int fNull;          // enable null stripping 
            public int fRtsControl;     // RTS flow control 
            public int fAbortOnError;   // abort on error 
            public int fDummy2;        // reserved 
            public ushort wReserved;          // not currently used 
            public ushort XonLim;             // transmit XON threshold 
            public ushort XoffLim;            // transmit XOFF threshold 
            public byte ByteSize;           // number of bits/byte, 4-8 
            public byte Parity;             // 0-4=no,odd,even,mark,space 
            public byte StopBits;           // 0,1,2 = 1, 1.5, 2 
            public char XonChar;            // Tx and Rx XON character 
            public char XoffChar;           // Tx and Rx XOFF character 
            public char ErrorChar;          // error replacement character 
            public char EofChar;            // end of input character 
            public char EvtChar;            // received event character 
            public ushort wReserved1;         // reserved; do not use 
        }
        [StructLayout(LayoutKind.Sequential)]
        private struct COMMTIMEOUTS
        {
            public int ReadIntervalTimeout;
            public int ReadTotalTimeoutMultiplier;
            public int ReadTotalTimeoutConstant;
            public int WriteTotalTimeoutMultiplier;
            public int WriteTotalTimeoutConstant;
        }
        [StructLayout(LayoutKind.Sequential)]
        private struct OVERLAPPED
        {
            public int Internal;
            public int InternalHigh;
            public int Offset;
            public int OffsetHigh;
            public int hEvent;
        }

        //
        //////////////////////////////////////////////////////////////////////////
        //设置SetupComm
        [DllImport("kernel32.dll")]
        private static extern bool SetupComm(
            int hFile,
            int iInSize,
            int iOutSize
         );
        //////////////////////////////////////////////////////////////////////////
        //设置Purge requests
        [DllImport("kernel32.dll")]
        private static extern bool PurgeComm(
            int hFile,
            int iFlags
         );
        //        
        //////////////////////////////////////////////////////////////////////////
        //设置SET THE COMM WAITMASK
        [DllImport("kernel32.dll")]
        private static extern bool SetCommMask(
            int hFile,
            int iEvtMask
         );
        //

        [DllImport("kernel32.dll")]
        private static extern int CreateFile(
         string lpFileName,                         // file name
         uint dwDesiredAccess,                      // access mode
         int dwShareMode,                          // share mode
         int lpSecurityAttributes, // SD
         int dwCreationDisposition,                // how to create
         int dwFlagsAndAttributes,                 // file attributes
         int hTemplateFile                        // handle to template file
         );
        [DllImport("kernel32.dll")]
        private static extern bool GetCommState(
         int hFile,  // handle to communications device
         ref DCB lpDCB    // device-control block
         );
        [DllImport("kernel32.dll")]
        private static extern bool BuildCommDCB(
         string lpDef,  // device-control string
         ref DCB lpDCB     // device-control block
         );
        [DllImport("kernel32.dll")]
        private static extern bool SetCommState(
         int hFile,  // handle to communications device
         ref DCB lpDCB    // device-control block
         );
        [DllImport("kernel32.dll")]
        private static extern bool GetCommTimeouts(
         int hFile,                  // handle to comm device
         ref COMMTIMEOUTS lpCommTimeouts  // time-out values
         );
        [DllImport("kernel32.dll")]
        private static extern bool SetCommTimeouts(
         int hFile,                  // handle to comm device
         ref COMMTIMEOUTS lpCommTimeouts  // time-out values
         );
        [DllImport("kernel32.dll")]
        private static extern bool ReadFile(
         int hFile,                // handle to file
         byte[] lpBuffer,             // data buffer
         int nNumberOfBytesToRead,  // number of bytes to read
         ref int lpNumberOfBytesRead, // number of bytes read
         ref OVERLAPPED lpOverlapped    // overlapped buffer
         );
        [DllImport("kernel32.dll")]
        private static extern bool WriteFile(
         int hFile,                    // handle to file
         byte[] lpBuffer,                // data buffer
         int nNumberOfBytesToWrite,     // number of bytes to write
         ref int lpNumberOfBytesWritten,  // number of bytes written
         ref OVERLAPPED lpOverlapped        // overlapped buffer
         );
        [DllImport("kernel32.dll")]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -