Языковая панель средствами nncron

Обсуждение программ nnCron и nnCron LITE

Re: Языковая панель средствами nncron

Postby VKarpovich » Fri, 17 Jan 2014, 09:20

AlikasS wrote:нужно просто отображать текущий язык или и возможность менять раскладку?

Только язык - раскладку меняем средствами windows.
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby AlikasS » Fri, 17 Jan 2014, 09:25

плагины позволят подключить?
например из моей подписи.
p.s. пока не подключай ))
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Языковая панель средствами nncron

Postby VKarpovich » Fri, 17 Jan 2014, 09:35

Да плагины подключать можно. Просто чуть больше гемороя, чем без них. Я думал можно обойтись без плагинов. Но, наверное, придется с ними. И в этом отношении kbd_layout.spf + HINT вполне подходят. Но если у Вас есть еще варианты - готов выслушать.
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby WAndrey » Fri, 17 Jan 2014, 10:13

А какой офис стоит у вас? И не стоит ли в его составе компонент "службы текстового ввода" если мне память не изменяет. Насколько я помню, это именно ее рук дело, так как она определяет необходимость переключения раскладок для активного приложения. И клинит ее неимоверно, отчасти потому, что горе-писатели приложений не соблюдают рекомендации Майкрософт. И симптомы поведения как-раз один в один. И никакой "модифицированный" експлорер тут не причем.
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Языковая панель средствами nncron

Postby VKarpovich » Fri, 17 Jan 2014, 10:51

WAndrey wrote:А какой офис стоит у вас?

Офис, и всякие текстовые редакторы - отсутствуют вообще. Таких компьютеров у меня 37.

И никакой "модифицированный" експлорер тут не причем.

Я и не пытаюсь спорить по этому поводу, а только лишь констатирую факт - языковой панели нет и настройками windows ее не добавишь.
Если хотите проведите у себя эксперимент:
1) Настройте nncron для вызова по горячей клавише какого-нибудь файлового менеджера (это чтобы потом была возможность откатить все обратно). Например вот так:

#( Start_Far
WatchHotKey: "@+f"
Action:
START-APP: C:\Program files\Far\Far.exe
)#

2) Замените в ветке HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon в параметре shell explorer.exe на какой нибудь другой *.exe,
например notepad.exe
3) После перезагрузки компьютера вместо рабочего стола увидите блокнот.

Сам я так не пробовал делать, но процедура замены стандартного explorer.exe модифицированным примерно такая же, с той разницей, что пункт 2-3 у нас выполняет специальная утилитка. По идее языковой панели на рабочем столе (теперь уже блокноте :D )не увидите.
Еще раз повторюсь - Языковой панели нет. Возможно она скрыта под модифицированным exploreroм, я не знаю, но ее НЕТ!
И вообще, давайте прекратим полемику по поводу того, куда делась языковая панель. Зачем спорить, предполагать, предлагать - почему бы просто не поверить на слово и принять мои слова как факт?
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby VoidVolker » Fri, 17 Jan 2014, 14:47

VKarpovich wrote:Я и не пытаюсь спорить по этому поводу, а только лишь констатирую факт - языковой панели нет и настройками windows ее не добавишь.

Повторюсь еще раз: языковая панель - это отдельное приложение. Что значит "языковой панели нет"? Физически нет приложения ctfmon? Или она не отображается?
VKarpovich wrote:Сам я так не пробовал делать, но процедура замены стандартного explorer.exe модифицированным примерно такая же, с той разницей, что пункт 2-3 у нас выполняет специальная утилитка. По идее языковой панели на рабочем столе (теперь уже блокноте )не увидите.Еще раз повторюсь - Языковой панели нет. Возможно она скрыта под модифицированным exploreroм, я не знаю, но ее НЕТ!

Ну, у меня без проводника она отлично запускается. Обычно же она запускается самим проводником. Нужно просто понять что именно с ней происходит: запускается ли она, если она запускается, то отображается ли? Если она не отображается, то надо запустить стандартный проводник и переключить панель в отдельное окно.
Но в целом, данная задача решается довольно легко: кроном генерируется окошко или берется любое не сильно нужное окошко, запоминается хэндл окна и далее оно позиционируется нужным образом и в него выводится любой нужный текст.
Либо, генерируется два хинта с нужным текстом и в одну позицию, и при изменении языка просто один хинт скрывается, а другой делается видимым.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Языковая панель средствами nncron

Postby VKarpovich » Fri, 17 Jan 2014, 16:10

VoidVolker wrote:Нужно просто понять что именно с ней происходит: запускается ли она, если она запускается, то отображается ли?

Запускается, но не отображается.

Если она не отображается, то надо запустить стандартный проводник и переключить панель в отдельное окно.

Включено отображение на рабочем столе - панель не отображается.

Но в целом, данная задача решается довольно легко: кроном генерируется окошко или берется любое не сильно нужное окошко, запоминается хэндл окна и далее оно позиционируется нужным образом и в него выводится любой нужный текст.

Чувствую себя полным невеждой, но мало чего понял из того что Вы написали. Не очень то я и силен в nncrone.

Либо, генерируется два хинта с нужным текстом и в одну позицию, и при изменении языка просто один хинт скрывается, а другой делается видимым.

Попробовал с хинтом. Как-то кривовато отрабатывает. А если надо переключить язык в дос-задачах - вообще не отрабатывает.
Вот мой код - помогите подправить.

Code: Select all
#( RU_EN_HINT
NoActive
SingleInstance
Action:
ENU?
IF
    HINT-POS: 1 1
    HINT: "EN"
  ELSE
    HINT-POS: 1 1
    HINT: "RU"
THEN
)#

#( RU_EN_START
WatchHotKey: "^+"
Action:
SEND-KEYS: "^+"
HINT-OFF
RU_EN_HINT LAUNCH
)#
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby ANR Daemon » Fri, 17 Jan 2014, 22:47

VKarpovich wrote:
VoidVolker wrote:Языковая панель запускается вот так: C:\WINDOWS\system32\ctfmon.exe
Предварительно необходимо установить галочку в ней "отображать на рабочем столе". Это отдельное приложение, которое никак не зависит от проводника.

Спасибо! Но это не работает! НИ ОДНА ИЗ ПАНЕЛЕЙ WINDOWS XP НЕ РАБОТАЕТ НА МОДИФИЦИРОВАННОМ РАБОЧЕМ СТОЛЕ, который нам всучила служба безопасности!И это факт! :Hangman: Суть в том, что стандартный explorer.exe подменяется другим - и все. К сожалению я не имею права поделиться с вами своим модифицированным explorer.exe. Если идти на принцинцип - могу снять видео, на котором видно, как устанавливаются нужные настройки, запускается ctfmon и ничего не происходит. Но, уже в который раз, прошу просто поверить на слово. Хотя рассмотреть любой альтернативный вариант я тоже готов. Но по-моему это уже выходит за рамки данного форума.

А с чего ваша служба безопасности вообще взяла, что модифицированный неизвестно кем проводник будет безопаснее штатного?
Тем более если есть возможность запускать левые программы, поставьте тот же Punto. У него и иконка плавающая есть, и индикация раскладки в лотке.

P.S.
А вообще раз у вас есть права локального админа, запустите
sfc /scannow
и посмотрите на реакцию "службы безопасности".
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Языковая панель средствами nncron

Postby AlikasS » Mon, 20 Jan 2014, 08:52

пока такой набросок
Code: Select all
<%
CLASS: myWindowtime2 <SUPER FrameWindow
var idtimer
Static OBJ st01             :init a v 2 2 pos 10 10 size ;
W: WM_TIMER
ENU?
IF S" EN"  st01 SetText
ELSE S" RU"  st01 SetText
THEN
;
M: Create Create AutoCreate
 0 1000 2/ 1 handle @ SetTimer idtimer !
;
DESTR: free  idtimer @ handle @ KillTimer DROP free ;
;CLASS

:NONAME { \ w -- }
myWindowtime2 NEW TO  w
DROP
 WITH myWindowtime2
 WS_BORDER
\ WS_POPUP OR \ если раскомментиролвать, окно будет без заголовка
  w => vStyle !

 WS_EX_TOOLWINDOW
 WS_EX_TOPMOST   OR
 w => vExStyle  !

0 w => Create
 15 22 w => Center \ изменение размера окна
30 50 w => SetPos
 w => Show
 w => Run
w DELETE
 ENDWITH
; TASK: ~englrus

: englrus 0 ~englrus START ;
%>

#( плавающее_окошко
NoActive
Action:
englrus DROP
)#
запуск панельки пока через задачу, потом можно вставить автомат и отслеживание работы по id потока, который сейчас просто убирается (englrus DROP)
пойдет ли без доп.плагинов, надо проверять

P.S. если раскомментировать
\ WS_POPUP OR
, окошко получиться без заголовка, но не перемещаемое
и для красоты надо будет изменить строку
15 12 w => Center
.

ну и вообще если заморочиться, можно весь код в dll запихать с помощью spf
и использовать его через слово WINAPI:
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Языковая панель средствами nncron

Postby VKarpovich » Mon, 20 Jan 2014, 13:36

AlikasS wrote:пока такой набросок
Code: Select all
W: WM_TIMER


Мой nncron (1.91) говорит, что в этой строке синтаксическая ошибка. Чего может не хватать?
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby AlikasS » Tue, 21 Jan 2014, 02:28

VKarpovich wrote:
AlikasS wrote:пока такой набросок
Code: Select all
W: WM_TIMER


Мой nncron (1.91) говорит, что в этой строке синтаксическая ошибка. Чего может не хватать?

плагины (forguiplugins.zip) из моей подписи.
или можно подождать, я попробую выделить функцию в отдельную dll, потом ее просто подключишь :)
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Языковая панель средствами nncron

Postby VKarpovich » Tue, 21 Jan 2014, 10:01

AlikasS wrote:плагины (forguiplugins.zip) из моей подписи.

Спасибо. Попробую отпишусь.
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby VKarpovich » Tue, 21 Jan 2014, 17:30

AlikasS wrote:пока такой набросок

Огромное спасибо. Это то, чего я добивался. Все работает на УРА!
Обнаглею чуть-чуть и спрошу: можно ли расширить текущую задачу и создать аналогичную панель, отражающую текущий язык в dos-задачах?
VKarpovich
 
Posts: 29
Joined: Sat, 19 Feb 2011, 16:15

Re: Языковая панель средствами nncron

Postby AlikasS » Wed, 22 Jan 2014, 01:53

VKarpovich wrote:
AlikasS wrote:пока такой набросок

Огромное спасибо. Это то, чего я добивался. Все работает на УРА!
Обнаглею чуть-чуть и спрошу: можно ли расширить текущую задачу и создать аналогичную панель, отражающую текущий язык в dos-задачах?

надо поискать как можно получить раскладку , т.к. плагин
\ File: kbd_layout.spf
\ Date: 10.12.2003
\ Author: Nicholas Nemtsev
\ Description: Retrieves the active keyboard layout for a
\ specified thread (only for GUI applications).
\ This allows you to check if specific layout
\ is active. Note, please: this plugin does
\ not works with console windows
.
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Языковая панель средствами nncron

Postby ANR Daemon » Wed, 22 Jan 2014, 03:22

VKarpovich wrote:отражающую текущий язык в dos-задачах?

Не путайте консольные приложения и DOS приложения.
Получить текущую раскладку консольного приложения можно и даже не очень сложно, а вот достучаться до DOS задачи из NT окружения - нужно быть виртуозом системного программирования.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests