C++ Win32 API打印不要求用户输入

C++ Win32 API打印不要求用户输入,c++,c,winapi,C++,C,Winapi,我们有类似的东西 我进入我的控制面板>>打印机和设备>>打印机>>打印机首选项,在这里我分配了一个4位pin码 我从Word或Excel启动打印。。。转到打印机>>检索作业>>选择我的打印作业并输入我的pin码 只有到那时我的工作才会被打印出来 现在,我们的应用程序有两个用于打印的源代码 从应用程序启动打印时,打印会立即完成。。。。也就是说,它不会将我的作业存储在队列中并等待pin。。。但只要马上打印就行了 一些源代码 bResult = OpenPrinter(szDevice, &h

我们有类似的东西

我进入我的控制面板>>打印机和设备>>打印机>>打印机首选项,在这里我分配了一个4位pin码

我从Word或Excel启动打印。。。转到打印机>>检索作业>>选择我的打印作业并输入我的pin码

只有到那时我的工作才会被打印出来

现在,我们的应用程序有两个用于打印的源代码

从应用程序启动打印时,打印会立即完成。。。。也就是说,它不会将我的作业存储在队列中并等待pin。。。但只要马上打印就行了

一些源代码

bResult = OpenPrinter(szDevice, &hPrinter, NULL);
// szDevice contains printer name
startDocPrtInfo.pDocName = msg;
startDocPrtInfo.pOutputFile = NULL;
startDocPrtInfo.pDatatype = "RAW";
bPrntErr = (StartDocPrinter(hPrinter,1,(LPBYTE)&startDocPrtInfo) == 0);

WritePrinter(hPrinter, &buffer[2], i, &cnt);
EndDocPrinter(hPrinter);
ClosePrinter(hPrinter);
该代码正在打印给定文档,但它不会等待用户输入其pin码

问题:如何让上面的代码像其他应用程序一样等待?这里有我错过的场景吗

给你更多的细节

我们在同一应用程序中还有另一个打印子程序,它与desierd一样工作。。即,等待用户输入其PIN

但是,子例程使用TextOut方法而不是WritePrinter

知道我使用WritePrint打印方法时为什么打印没有等待吗

谢谢你的期待,我解决了这个问题

没有代码更改。 在打印机设置中,我们需要取消选中允许转义序列

感谢tho论坛回答这个问题

将经常带着更多的问题和解决方案访问其他人提出的问题

祝你好运
一个无知的程序员:

当你像那样直接打印到打印机上时,你绕过了正常的打印管道。这确实是一种很好的方式,可以在没有某种自定义打印监视器的情况下打印内容,这样它就可以向特定用户收取打印页面的费用。您需要与LAN管理员联系,以了解执行此操作的软件类型,以便与供应商联系以获得支持。此功能来自打印机。我从打印机首选项对话框中指定了一个4位PIN。一些打印机称之为存储打印等。。。因此,我相信这是一种打印功能,而不是一些外部软件……此外,我们的文本输出代码在打印机==外部软件中工作良好。Microsoft不编写打印机驱动程序。当您使用TextOut时,您没有使用WritePrinter,这将通过打印机驱动程序正常运行。这无疑是避免这一麻烦的最好办法。