Open "LPT1" For Binary Access Write As #1
Put #1, , "N" & vbCrLf
Put #1, , "S2" & vbCrLf
Put #1, , "D10" & vbCrLf
'q400是水平位置坐标
'Q152是182/8=19表示纸的高度
Put #1, , "q485" & vbCrLf
Put #1, , "Q152,24" & vbCrLf
Put #1, , "ZB" & vbCrLf
'下面是打印一条直线
'Put #1, , "LO20,60,300,6" & vbCrLf
Put #1, , B
Put #1, , C
Close #1
Put #1, , "N" & vbCrLf
Put #1, , "S2" & vbCrLf
Put #1, , "D10" & vbCrLf
'q400是水平位置坐标
'Q152是182/8=19表示纸的高度
Put #1, , "q485" & vbCrLf
Put #1, , "Q152,24" & vbCrLf
Put #1, , "ZB" & vbCrLf
'下面是打印一条直线
'Put #1, , "LO20,60,300,6" & vbCrLf
Put #1, , B
Put #1, , C
Close #1
.net 下没一个类可以直接开 com 口,或 LPT 的推荐使用,.net 带的 printDocument 来做打印
用法和 VC 类似用 CreateFile 打开端口,用句柄实例华 FileStream
然后就可以写了代码具体忘记了,等那天在看见这贴子还没人会的话,我给你写今天太晚了
因为条码机(提供者)给了我一个DLL去打印...
但我要做是先打开LPT1口,
再把条码数据发送给它
然后在调用它的DLL
去打条码
http://www.kamalpatel.net/convertcsharp2vb.aspx
http://www.carlosag.net/tools/codetranslator/default.aspx
欢迎大家在此讨论关于.net的各种技术。1号群
我不知道你要给他传啥参数
就按你上门的代码翻译一下吧1) API 相关声明public struct SECURITY_ATTRIBUTES
{
public int nLength;
public int lpSecurityDescriptor;
public int bInheritHandle;
}
const uint GENERIC_READ = 0x80000000;
const uint GENERIC_WRITE = 0x40000000;
const uint FILE_SHARE_READ = 0x1;const uint INVALID_HANDLE_VALUE = uint.MaxValue;const uint OPEN_EXISTING = 3;[DllImport("kernel32.dll", SetLastError=true,CharSet=CharSet.Auto)]
static extern IntPtr CreateFile ( string lpFileName, uint dwDesiredAccess, uint dwShareMode, ref SECURITY_ATTRIBUTES lpSecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, uint hTemplateFile);
[DllImport("kernel32.dll", SetLastError=true,CharSet=CharSet.Auto)]
static extern bool CloseHandle( IntPtr hObject);
2) 写代码private void button1_Click(object sender, System.EventArgs e)
{
SECURITY_ATTRIBUTES sa;
sa.bInheritHandle=0;
sa.lpSecurityDescriptor =0;
sa.nLength=0;
IntPtr pHandle = CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, ref sa, OPEN_EXISTING, 0, 0);
uint u = (uint)pHandle;
if(u !=INVALID_HANDLE_VALUE)
{
using(FileStream fs = new FileStream(pHandle,FileAccess.ReadWrite))
{
using(System.IO.StreamWriter sw = new StreamWriter(fs,Encoding.Default))
{
sw.WriteLine("N");
sw.WriteLine("S2");
}
} CloseHandle(pHandle);
}
}