Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Как заставить TC перечитать панель? 
Author Message
botace



PostPosted: Sun Oct 09, 2005 01:00    Post subject: Reply with quote

Неа, в FsInit например сразу ищи для своего процесса:
Code:

struct EnumWindowsParam {
   DWORD   dwPID;
   HWND hFoundWnd;
};

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM l)
{
   EnumWindowsParam* pParam = ( EnumWindowsParam*)l;
   DWORD dwPID = 0;
   ::GetWindowThreadProcessId( hWnd, &dwPID);
   if( pParam->dwPID == dwPID)
   {
      std::vector< char > vClass( 128, 0);
      if( ::GetClassName( hWnd, &vClass[ 0], (int)vClass.size()) && !stricmp( &vClass[ 0], "TTOTAL_CMD"))
      {
         pParam->hFoundWnd = hWnd;
         return FALSE;
      }
   }
   return TRUE;
}
...
...
EnumWindowsParam param = { GetCurrentProcessId(), NULL };
::EnumWindows( EnumWindowsProc, LPARAM( &param));
if( ::IsWindow( param.hFoundWnd))
{
    ...
}

Мона и более грубым и менее совместимым по виндам способом. Но, это если захочешь Smile
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group