我正在开发一个pos机的读卡程序。利用厂家提供的dll函数,各个函数都已经验证完毕了。
在c#解决方案中,我在form的load事件中添加了com口的打开函数。如下: private void Form1_Load(object sender, EventArgs e)
{
int ret;
ret = IniCom(1, 19200);//打开串口函数
if (ret != 0)
{
MessageBox.Show("打开串口失败", "提示信息");
return;
}
else
{
MessageBox.Show("打开串口成功", "提示信息");
}
}我在form中添加了一个按钮,在按钮的clicked事件中添加读卡程序,如下:
private void button1_Click(object sender, EventArgs e)
{
int ret = 0;
StringBuilder CardNum = new StringBuilder(256);
StringBuilder CardNum1 = new StringBuilder(256);
StringBuilder CardID = new StringBuilder(256);
int CardType = 1;
StringBuilder ExpireDay = new StringBuilder(256); ret = ReadCardInfo(1, CardNum, CardNum1, CardID, ref CardType, ExpireDay); MessageBox.Show(ret.ToString(), "提示信息");
if (ret != 0)
{
MessageBox.Show("读卡失败", "提示信息");
return; }
else
{
MessageBox.Show(CardNum.ToString() , "提示信息");
}
}我在form的closing事件中添加了com口的关闭函数,如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
int ret = 0;
ret = CloseCom(1);
if (ret != 0)
{
MessageBox.Show("关闭串口失败", "提示信息");
return;
}
else
{
MessageBox.Show("关闭串口成功", "提示信息");
}
}现在在运行程序以后,我每点击一次按钮都能成功读一次卡。
可是我现在的问题是,要求这个程序在运行时,随时都能读卡,而不需要人的参与,即不需要有点击按钮的动作。我该怎么做?望高手教我!
在c#解决方案中,我在form的load事件中添加了com口的打开函数。如下: private void Form1_Load(object sender, EventArgs e)
{
int ret;
ret = IniCom(1, 19200);//打开串口函数
if (ret != 0)
{
MessageBox.Show("打开串口失败", "提示信息");
return;
}
else
{
MessageBox.Show("打开串口成功", "提示信息");
}
}我在form中添加了一个按钮,在按钮的clicked事件中添加读卡程序,如下:
private void button1_Click(object sender, EventArgs e)
{
int ret = 0;
StringBuilder CardNum = new StringBuilder(256);
StringBuilder CardNum1 = new StringBuilder(256);
StringBuilder CardID = new StringBuilder(256);
int CardType = 1;
StringBuilder ExpireDay = new StringBuilder(256); ret = ReadCardInfo(1, CardNum, CardNum1, CardID, ref CardType, ExpireDay); MessageBox.Show(ret.ToString(), "提示信息");
if (ret != 0)
{
MessageBox.Show("读卡失败", "提示信息");
return; }
else
{
MessageBox.Show(CardNum.ToString() , "提示信息");
}
}我在form的closing事件中添加了com口的关闭函数,如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
int ret = 0;
ret = CloseCom(1);
if (ret != 0)
{
MessageBox.Show("关闭串口失败", "提示信息");
return;
}
else
{
MessageBox.Show("关闭串口成功", "提示信息");
}
}现在在运行程序以后,我每点击一次按钮都能成功读一次卡。
可是我现在的问题是,要求这个程序在运行时,随时都能读卡,而不需要人的参与,即不需要有点击按钮的动作。我该怎么做?望高手教我!
放一个Timer,定时地查询状态,有卡插入的话自动读卡。
呵呵
timer,有点不会用。
基本没什么问题了。。如果timer控件无法满足。那么你还可以做个随机数。不过也要用timer控件才能完成。。好了。。接分了楼主研究研究吧。
谢谢各位。