|
|
|
รบกวนที่ ครับ เรื่อง CashDrawer สั้งเปิด จากโปรแกรม |
|
|
|
|
|
|
|
สั่งปริ้นผ่าน Driver Printer หรือเปล่าครับ ถ้าใช้เข้าไปกำหนดในส่วนของ Driver Printer ได้เลยครับ ว่าจะให้ CashDrawer มันเด้งออกมาตอนก่อนปริ้น หรือว่าหลังปริ้นเสร็จแล้ว แต่ถ้าไม่ได้สั่งปริ้นผ่าน Driver คงต้องขอ SDK หรือ Command Manual เค้ามาแล้วละครับว่าต้องส่งคำสั่งอะไรไป
|
|
|
|
|
Date :
2012-01-03 09:55:19 |
By :
Nameless |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะเป็นอย่างหลังนะครับ เพราะ จะปริ้น หรือไม่ปริ้นก้ได้ แต่จะให้ ลิ้นชักมันเด้ง ออก *0*
ยัง งงๆ กับ Code อยู่เลย
มี Code บางส่วน ที่หามีได้นะครับ รบกวนช่วยดูหน่อยครับ
Code (C#)
public class CashDrawerClass
{
CashDrawer myCashDrawer;
PosExplorer explorer;
public CashDrawerClass()
{
explorer = new PosExplorer();
DeviceInfo ObjDevicesInfo = explorer.GetDevice("CashDrawer");
myCashDrawer = explorer.CreateInstance(ObjDevicesInfo); //ตอนrun มัน Error ตรงนี้ครับ
}
public void OpenCashDrawer()
{
myCashDrawer.Open();
myCashDrawer.Claim(1000);
myCashDrawer.DeviceEnabled = true;
myCashDrawer.OpenDrawer();
myCashDrawer.DeviceEnabled = false;
myCashDrawer.Release();
myCashDrawer.Close();
}
}
|
|
|
|
|
Date :
2012-01-03 17:33:24 |
By :
tstctun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
public static bool OpenCashDrawer1( string szPrinterName)
{
//27,112,48,55,121
Int32 dwError = 0, dwWritten = 0;
IntPtr hPrinter = new IntPtr(0);
DOCINFOA di = new DOCINFOA();
bool bSuccess = false;
di.pDocName = "OpenDrawer";
di.pDataType = "RAW";
if( OpenPrinter( szPrinterName, out hPrinter, 0 ) )
{
if( StartDocPrinter(hPrinter, 1, di) )
{
if( StartPagePrinter(hPrinter) )
{
int nLength;
byte[] DrawerOpen = new byte[] { 07 };
nLength = DrawerOpen.Length;
IntPtr p = Marshal.AllocCoTaskMem(nLength);
Marshal.Copy(DrawerOpen, 0, p, nLength);
bSuccess = WritePrinter(hPrinter, p, DrawerOpen.Length, out dwWritten);
EndPagePrinter(hPrinter);
Marshal.FreeCoTaskMem(p);
}
EndDocPrinter(hPrinter);
}
ClosePrinter(hPrinter);
}
if( bSuccess == false )
{
dwError = GetLastError();
}
return bSuccess;
}
ส่วน อันนี้เป็น Command Manual ถ้าแค่อยาก กด ปุ๋ม button แล้วให้ลิ้นชักเปิด ควรจะตัด Code ส่วนไหนออก ครับ
|
|
|
|
|
Date :
2012-01-03 17:37:56 |
By :
tstctun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมยังไม่เคยเขียนติดต่อกับ CashDrawer แบบที่ส่งเป็น Command ไปเหมือนกันครับ ที่เคยใช้จะเป็นแบบไปตั้งค่าในส่วนของ Propertie ของ Driver Printer เพราะตรงส่วนนั้นจะมีให้เลือกเลย
ถ้าเป็นแบบส่ง Command ไปนั้น ตอนซื้อมาเค้ามีให้อะไรเรามาบ้างครับ SDK หรือ Software Demo มาให้หรือเปล่า ถ้ามีให้ เปิดของเค้าใช้ดูเลยว่าสั่งแล้ว CashDrawer เปิดออกไม แล้ว Command ที่ส่งไปเหมือนเราหรือไม จะเร็วกว่านะครับ
|
|
|
|
|
Date :
2012-01-03 22:03:59 |
By :
Nameless |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เท่าที่ เคย ดู อ่ะครับ มัน เหมือนส่งคำสั้ง ไป ที่ Port ของ คอมนะครับ เพราะลิ้นชักบางที มันต่อกับคอม โดยตรงอ่ะครับ
|
|
|
|
|
Date :
2012-01-05 11:43:41 |
By :
tstctun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ทราบว่า ตอนนี้เขียนได้หรือยังครับ
ถ้าได้ รบกวนขอดูเป็นกรณีศึกษาจักขอบพระคุณอย่างสูงครับผม
|
|
|
|
|
Date :
2015-03-22 23:25:38 |
By :
mailo_sa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|