200分 送分题 要立即结帖 (200分)

C

crazyD

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在程序中打开控制面板中的“打印机”窗体
需要测试通过的代码
cbl文件中惟独没有打印机窗体
 
打印机状态检测

可用CREATEFILE以PRN为文件名生成一个文件,检测返回值,若成功则打印机可用,否则显示打印机故障。生成关于PRN的文件句柄后,可象普通文件一样向文件写入内容,比如WRITE,写完后关闭文件。
//从并行端口读取打印机状态
function GetPrinterStatus:byte;
asm
MOV DX,$379;
IN AL,DX;
end;

//获取打印机是否出错
function CheckPrinter:boolean;
var
temp:byte;
begin

temp:=GetPrinterStatus;
Result:=not ( ((temp and $80)=0) //打印机忙
or ((temp and $20)<>0) //打印机缺纸
or ((temp and $10)=0) //打印机未联机
or ((temp and $08)=0) );
//打印机出错;
end;
 
楼上的代码在WIN2000下不能使用!
 
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec('RUNDLL32 shell32,Control_RunDLL main.cpl @2', SW_SHOW);
end;

//
shell32,Control_RunDLL main.cpl @n - открыть модуль Панели управления из MAIN.CPL, где n - 0=Mouse, 1=Keyboard, 2=Printer, 3=Fonts, 4=Energie;
 
DFW 上不但有调出来的代码,还有用代码添加和删除打印机、修改参数等的完整代码。
 
你用“打印机”在论坛里搜一下,有很多,我见过的;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
975
SUNSTONE的Delphi笔记
S
D
回复
0
查看
743
DelphiTeacher的专栏
D
顶部