高分求教~!!!如何控制并口打印机!!!!!!(C#)

CN_Azure 2007-01-24 06:15:43
并口通讯需要一个inpout32.DLL
在程序中引用
class IO
{

[DllImport("inpout32.dll", EntryPoint = "Out32")]
public static extern void Output(int adress, int value);

[DllImport("inpout32.dll", EntryPoint = "Inp32")]
public static extern int Input(int adress);
}

现在想实现向并口传送指令,让打印机切纸。走纸一类的操作
但是我现在传送指令总是没放映
代码如下:
IO.Output(0x378, 0x1B6400); //第一个参数传递LPT1地址,第二个为指令
0x1B6400指令为切纸,但每次都没反应。
有人写过类似的DEMO么。
感激不尽~




...全文
646 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqhemengjie 2011-08-11
  • 打赏
  • 举报
回复
m.waitOne()哪里来的
yang_yifan 2007-02-06
  • 打赏
  • 举报
回复
private void SendCommand(string sCmd)
{
SerialPort sp = null;
try
{
m.WaitOne();
sp = new SerialPort(sPort);
sp.BaudRate = 9600;
sp.Open();
sp.WriteTimeout = 3000;
sp.WriteLine(sCmd);
sp.Close();
m.ReleaseMutex();
}
catch (Exception e)
{
if (sp != null) sp.Close();
m.ReleaseMutex();
throw e;
}
}


/// <summary>
/// Print String
/// </summary>
/// <param name="sPrint"></param>
public void PrintString(string sPrint)
{
StringBuilder sb = new StringBuilder();
sb.Append((char)10);
sb.Append(sPrint);
this.SendCommand(sb.ToString());
}

/// <summary>
/// Full Cut
/// </summary>
public void FullCut()
{
StringBuilder sb = new StringBuilder();
sb.Append((char)29);
sb.Append((char)86);
sb.Append(66);
sb.Append(0);
this.SendCommand(sb.ToString());
}

/// <summary>
/// Half Cut
/// </summary>
public void HalfCut()
{
StringBuilder sb = new StringBuilder();
sb.Append((char)10);
sb.Append((char)10);
sb.Append((char)10);
sb.Append((char)10);
sb.Append((char)27);
sb.Append((char)109);
this.SendCommand(sb.ToString());
}
CN_Azure 2007-02-01
  • 打赏
  • 举报
回复
自己顶
lao_bulls 2007-02-01
  • 打赏
  • 举报
回复
关注
CN_Azure 2007-02-01
  • 打赏
  • 举报
回复
DDD
CN_Azure 2007-01-31
  • 打赏
  • 举报
回复
顶下
CN_Azure 2007-01-30
  • 打赏
  • 举报
回复
有说明的。命令都是十六进制的。
可是应该怎么控制?
///这个是引入的DLL,操作并口通信的
class IO
{

[DllImport("inpout32.dll", EntryPoint = "Out32")]
public static extern void Output(int adress, int value);

[DllImport("inpout32.dll", EntryPoint = "Inp32")]
public static extern int Input(int adress);
}
///该DLL有个方法Output()
但是我现在传送指令总是没放映
代码如下:
IO.Output(0x378, 0x1B6400); //第一个参数传递LPT1地址,第二个为指令
0x1B6400指令为切纸,但每次都没反应。
为什么?

chaojitanke 2007-01-29
  • 打赏
  • 举报
回复
命令集里有各个命令的参数说明
chaojitanke 2007-01-29
  • 打赏
  • 举报
回复
找打印机的经销商要命令集
心晴Sunheart 2007-01-29
  • 打赏
  • 举报
回复
这个和打印机有关系,应该看一下打印机的文档
一般文档上都有比较详细的说明的
xinzhulu 2007-01-29
  • 打赏
  • 举报
回复
你用的是哪个型号的打印机呀,在Epson打印机中,切纸的指令是0x1B, 0x6d,是两个十六进制值
害怕飞的鸟 2007-01-29
  • 打赏
  • 举报
回复
DD
CN_Azure 2007-01-26
  • 打赏
  • 举报
回复
又一天过去了。。。
yang_yifan 2007-01-25
  • 打赏
  • 举报
回复
顶顶顶
xcq_summer 2007-01-25
  • 打赏
  • 举报
回复
没有用过阿 帮你DD
yang_yifan 2007-01-25
  • 打赏
  • 举报
回复
也帮顶
CN_Azure 2007-01-25
  • 打赏
  • 举报
回复
还是没有人知道么?
yang_yifan 2007-01-25
  • 打赏
  • 举报
回复
LZ找到方法帖出来,共同学习
yang_yifan 2007-01-25
  • 打赏
  • 举报
回复
跑来再顶下
CN_Azure 2007-01-24
  • 打赏
  • 举报
回复
呵呵。谢谢~
加载更多回复(1)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧