Punto Switcher
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2  :| |:
Total Commander -> Программное обеспечение

#16:  Author: alexey65536Location: Taganrog PostPosted: Mon May 23, 2011 11:57
    —
ask-rus wrote:
Кстати, PuntoSwitcher пишется раздельно.
Вот прямо так и пишется? Very Happy

#17:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Mon May 23, 2011 12:09
    —
"Жы", "шы" пиши через "и".

#18:  Author: ask-rusLocation: Russian Federation PostPosted: Mon May 23, 2011 12:29
    —
alexey65536 wrote:
Вот прямо так и пишется?

Неа, прямо так не пишется и уже исправлено, т. к. имелся в виду заголовок темы.

#19:  Author: Serge Yolkin PostPosted: Tue May 24, 2011 00:45
    —
ask-rus
Там портабелизация не очевидная, но, то-ли в ридми, то-ли в хелпе описана: сначала запустить, потом в настройках выбрать, где сохранять настройки, а потом руками (!) скопировать папку с настройками из профиля в папку программы. Но работает...

#20:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Oct 20, 2012 17:03
    —
Под Win8 x64 иногда ломается переключение раскладки по правому Ctrl. Версия Пунты последняя на данный момент.

Добавлено спустя 1 час 28 минут:

Банально пускаем Пунту с правами админа, чтобы решить проблему. На будущее стоит теперь запоминать, что с админом запускать, а что без.

#21:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Oct 20, 2012 20:21
    —
У неё и под админом не всё работает. Переключение раскладки на правильную при открытии меню не работает, если она запущена под админом, а приложение - нет, а удобная была бы фича. А так всегда запускаю под админом (из планировщика заданий), чтобы работала в программах, запущенных под админом.

#22:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Oct 20, 2012 20:42
    —
Как бы смешно это ни звучало, Пунта у меня используется только для одной цели. Very Happy
Win8 так и не подарил возможности менять раскладку на один Ctrl, "Ё" же выполняет другую функцию.

#23:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Oct 20, 2012 21:25
    —
У меня она тоже только для одной цели - для изменения раскладки текста по Shift+Pause и регистра по Scroll Lock+Pause. Интеллектуальное переключение на фиг вырубаю, переключение раскладки в менюшках криво работает. И то замечал глюки при переключении (если в буфере картинка, она пропадает), но тулза, которую я раньше использовал для перекодировки выделенного текста, ещё более глючная и древняя.

#24:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Oct 21, 2012 11:03
    —
Сегодня не запустился при старте Windows, хотя соответствующий флажок в программе установлен.

#25:  Author: jentoso PostPosted: Sun Oct 21, 2012 11:23
    —
ask-rus, у меня это проявлялось часто. Только добавление ярлыка, и снятие флажка, решало проблему.

#26:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Oct 21, 2012 11:24
    —
Меня больше убило как-то раз, когда то ли я, то ли она сама внезапно запустила вторую копию... и эта копия выругалась мне на каждую комбинацию клавиш, которую ей не удалось зарегистрировать, и после этого открыла диалог настройки клавиш, где ОЧИСТИЛА ВСЕ НАСТРОЙКИ, и сохранила эту пустоту в конфиг! Very Happy

#27:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Oct 21, 2012 11:39
    —
Перейду, однако, на скрипт AHK.

Добавлено спустя 20 минут:

Нашел кое-что, не проверял.

Изменяем текущую раскладку нажатием правой Ctrl
Code:
 $~RControl::LangSwitch(1)
 $~RControl up::LangSwitch(2)

 LangSwitch( iKeyDownUp=0 )
 {
 static tickLast
 IfEqual,iKeyDownUp,1
 { tickLast=%A_TickCount%
 return
 }
 IfEqual,iKeyDownUp,2
 If( A_TickCount-tickLast>200 )
 return

 HKL:=DllCall("GetKeyboardLayout", "uint",GetThreadOfWindow(), "uint")

 HKLnum:=DllCall("GetKeyboardLayoutList","uint",0,"uint",0)
 VarSetCapacity( HKLlist, HKLnum*4, 0 )
 DllCall("GetKeyboardLayoutList","uint",HKLnum,"uint",&HKLlist)
 loop,%HKLnum%
 { if( NumGet( HKLlist, (A_Index-1)*4 ) = HKL )
 { HKL:=NumGet( HKLlist, mod(A_Index,HKLnum)*4 )
 break
 }
 }
 ControlGetFocus,ctl,A
 SendMessage,0x50,0,HKL,%ctl%,A ;WM_INPUTLANGCHANGEREQUEST

 ;show traytip
 LOCALE_SENGLANGUAGE=0x1001
 LOCALE_SENGCOUNTRY=0x1002
 VarSetCapacity( sKbd, 260, 0 )
 VarSetCapacity( sCountry, 260, 0 )
 DllCall("GetLocaleInfo","uint",HKL>>16,"uint",LOCALE_SENGLANGUAGE, "str",sKbd, "uint",260)
 DllCall("GetLocaleInfo","uint",HKL & 0xFFFF,"uint",LOCALE_SENGCOUNTRY, "str",sCountry, "uint",260)
 traytip,%sKbd%,%sCountry%
 SetTimer,REMOVE_TOOLTIP,500 ;0.5 second
 return
 REMOVE_TOOLTIP:
 SetTimer,REMOVE_TOOLTIP,off
 traytip
 return
 }

 ;returns first thread for the ;sets optional to pipe | separated thread list for the GetProcessThreadOrList( processID, byRef list="" )
 {
 ;THREADENTRY32 {
 THREADENTRY32_dwSize=0 ; DWORD
 THREADENTRY32_cntUsage = 4 ;DWORD
 THREADENTRY32_th32ThreadID = 8 ;DWORD
 THREADENTRY32_th32OwnerProcessID = 12 ;DWORD
 THREADENTRY32_tpBasePri = 16 ;LONG
 THREADENTRY32_tpDeltaPri = 20 ;LONG
 THREADENTRY32_dwFlags = 24 ;DWORD
 THREADENTRY32_SIZEOF = 28

 TH32CS_SNAPTHREAD=4

 hProcessSnap := DllCall("CreateToolhelp32Snapshot","uint",TH32CS_SNAPTHREAD, "uint",0)
 ifEqual,hProcessSnap,-1, return

 VarSetCapacity( thE, THREADENTRY32_SIZEOF, 0 )
 NumPut( THREADENTRY32_SIZEOF, thE )

 ret=-1

 if( DllCall("Thread32First","uint",hProcessSnap, "uint",&thE ))
 loop
 {
 if( NumGet( thE ) >= THREADENTRY32_th32OwnerProcessID + 4)
 if( NumGet( thE, THREADENTRY32_th32OwnerProcessID ) = processID )
 { th := NumGet( thE, THREADENTRY32_th32ThreadID )
 IfEqual,ret,-1
 ret:=th
 list .= th "|"
 }
 NumPut( THREADENTRY32_SIZEOF, thE )
 if( DllCall("Thread32Next","uint",hProcessSnap, "uint",&thE )=0)
 break
 }

 DllCall("CloseHandle","uint",hProcessSnap)
 StringTrimRight,list,list,1
 return ret
 }

 ; Returns thread owning specified window handle
 ; default = Active window
 GetThreadOfWindow( hWnd=0 )
 {
 IfEqual,hWnd,0
 hWnd:=WinExist("A")
 DllCall("GetWindowThreadProcessId", "uint",hWnd, "uintp",id)
 GetProcessThreadOrList( id, threads )
 IfEqual,threads,
 return 0
 CB:=RegisterCallback("GetThreadOfWindowCallBack","Fast")
 lRet=0
 lParam:=hWnd
 loop,parse,threads,|
 { NumPut( hWnd, lParam )
 DllCall("EnumThreadWindows", "uint",A_LoopField, "uint",CB, "uint",&lParam)
 if( NumGet( lParam )=true )
 { lRet:=A_LoopField
 break
 }
 }
 DllCall("GlobalFree", "uint", CB)
 return lRet
 }

 GetThreadOfWindowCallBack( hWnd, lParam )
 {
 IfNotEqual,hWnd,% NumGet( 0+lParam )
 return true
 NumPut( true, 0+lParam )
 return 0
 }



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2  :| |:
Page 2 of 2

Powered by phpBB © 2001, 2005 phpBB Group