如何修改打印机属性?
在WINDOWS控制面板中可修改打印机属性,在程序中也可以,但只是暂时的,每次程序退出再运行时打印机又回到原来设置,请问有没有办法不必每次启动程序都设置一遍?(如有两个应用程序对打印机有不同爱好!) 问题点数:100、回复次数:4Top
1 楼halibut(g3)回复于 2003-01-09 08:59:03 得分 0
把你的打印机参数保存下来,程序启动的时候读出来初始化一次不就行了吗!Top
2 楼xuv2002(XuWei)回复于 2003-01-09 09:23:47 得分 0
不行Top
3 楼jishiping(JSP 季世平)回复于 2003-01-09 10:03:57 得分 100
首先,我们需要知道用户设定后的打印机的信息,代码如下:
UINT DevMode;
char Device[65], Driver[65], Port[17];
Printer()->GetPrinter(Device, Driver, Port, DevMode);
DEVMODE* pdm = (DEVMODE*)GlobalLock((HANDLE)DevMode);
if (pdm != NULL) {
// 这时的 pdm 指向的结构DEVMODE就是当前打印机的设定值
// 你可以保存需要的参数,供下次程序启动时使用。pdm->
// dmPaperSize, pdm->dmPaperLength, pdm->dmPaperWidth
// 就是打印机的纸张大小
GlobalUnlock((HANDLE)DevMode);
}
设定打印机的参数:
UINT DevMode;
char Device[65], Driver[65], Port[17];
Printer()->GetPrinter(Device, Driver, Port, DevMode);
DEVMODE* pdm = (DEVMODE*)GlobalLock((HANDLE)DevMode);
if (pdm != NULL) {
// 这儿修改打印机的参数,就是修改 pdm 指向的结构的值
GlobalUnlock((HANDLE)DevMode);
Printer()->SetPrinter(Device, Driver, Port, DevMode);
}
注意,对于函数GetPrinter和SetPrinter的最后一个参数,BCB的帮助里写的
类型int,而头文件里是unsigned。如果使用int类型的话,程序就会出错。Top
4 楼Adayuer(饭碗饭碗饭碗你在哪里?)回复于 2003-01-10 21:44:01 得分 0
关注Top
相关问题
- 如何修改打印机属性?
- 如何物理性改变打印机的属性?
- 如何,得到,打印机的当前属性设置。。
- 如何设置打印机属性中的设置
- 请教 c/c++程序员,如何修改实际的默认打印机的纸张属性,我用以下方法只能 改变 printer 对象,并不改变打印机的实际值
- 如何在程序中实现对Windows系统下控制面板中关于打印机的属性的控制,比如,我想在程序中修改打印机的走向(纵向、横向)
- 如何在程序中实现对Windows系统下控制面板中关于打印机的属性的控制,比如,我想在程序中修改打印机的走向(纵向、横向)
- 如何在程序中实现对Windows系统下控制面板中关于打印机的属性的控制,比如,我想在程序中修改打印机的走向(纵向、横向)
- 如何修改打印机中默认的纸张大小
- 如何修改打印机中的纸张的默认值




