using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace LED_CSharp
{
public partial class Form1 : Form
{
const UInt32 OPEN_EXISTING = 3;
const UInt32 GENERIC_READ = 0x80000000;
const UInt32 GENERIC_WRITE = 0x40000000;
const Int32 INVALID_HANDLE_VALUE = -1;
const UInt32 LED_ON = 0x01;
const UInt32 LED_OFF = 0x06;
private IntPtr hPort;
//导入API
[DllImport("coredll.dll")]
public static extern IntPtr CreateFile(String lpFileName, UInt32 dwDesiredAccess, UInt32 dwShareMode, IntPtr lpSecurityAttributes, UInt32 dwCreationDisposition, UInt32 dwFlagsAndAttributes, IntPtr hTemplateFile);
[DllImport("coredll.dll")]
public static extern bool DeviceIoControl(IntPtr hDevice, UInt32 dwIoControlCode, Byte[] lpInBuffer, UInt32 nInBufferSize, Byte[] lpOutBuffer, UInt32 nOutBufferSize, UInt32 lpBytesReturned, IntPtr lpOverlapped);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//打开LED驱动,获取句柄
hPort = CreateFile("LED1:", GENERIC_READ | GENERIC_WRITE, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
if (hPort == (IntPtr)INVALID_HANDLE_VALUE)
{
MessageBox.Show("Open Led Driver Fail");
}
}
private void button3_Click(object sender, EventArgs e)
{
//打开LED灯
byte[] led1 = new Byte[1];
led1[0] = 0;
byte[] pout = new Byte[10];
//DeviceIoControl(hPort, LED_ON, led1, 0, pout, 10, 0, IntPtr.Zero);
DeviceIoControl(hPort, LED_ON, led1, 0, pout,0,0,IntPtr.Zero);
}
private void button4_Click(object sender, EventArgs e)
{
//关闭LED灯
byte[] led1 = new Byte[1];
led1[0] = 0;
byte[] pout = new Byte[10];
//DeviceIoControl(hPort, LED_OFF, led1, 0, pout, 10, 0, IntPtr.Zero);
DeviceIoControl(hPort, LED_OFF, led1, 0, pout,0,0,IntPtr.Zero);
}
}
}