procedure TForm1.ButtonClick(Sender: TObject); begin ComboBox1.Clear; ComboBox1.Items.Assign(Printer.Printers); if ComboBox1.Items.CommaText='' then Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0); else Form1.Print; end;
1 读注册表 2 用EnumPrinters The EnumPrinters function enumerates available printers, print servers, domains, or print providers. BOOL EnumPrinters( DWORD Flags, // printer object types LPTSTR Name, // name of printer object DWORD Level, // information level LPBYTE pPrinterEnum, // printer information buffer DWORD cbBuf, // size of printer information buffer LPDWORD pcbNeeded, // bytes received or required LPDWORD pcReturned // number of printers enumerated );
Procedure TForm1.Button1Click(Sender:TObject); var appname:array[0..256] of char; KeyName:array[0..256] of char; DefaultString:array[0..256] of char; ReturnedString: array[0..256] of char; begin appName:='Windows'; keyname='device'; GetProfileString(appName,KeyName,DefaultString,RetrunedString,Sizeof(ReturnedString)); Edit1.text:=ReturnedString end;
Procedure TForm1.Button1Click(Sender:TObject); var appname:array[0..256] of char; KeyName:array[0..256] of char; DefaultString:array[0..256] of char; ReturnedString: array[0..256] of char; begin appName:='Windows'; keyname:='device'; GetProfileString(appName,KeyName,DefaultString,ReturnedString,Sizeof(ReturnedString)); Edit1.text:=ReturnedString end;
begin
ComboBox1.Clear;
ComboBox1.Items.Assign(Printer.Printers);
if ComboBox1.Items.CommaText=''
then Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0);
else Form1.Print;
end;
2 用EnumPrinters
The EnumPrinters function enumerates available printers, print servers, domains, or print providers. BOOL EnumPrinters(
DWORD Flags, // printer object types
LPTSTR Name, // name of printer object
DWORD Level, // information level
LPBYTE pPrinterEnum, // printer information buffer
DWORD cbBuf, // size of printer information buffer
LPDWORD pcbNeeded, // bytes received or required
LPDWORD pcReturned // number of printers enumerated
);
var
appname:array[0..256] of char;
KeyName:array[0..256] of char;
DefaultString:array[0..256] of char;
ReturnedString: array[0..256] of char;
begin
appName:='Windows';
keyname='device';
GetProfileString(appName,KeyName,DefaultString,RetrunedString,Sizeof(ReturnedString));
Edit1.text:=ReturnedString
end;
var
appname:array[0..256] of char;
KeyName:array[0..256] of char;
DefaultString:array[0..256] of char;
ReturnedString: array[0..256] of char;
begin
appName:='Windows';
keyname:='device';
GetProfileString(appName,KeyName,DefaultString,ReturnedString,Sizeof(ReturnedString));
Edit1.text:=ReturnedString
end;