431 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			431 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.ComponentModel;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								using System.Drawing;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Windows.Forms;
							 | 
						|||
| 
								 | 
							
								using Urovo;
							 | 
						|||
| 
								 | 
							
								using Microsoft.WindowsCE.Forms;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace NetworkDemo
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class Form1 : Form
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public enum NetImageType
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            NoConnect = 0,
							 | 
						|||
| 
								 | 
							
								            Connecting = 1,
							 | 
						|||
| 
								 | 
							
								            WlanConnected = 2,
							 | 
						|||
| 
								 | 
							
								            GprsConnected = 3
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public enum SignalImageType
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            None = 0,
							 | 
						|||
| 
								 | 
							
								            Low = 1,
							 | 
						|||
| 
								 | 
							
								            Normal = 2,
							 | 
						|||
| 
								 | 
							
								            Good = 3,
							 | 
						|||
| 
								 | 
							
								            Strong = 4,
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public enum BatteryImageType
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Danger = 0,
							 | 
						|||
| 
								 | 
							
								            Low = 1,
							 | 
						|||
| 
								 | 
							
								            Normal = 2,
							 | 
						|||
| 
								 | 
							
								            Good = 3,
							 | 
						|||
| 
								 | 
							
								            Full = 4,
							 | 
						|||
| 
								 | 
							
								            AC = 5
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        NetworkManager networkMgr = new NetworkManager();
							 | 
						|||
| 
								 | 
							
								        public NetworkManager NetworkMgr
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get { return networkMgr; }
							 | 
						|||
| 
								 | 
							
								            set { networkMgr = value; }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        PowerManager powerMgr = new PowerManager();
							 | 
						|||
| 
								 | 
							
								        public PowerManager PowerMgr
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get { return powerMgr; }
							 | 
						|||
| 
								 | 
							
								            set { powerMgr = value; }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private int signalCount = 0;     //取信号计数器
							 | 
						|||
| 
								 | 
							
								        private DateTime lastAlertTime = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private string JianPanInput = "42429667-ae04-11d0-a4f8-00aa00a749b9";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public Form1()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            InitializeComponent();
							 | 
						|||
| 
								 | 
							
								            networkMgr.ConnectNotify += new ConnectNotifyEventHandler(ConnectNotify);
							 | 
						|||
| 
								 | 
							
								            powerMgr.PowerNotify += new PowerNotifyEventHandler(PowerNotify);
							 | 
						|||
| 
								 | 
							
								            batteryStatus.BackgroundImage = Properties.Resources.battery;
							 | 
						|||
| 
								 | 
							
								            netStatus.BackgroundImage = Properties.Resources.net;
							 | 
						|||
| 
								 | 
							
								            signalStatus.BackgroundImage = Properties.Resources.signal;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void Form1_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                CreateIMEMenu();
							 | 
						|||
| 
								 | 
							
								                timer1.Enabled = true;
							 | 
						|||
| 
								 | 
							
								                NetworkManager.ConnectType = rbGprs.Checked ? ConnType.Gprs : ConnType.Wlan;
							 | 
						|||
| 
								 | 
							
								                this.lblNetType.Text = rbGprs.Checked ? "GPRS" : "WIFI";
							 | 
						|||
| 
								 | 
							
								                networkMgr.Start();
							 | 
						|||
| 
								 | 
							
								                powerMgr.Start();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                MessageBox.Show("程序启动失败!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void timer1_Tick(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //26秒取一次信号
							 | 
						|||
| 
								 | 
							
								            #region
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (++signalCount % 26 == 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                signalCount = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                SignalImageType signalImageType = SignalImageType.None;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (NetworkManager.ConnectType == ConnType.Gprs)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (Device.GetGsmPowerStatus() == 1)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        int iStrength = Device.GetGsmSignalStrength();
							 | 
						|||
| 
								 | 
							
								                        this.lblSignalStrength.Text = iStrength.ToString();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (iStrength == 99 || iStrength == 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.None;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength > 21)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Strong;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength > 16)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Good;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength > 11)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Normal;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Low;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        lblSignalStrength.Text = "无";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (NetworkManager.ConnectType == ConnType.Wlan)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (Device.GetWlanPowerStatus() == 1)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        int iStrength = Device.GetWlanSignalStrength();
							 | 
						|||
| 
								 | 
							
								                        this.lblSignalStrength.Text = iStrength.ToString();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (iStrength == 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.None;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength >= -57)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Strong;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength >= -70)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Good;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength >= -81)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Normal;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (iStrength >= -91)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            signalImageType = SignalImageType.Low;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        lblSignalStrength.Text = "无";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                this.signalStatus.ImageIndex = (int)signalImageType;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            #endregion
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 网络状态检查
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 检查网络连接和传输数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="wParam"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="lParam"></param>
							 | 
						|||
| 
								 | 
							
								        public void ConnectNotify(object sender, ConnectNotifyEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.InvokeRequired)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                object[] param = new object[2] { sender, e };
							 | 
						|||
| 
								 | 
							
								                this.BeginInvoke(new ConnectNotifyEventHandler(OnConnectNotify), param);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                OnConnectNotify(sender, e);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 检查网络连接和传输数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="wParam"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="lParam"></param>
							 | 
						|||
| 
								 | 
							
								        private void OnConnectNotify(object sender, ConnectNotifyEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                #region Signal
							 | 
						|||
| 
								 | 
							
								                NetImageType netImageType = NetImageType.NoConnect;
							 | 
						|||
| 
								 | 
							
								                switch (e.ConnectResult)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    case ConnState.ConnectSuccess:
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            switch (e.ConnectType)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                case ConnType.Gprs:
							 | 
						|||
| 
								 | 
							
								                                    netImageType = NetImageType.GprsConnected;
							 | 
						|||
| 
								 | 
							
								                                    lblNetStatus.Text = "已连接";
							 | 
						|||
| 
								 | 
							
								                                    break;
							 | 
						|||
| 
								 | 
							
								                                case ConnType.Wlan:
							 | 
						|||
| 
								 | 
							
								                                    netImageType = NetImageType.WlanConnected;
							 | 
						|||
| 
								 | 
							
								                                    lblNetStatus.Text = "已连接";
							 | 
						|||
| 
								 | 
							
								                                    break;
							 | 
						|||
| 
								 | 
							
								                                default:
							 | 
						|||
| 
								 | 
							
								                                    netImageType = NetImageType.NoConnect;
							 | 
						|||
| 
								 | 
							
								                                    lblNetStatus.Text = "未连接";
							 | 
						|||
| 
								 | 
							
								                                    break;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        break;
							 | 
						|||
| 
								 | 
							
								                    case ConnState.Connecting:
							 | 
						|||
| 
								 | 
							
								                        netImageType = NetImageType.Connecting;
							 | 
						|||
| 
								 | 
							
								                        lblNetStatus.Text = "正在连接...";
							 | 
						|||
| 
								 | 
							
								                        break;
							 | 
						|||
| 
								 | 
							
								                    case ConnState.Disconnectiong:
							 | 
						|||
| 
								 | 
							
								                        netImageType = NetImageType.Connecting;
							 | 
						|||
| 
								 | 
							
								                        lblNetStatus.Text = "正在断开连接...";
							 | 
						|||
| 
								 | 
							
								                        break;
							 | 
						|||
| 
								 | 
							
								                    default:
							 | 
						|||
| 
								 | 
							
								                        netImageType = NetImageType.NoConnect;
							 | 
						|||
| 
								 | 
							
								                        lblNetStatus.Text = "未连接";
							 | 
						|||
| 
								 | 
							
								                        break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                this.netStatus.ImageIndex = (int)netImageType;
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 电源状态
							 | 
						|||
| 
								 | 
							
								        void PowerNotify(object sender, PowerNotifyEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.InvokeRequired)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                object[] param = new object[2] { sender, e };
							 | 
						|||
| 
								 | 
							
								                this.BeginInvoke(new PowerNotifyEventHandler(OnPowerNotify), param);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                OnPowerNotify(sender, e);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        void OnPowerNotify(object sender, PowerNotifyEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (e.ACLineStatus != 0x01)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (e.BatteryLifePercent <= 7)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (DateTime.Now - lastAlertTime > new TimeSpan(60 * 10))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        lastAlertTime = DateTime.MaxValue;
							 | 
						|||
| 
								 | 
							
								                        MessageBox.Show("电量太低,请注意换电池", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
							 | 
						|||
| 
								 | 
							
								                        Application.DoEvents();
							 | 
						|||
| 
								 | 
							
								                        lastAlertTime = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            BatteryImageType batteryImageType = BatteryImageType.Danger;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (e.ACLineStatus == 0x01)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                batteryImageType = BatteryImageType.AC;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.BatteryLifePercent > 80)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                batteryImageType = BatteryImageType.Full;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.BatteryLifePercent > 60)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                batteryImageType = BatteryImageType.Good;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.BatteryLifePercent > 40)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                batteryImageType = BatteryImageType.Normal;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.BatteryLifePercent > 20)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                batteryImageType = BatteryImageType.Low;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            this.batteryStatus.ImageIndex = (int)batteryImageType;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void Form1_Closed(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                networkMgr.Stop();
							 | 
						|||
| 
								 | 
							
								                powerMgr.Stop();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void btnNetChange_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (rbGprs.Checked)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                networkMgr.Connect(ConnType.Gprs);
							 | 
						|||
| 
								 | 
							
								                this.lblNetType.Text = "GPRS";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                networkMgr.Connect(ConnType.Wlan);
							 | 
						|||
| 
								 | 
							
								                this.lblNetType.Text = "WIFI";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void gbtnCloseNetwork_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            networkMgr.Disconnect();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void picClose_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (MessageBox.Show("Exit?[Y/N]", "Tip", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                this.Close();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void imageButton1_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.contextMenu1.Show(this.imageButton1, new Point(-100, -80));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void IMEMenu_Click(object sender,EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                MenuItem item = (MenuItem)sender;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (item.Text == "隐藏输入面板")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.inputPanel1.Enabled = false;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (InputMethod im in inputPanel1.InputMethods)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (im.Name == item.Text)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            inputPanel1.CurrentInputMethod = im;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    inputPanel1.Enabled = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                MessageBox.Show("软键盘出现错误,详细情况请参阅日志!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void CreateIMEMenu()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            MenuItem item;
							 | 
						|||
| 
								 | 
							
								            foreach (InputMethod im in this.inputPanel1.InputMethods)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                item = new MenuItem();
							 | 
						|||
| 
								 | 
							
								                item.Text = im.Name;
							 | 
						|||
| 
								 | 
							
								                item.Click += new EventHandler(IMEMenu_Click);
							 | 
						|||
| 
								 | 
							
								                this.contextMenu1.MenuItems.Add(item);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            item = new MenuItem();
							 | 
						|||
| 
								 | 
							
								            item.Text = "-";
							 | 
						|||
| 
								 | 
							
								            contextMenu1.MenuItems.Add(item);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            item = new MenuItem();
							 | 
						|||
| 
								 | 
							
								            item.Text = "隐藏输入面板";
							 | 
						|||
| 
								 | 
							
								            item.Click += new EventHandler(IMEMenu_Click);
							 | 
						|||
| 
								 | 
							
								            contextMenu1.MenuItems.Add(item);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public void EnableInputMethod()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (InputMethod im in this.inputPanel1.InputMethods)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string clsid = im.Clsid.ToString();
							 | 
						|||
| 
								 | 
							
								                    if (im.Clsid.ToString() == JianPanInput)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        this.inputPanel1.CurrentInputMethod = im;
							 | 
						|||
| 
								 | 
							
								                        this.inputPanel1.Enabled = true;
							 | 
						|||
| 
								 | 
							
								                        break;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void Form1_KeyDown(object sender, KeyEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            switch (e.KeyCode)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                case Keys.F2:
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        EnableInputMethod();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |