Q&A

  • 익스플로로 모두 닫는 함수에서 궁금한 것입니당..
어느 분이 답변해 주신 게시판 내용의 글중에서염..
아래와 같이 모두 작성했거든여..

function EnumWindowsProc(Wnd: HWND):Bool;stdcall;// 열려있는 익스 모두 닫는 함수
var
   ClassName : string;
begin
   if IsWindowVisible(Wnd) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
      (HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow)) and
      ((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0) then begin
      SetLength (ClassName, 100);
      GetClassName (Wnd, PChar (ClassName), Length (ClassName));
      ClassName := PChar (ClassName);
      if ClassName = 'IEFrame' then begin
          PostMessage(Wnd,WM_CLOSE,0,0);
       //   PostMessage(Wnd,WM_QUIT,0,0);
      end;
       end;

end;

procedure TForm1.Button26Click(Sender: TObject);

  var
   i : integer;
begin
   EnumWindows(@EnumWindowsProc,i);
end;

이렇게 하고 컴파일 하니 익스플로러 창은 모두 닫히긴 하는데여
아래 에러 메세지 두개가 컴파일할때마다 항상 떠서여..

[Warning] wapc.pas(190): Return value of function 'EnumWindowsProc' might be undefined
  [Warning] wapc.pas(197): Variable 'i' might not have been initialized

먼뜻인지 알려 주시면 넘 감사하겠습니다..
1  COMMENTS
  • Profile
    Crazy 2004.02.10 01:52
    안녕하세요.
    1. [Warning] wapc.pas(190): Return value of function 'EnumWindowsProc' might be undefined
    2.  [Warning] wapc.pas(197): Variable 'i' might not have been initialized

    1. Return 메시지 뜻은 변수선언을 해놓고 사용하지 않았다는 것입니다.
    Function 으로 선언하면 Return 은 되돌릴 변수로 선언하지 않아도 사용할수가 있습니다.
    2. i 변수가 초기화가 안됐다는 뜻입니다.
    이벤트 구문을 보니 i 변수는 사용도 안했는데 선언만 했으니
    당연히 초기화도 안됐다고 뜨겠죠

    실행하는 데는 별 문제는 없습니다.
    그럼.