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

C++빌더 Q&A
C++Builder Programming Q&A
[38887] Re:Re:Re: 아마도 헤더파일 문제인듯합니다. 프로세서 찾기 종료
smleelms [smleelms] 1174 읽음    2005-01-24 15:48
#include <tlhelp32.h>

하시면 될듯...  그리고 이소스도 참고해 보세요... excel.exe 를 쥑여(^^;)줍니다.
죽이고자 하는 프로세서로 대체하시면 됩니다..

void __fastcall TForm1::KillExcel()
{
    // TODO: Add your control notification handler code here
    HINSTANCE modKERNEL = GetModuleHandle(("KERNEL32.DLL"));

    CREATESNAPSHOT pCreateToolhelp32Snapshot;
    PROCESSWALK pProcess32First;
    PROCESSWALK pProcess32Next;

    // 동적 함수 할당
    pCreateToolhelp32Snapshot = (CREATESNAPSHOT)GetProcAddress(modKERNEL, "CreateToolhelp32Snapshot");
    pProcess32First = (PROCESSWALK)GetProcAddress(modKERNEL, "Process32First");
    pProcess32Next  = (PROCESSWALK)GetProcAddress(modKERNEL, "Process32Next");

    if (    NULL == pCreateToolhelp32Snapshot    ||
        NULL == pProcess32First        ||
        NULL == pProcess32Next    )
        return;
    PROCESSENTRY32 proc;
    proc.dwSize = sizeof(proc);

    HANDLE snapshot = pCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    /* Now that we have a snapshot of the system state, we simply
    * walk the list it represents by calling Process32First once,
    * then call Proces32Next repeatedly until we get to the end
    * of the list.
    */
    pProcess32First(snapshot, &proc);
    if( !stricmp(proc.szExeFile, "excel.exe"))
    {
        HANDLE ExcelProcess = OpenProcess(PROCESS_ALL_ACCESS, False, proc.th32ProcessID);
        TerminateProcess(ExcelProcess ,0);
        CloseHandle(ExcelProcess);

        CloseHandle(snapshot);
        return;
    }

    while ( pProcess32Next(snapshot, &proc) )
    {
        if( !stricmp(proc.szExeFile, "excel.exe"))
        {
            HANDLE ExcelProcess = OpenProcess(PROCESS_ALL_ACCESS, False, proc.th32ProcessID);
            TerminateProcess(ExcelProcess ,0);
            CloseHandle(ExcelProcess);
            break;
        }
    }

    CloseHandle(snapshot);
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
38865 프로그램 목록을 가져오고 싶습니다. 이성제 862 2005/01/21
38872     Re:프로그램 목록을 가져오고 싶습니다. 만복대.산수유 1330 2005/01/22
38886         Re:Re:애러가 나길래 고쳐서 사용할려 했는데 안되서 질문 올립니다 ㅠ 이성제 928 2005/01/24
38887             Re:Re:Re: 아마도 헤더파일 문제인듯합니다. 프로세서 찾기 종료 smleelms 1174 2005/01/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.