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
Skif_off



PostPosted: Thu Mar 07, 2019 18:46    Post subject: Reply with quote

http://forum.wincmd.ru/viewpost.php?p=129148
Code:
Opt("WinWaitDelay", 0)

Бессмысленное число, только процессор тр... теребить, 100 с головой хватит.
Code:
  WinWaitActive("[CLASS:TTOTAL_CMD]")
  $WSS = ObjCreate('WScript.Shell')
  $WSS.AppActivate($PID)

???
И проще $PID проверить, прежде чем снова теребить, окно не появится быстрее, если искать его в несколько раз чаще.
WinWaitActive() чаще используют если что-то запустили и теперь ждут евонное окно.
Code:
#NoTrayIcon
Opt("WinWaitDelay", 100)
Local $hWnd = WinGetHandle("[CLASS:TTOTAL_CMD]")
If $hWnd Then
  Local $TC = $CmdLine[1], $PFix = '', $n = 4
  WinClose($hWnd)
  ProcessWaitClose(WinGetProcess($hWnd))
  If @OSArch <> 'x86' Then
    If StringRight($TC, 6) = '64.EXE' Then
      $n = 6
    Else
      $PFix = '64'
    EndIf
  EndIf
  Local $PID = Run(StringLeft($TC, StringLen($TC) - $n) & $PFix & '.EXE')
  If $PID <> 0 Then
    $hWnd = WinWait("[CLASS:TTOTAL_CMD]")
    WinActivate($hWnd)
  EndIf
EndIf
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group