现在的电子枪一般都是usb接口,不是的话,也可以加个专接口,转为usb接口这样通过对usb接口的控制,你可以控制具体的电子枪例如对存储设备的控制:C#实现USB接口的程序代码
C#代码
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
USB usb;
usb = new UDisk();//插入U盘
usb.OutputFile();//从U盘读出文件
usb.InputFile();//往U盘写入文件
usb.Dispose();//拔出U盘
Console.WriteLine("");
usb = new MDisk();//插入移动硬盘
usb.OutputFile();//从移动硬盘读出文件
usb.InputFile();//往移动硬盘写入文件
usb.Dispose();//拔出移动硬盘
Console.WriteLine("");
usb = new MP4();//插入MP4
usb.OutputFile();//从MP4读出文件
usb.InputFile();//往MP4写入文件
usb.Dispose();//拔出MP4
Console.ReadKey();
}
//USB接口
public interface USB : IDisposable
{
void OutputFile();//读出文件
void InputFile();//写入文件
}
//U盘
public class UDisk : USB
{
public UDisk()
{
Console.WriteLine("U盘准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从U盘读出文件");
}
public void InputFile()
{
Console.WriteLine("往U盘写入文件");
}
public void Dispose()
{
Console.WriteLine("U盘已被拔出");
}
}
//移动硬盘
public class MDisk : USB
{
public MDisk()
{
Console.WriteLine("移动硬盘准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从移动硬盘读出文件");
}
public void InputFile()
{
Console.WriteLine("往移动硬盘写入文件");
}
public void Dispose()
{
Console.WriteLine("移动硬盘已被拔出");
}
}
//MP4
public class MP4 : USB
{
public MP4()
{
Console.WriteLine("MP4准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从MP4读出文件");
}
public void InputFile()
{
Console.WriteLine("往MP4写入文件");
}
public void Dispose()
{
Console.WriteLine("MP4已被拔出");
}
}
}
}
C#代码
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
USB usb;
usb = new UDisk();//插入U盘
usb.OutputFile();//从U盘读出文件
usb.InputFile();//往U盘写入文件
usb.Dispose();//拔出U盘
Console.WriteLine("");
usb = new MDisk();//插入移动硬盘
usb.OutputFile();//从移动硬盘读出文件
usb.InputFile();//往移动硬盘写入文件
usb.Dispose();//拔出移动硬盘
Console.WriteLine("");
usb = new MP4();//插入MP4
usb.OutputFile();//从MP4读出文件
usb.InputFile();//往MP4写入文件
usb.Dispose();//拔出MP4
Console.ReadKey();
}
//USB接口
public interface USB : IDisposable
{
void OutputFile();//读出文件
void InputFile();//写入文件
}
//U盘
public class UDisk : USB
{
public UDisk()
{
Console.WriteLine("U盘准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从U盘读出文件");
}
public void InputFile()
{
Console.WriteLine("往U盘写入文件");
}
public void Dispose()
{
Console.WriteLine("U盘已被拔出");
}
}
//移动硬盘
public class MDisk : USB
{
public MDisk()
{
Console.WriteLine("移动硬盘准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从移动硬盘读出文件");
}
public void InputFile()
{
Console.WriteLine("往移动硬盘写入文件");
}
public void Dispose()
{
Console.WriteLine("移动硬盘已被拔出");
}
}
//MP4
public class MP4 : USB
{
public MP4()
{
Console.WriteLine("MP4准备就绪...");
}
public void OutputFile()
{
Console.WriteLine("从MP4读出文件");
}
public void InputFile()
{
Console.WriteLine("往MP4写入文件");
}
public void Dispose()
{
Console.WriteLine("MP4已被拔出");
}
}
}
}
解决方案 »
- WPF 滚动显示发车信息
- 在C#怎么获取系统时间到毫秒
- 求助!怎样获取dataGridView用户选中的行
- 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
- 如何把.net dll里的私有函数改成公有函数?
- 重复主键异常捕获
- 请教:如何可以动态改变DataGrid里面的列表头文字?还有如果需要交换列该怎么做?
- DevExpress中barManager下的toolbar如何在panel中显示
- 技术发扬--C#后台数据处理公用类
- dataGrid是否只能绑定dataSource才能使用啊?
- 急求,remoting服务器,放在路由后,无返回值,但可访问,有详细说明,解决立马结贴
- C# socket线程问题
但是,比如往textbox中输入时,程序该如何知道这是键盘输入?还是哪个电子枪输入?
usb说到底就是rs232口,也就是虚拟出来的串口,单单从端口去截流应该是截不到的,只有在键盘钩子上面下功夫
朋友,不是吧,计算机不分配端口你设备能用?钩子?句柄都没有钩啥啊?netbor说的很清楚,必须得到设备号(得这个你才能找句柄),得出地址范围了才可以对设备进行区分,然而这方面的API我接触不多,不方便多说楼主可以在“我的电脑”-》“硬件设备”下看到端口号,可以直接拿来用,但是下次插就不是这个了再看
至于端口这类的我没尝试过,行的话你可以去试试