Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15632] 블럭이 걸리는 이유가 뭘까요? SendMessage(HWND_BROADCAST
예성곤 [skyinmine] 1807 읽음    2016-01-25 18:38
아래의 소스코드로 컴파일은 완료되었으나...
실행시키면
어느 순간부터
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@Device));
의 응답이 없습니다.

어떤 문제인가요?

사용 OS는 Windows7 32bit 입니다.



/// 원 소스코드

procedure SetDefaultPrinter(PrinterName: string);
var
  I: Integer;
  Device: PChar;
  Driver: PChar;
  Port: PChar;
  HdeviceMode: THandle;
  aPrinter: TPrinter;
begin
  Printer.PrinterIndex := -1;
  GetMem(Device, 255);
  GetMem(Driver, 255);
  GetMem(Port, 255);
  aPrinter := TPrinter.Create;
  try
    for I := 0 to Printer.Printers.Count - 1 do
    begin
      if Printer.Printers[i] = PrinterName then
      begin
        aprinter.PrinterIndex := i;
        aPrinter.getprinter(device, driver, port, HdeviceMode);
        StrCat(Device, ',');
        StrCat(Device, Driver);
        StrCat(Device, Port);
        WriteProfileString('windows', 'device', Device);
        StrCopy(Device, 'windows');
        SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@Device));
      end;
    end;
  finally
    aPrinter.Free;
  end;
  FreeMem(Device, 255);
  FreeMem(Driver, 255);
  FreeMem(Port, 255);
end;

+ -

관련 글 리스트
15632 블럭이 걸리는 이유가 뭘까요? SendMessage(HWND_BROADCAST 예성곤 1807 2016/01/25
15633     Re:블럭이 걸리는 이유가 뭘까요? SendMessage(HWND_BROADCAST 정영훈 1867 2016/01/25
15635         Re:Re:블럭이 걸리는 이유가 뭘까요? SendMessage(HWND_BROADCAST 예성곤 2110 2016/01/26
15634         Re:Re:블럭이 걸리는 이유가 뭘까요? SendMessage(HWND_BROADCAST 예성곤 2115 2016/01/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.