Q&A

  • 프린터제어판의 기본프린터를 코딩으로 변경할수 있나요?
퀵레포트 인쇄시 기본프린터를 잠시 변경하는 것은 있어도



제어판>프린터의 기본프린터 를 변경하는 내용은 아무리 뒤져도 없네요...



정말 중요한 문제걸랑요.... 꼭 해결방법이 있었으면... 부탁.부탁

1  COMMENTS
  • Profile
    천명 2001.11.24 19:54
    저도 다른분이 알려주셔서 쓰던건데 참조해 보세요

    즐코되세요



    procedure SetDefaultPrinter(pageWidth,pageLength:integer);

    var

    TamanoDevice : longint;

    Caracteristicas : TDeviceMode;

    DevMode : PDeviceMode;

    Devicemode : THandle;

    Impresora : THandle;

    hDMode : THandle;

    ADevice : array[0..255] of char;

    ADriver : array[0..255] of char;

    APort : array[0..255] of char;

    begin

    Printer.GetPrinter(ADevice,Adriver,Aport,hDMode);

    OpenPrinter(ADevice,Impresora,nil);

    TamanoDevice := DocumentProperties(0,Impresora,ADevice,Caracteristicas, Caracteristicas,0);

    DeviceMode := GlobalAlloc(GHND, TamanoDevice);



    if DeviceMode <> 0 then

    begin

    DevMode := GlobalLock(DeviceMode);

    if DocumentProperties(0,Impresora,ADevice,DevMode^,DevMode^,DM_OUT_BUFFER) < 0 then

    HMessagedlg('프린터 초기설정 에러!',mtError,[mbok],0);



    DevMode^.dmPaperSize := 0;

    DevMode^.dmPaperLength := pagelength;

    DevMode^.dmPaperWidth := pageWidth;

    DevMode^.dmOrientation := DMORIENT_LANDSCAPE;

    DevMode^.dmFields := DM_PAPERSIZE or DM_PAPERLENGTH or DM_PAPERWIDTH or DM_ORIENTATION;



    if DocumentProperties(0,Impresora,ADevice,DevMode^,DevMode^,DM_IN_BUFFER or DM_OUT_BUFFER or DM_UPDATE) < 0 then

    HMessagedlg('프린터 초기설정 에러!',mtError,[mbok],0);



    GlobalUnlock(DeviceMode);

    GlobalFree(DeviceMode);

    // Devicemode := NULL ;

    end

    else HMessagedlg('메모리를 할당할수 없습니다.',mtError,[mbok],0);

    ClosePrinter(Impresora);

    end;





    뭉치 wrote:

    > 퀵레포트 인쇄시 기본프린터를 잠시 변경하는 것은 있어도

    >

    > 제어판>프린터의 기본프린터 를 변경하는 내용은 아무리 뒤져도 없네요...

    >

    > 정말 중요한 문제걸랑요.... 꼭 해결방법이 있었으면... 부탁.부탁