怎样判断用户已经安装好打印机
如果判断没有安装则给出一个提示

解决方案 »

  1.   

    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;  
      

  2.   

    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
    );
      

  3.   

    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;
      

  4.   

    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;
      

  5.   

    hansion3406(阿木)的是最简单的也是最好的。