INtime Tech

INtime Top


INtime ÇÁ·Î¼¼½º ÀÌÁß ±âµ¿ÀÇ °ËÃâ


´ÙÁß ±âµ¿ÀÇ ¹æÁö

INtime ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î¼¼½º¸¦ ½Ã½ºÅÛ»ó¿¡ ´ÙÁß ±âµ¿½ÃŰ°í ½ÍÁö ¾ÊÀº °æ¿ì µîÀº, ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ´ÙÁß ±âµ¿ÀÇ ÆÇ´ÜÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 void  main(void)
 {
    RTHANDLE        hMyProc;
    RTHANDLE        hTarget;
    char            sName[] ="2RUN";    // µ¶Æ¯ÇÑ Ä«Å»·Î±× ¸íĪ
 
    // ·çÆ® ÇÁ·Î¼¼½ºÀÇ ÇÚµéÀ» ÃëµæÇÑ´Ù
    hRootProcess    = GetRtThreadHandles(ROOT_PROCESS);
 
    // ÀÚÇÁ·Î¼¼½ºÀÇ ÇÚµéÀ» ÃëµæÇÑ´Ù
    hMyProc         = GetRtThreadHandles(THIS_PROCESS);
 
    // ·çÆ® ÇÁ·Î¼¼½º¿¡ ÀÚÇÁ·Î¼¼½ºÀÇ Ä«Å»·Î±×(µî·Ï)¸¦ °ËÃâÇÒ ¼ö ÀÖ´Â °æ¿ì
    // ÀÌ¹Ì °¡µ¿Çϰí ÀÖ´Ù°í ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù.ŸÀÓ ¾Æ¿ôÄ¡´Â 0À¸·Î¼­ Áï¼®¿¡¼­ È®ÀÎ.
    if( (hTarget = LookupRtHandle( hRootProcess, sName ,0 )) != BAD_RTHANDLE ){
 
        // ·è ¿Ã¶ó°¥ ¼ö ÀÖ¾ú´ø ÇÚµéÀÌ ½ÇÀçÇÏ´Â ¿ÀºêÁ§Æ®Àϱ
        // ¾ö¹ÐÇÏ°Ô È®ÀÎÇÕ´Ï´Ù.
        if( GetRtHandleType( hTarget ) == PROCESS_TYPE ){
            printf("2Á⵿߱ °ËÃâÇßÀ¸¹Ç·Î Á¾·áÇÏ´Â \n");
            return;
        }
    }
 
    // ·çÆ® ÇÁ·Î¼¼½º¿¡ ÀÚÇÁ·Î¼¼½ºÀÇ Ä«Å»·Î±×¸¦ ½Ç½ÃÇÑ´Ù.
    // īŻ·Î±×´Â ÀÌ¹Ì µî·ÏÀÌ ÀÖ´Â °æ¿ì ½ÇÆÐ¿¡ ³¡³ª¹Ç·Î, ÀüÅëÀûÀ¸·Î ¾ÈīŸ·Î±×(»èÁ¦)
    // (À»)¸¦ ¹«Á¶°Ç ¹ßÇàÇÑ ÈÄ ½Ç½ÃÇÑ´Ù.
    UncatalogRtHandle( hRootProcess, sName );
    CatalogRtHandle(  hRootProcess, hMyProc ,sName ); 

¶Ç ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î¼¼½ºÀÇ Á¾·á½Ã¿¡´Â, ÇÁ·Î¼¼½º¸íÀÇ Ä«Å»·Î±×¸¦ ¾ø¾Öµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.

    // À̺¥Æ®¸¦ ±â´Ù¸³´Ï´Ù
    while (RtNotifyEvent(RT_SYSTEM_NOTIFICATIONS | RT_EXIT_NOTIFICATIONS,
            WAIT_FOREVER,
            &eiEventInfo))
    {
        switch(eiEventInfo.dwNotifyType)
        {
        case TERMINATE:
            // TODO: ÀÌ ÇÁ·Î¼¼½º¸¦ Á¾·áÇÒ ¶§ÀÇ Ã³¸®
 
            // Á¾·á½Ã¿¡ īŻ·Î±×¸¦ »èÁ¦ÇÕ´Ï´Ù
            UncatalogRtHandle( hRootProcess, sName );
 
            // ȯ°æÀ» Ŭ¸° ¾÷ ÇÕ´Ï´Ù
            Cleanup();  // ¿©±â·ÎºÎÅÍ µ¹¾Æ¿Ã °ÍÀº ¾ø½À´Ï´Ù

»ùÇà ÇÁ·Î±×·¥

file2run.lzh ...VisualStudio6.0project

 


HOME | INtime