Q&A

  • 실행파일명으로 윈도우를 찾으려면
안녕하세요.

  hHWND := FindWindow(PChar('SciCalc'), nil); //SciCalc->계산기
  
위의 예제 처럼 Class Name 이나 Window Name 을 아는 경우는
쉽게 찾을 수 있는 데요..

Class Name, Window Name 을 모르고 실행파일명(calc.exe)만
알 때 어떻게 핸들값을 얻을수 있나요..

그럼.. 즐거운 하루 되세요..





5  COMMENTS
  • Profile
    꿈의대화 2004.08.13 00:47
    .
  • Profile
    한승구 2004.08.13 02:17

    말씀하신대로 팁란에 찾아 봤는데요..
    핸들값을 리턴하지는 않더군요..
    핸들값을 리턴 받으려면 어찌해야되는지..

  • Profile
    최용일 2004.08.13 03:28
    안녕하세요. 최용일입니다.

    질답란 검색해보세요.

    예전에 제가 써둔 답변이 있을겁니다.

    ^^ 항상 즐코하세요...

  • Profile
    한승구 2004.08.13 18:44


    검색을 계속 해 보았는데요..
    아무리 찾아봐도 제가 원하는 내용은 없는데요..
    다시 한번 도와 주시면 안될까요..
    그럼.. 즐거운 하루 되세요..
  • Profile
    모영철 2004.08.13 19:51
    흠 전 분명히 찾아서 썼었는데 말이죠....

    이 펑션은 실행파일명을 가지고 실행 되있는 프로세스를 죽이는겁니다.

    어느분께서 올려 주셨는지 제가 뭘 고쳤었는지는 잘기억이 안납니다.

    최용일님이 올려 주신건지...흠....

    function TerminateIsRun(sFindFile : String): Boolean;
    var
      peList : TProcessEntry32;
      hL, hP : THandle;
    begin
      Result := False;
      peList.dwSize := SizeOf(TProcessEntry32);
      hL             := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      if Process32First(hL, peList) then begin
      repeat
       if CompareText(peList.szExeFile, sFindFile) = 0 then begin
         hP := OpenProcess(PROCESS_ALL_ACCESS, TRUE, peList.th32ProcessID);
         TerminateProcess(hP, 0);
         Result := True;
         end;
       until not Process32Next(hL, peList);
      end;
      CloseHandle(hL);
    end;