'분류 전체보기'에 해당되는 글 324건

  1. 2013.04.29 어셈블리어 __nop() 의 용도.
  2. 2013.04.26 프로세스 이름으로 프로세스 id 또는 핸들 찾기
프로그래밍/c++2013. 4. 29. 17:10

nop는 No Operation의 약자로 실제로는 계산하지 않지만 cpu에서 딜레이를 주기위해 사용되는 어셈블리어

이 어셈블리어를 통한 다양한 사용 방법들

1. 디버깅시 특정 위치에 브레이크 포인트를 걸고 싶을때.

if( bTest )

{

// 이곳에 브레이크 포인터를 걸고 싶을때

__nop();     // 이렇게 __nop(); 또는 _asm nop; 라는 어셈블리어를 추가하면 이곳에 브레이크 포인터를 걸수있음.

}

 

2. 추후 추가 예정.



Posted by GaePein
프로그래밍/c++2013. 4. 26. 11:50

 

int findProcID( CString strProcName )

{

int nProcID = 0;

strProcName .MakeUpper(); // 문자열 비교를 하기전 강제로 모두 대문자로 바꿔줌.

HANDLE hSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );

if ( (int)hSnapshot != -1 )
{

PROCESSENTRY32 pe32 ;
pe32.dwSize=sizeof(PROCESSENTRY32);
BOOL bContinue ;
CString tempProcessName;

if ( Process32First ( hSnapshot, &pe32 ) )
{

//프로세스 목록 검색 시작
do
{

tempProcessName = pe32.szExeFile; //프로세스 목록 중 비교할 프로세스 이름;
tempProcessName.MakeUpper();
if( ( tempProcessName.Find(strProcName , 0) != -1 ) )
{

HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, 0, pe32.th32ProcessID ); //프로세스 핸들 얻기
if( hProcess )
{

       nProcID = pe32.th32ProcessID;

// 응용해서 프로세스 핸들도 리턴이 가능하다.


}

}
bContinue = Process32Next ( hSnapshot, &pe32 );

} while ( bContinue );

}
CloseHandle( hSnapshot );

}

return nProcID ;

}



Posted by GaePein