OSD и Desktop плагины

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

Postby VK » Mon, 04 Oct 2004, 14:46

угу, по-моему так лучше.

вот полный текст плагина:

Code: Select all
\ File:      osd.spf
\ Author:   dMitry Alexandrow, Nicholas Nemtsev
\ Version:   $Id: osd.spf,v 1.1 2004/10/04 21:41:59 mitry Exp $
\ Description:  OnScreenDisplay - simplest variant
\ Usage:
\   OSD-FONT: "Arial" 50 0x0000FF00
\      ("Arial" - font name; 50 - size; 0x0000FF00 - color)
\   OSD-POS:  400 200
\      (400 - horizontal; 200 - vertical)
\   OSD: "Hi! Now %hh%:%mm%!" 2000
\      (2000 - time in msec to show message)
\   S" Hi! Now %hh%:%mm%!" EVAL-SUBST OSD 2000 PAUSE OSD-CLEAR
\      (Same as above, but for advanced users)
\
\   here are some color examples:
\        0x00000000 - black
\    0x00FF0000 - red
\    0x0000FF00 - green (default color)
\    0x000000FF - blue
\    0x00FFFF00 - yellow
\ ###################################################

WINAPI: GetWindowDC      user32.dll
WINAPI: ReleaseDC      user32.dll
WINAPI: RedrawWindow      user32.dll
WINAPI: TextOutA      gdi32.dll
WINAPI: SetBkMode      gdi32.dll
WINAPI: SetTextColor      gdi32.dll
WINAPI: SelectObject      gdi32.dll
WINAPI: CreateFontA      gdi32.dll

USER-VALUE   osd-x
USER-VALUE   osd-y
USER-VALUE   osd-size
USER-VALUE   osd-color
USER-VALUE   osd-font

: ?OSD-INIT
    osd-font 0=
   IF
       64 ALLOCATE THROW TO osd-font
\      100 TO osd-x
\      50 TO osd-y
      50 TO osd-size
      0x0000FF00 TO osd-color
      S" Arial" osd-font ZPLACE
   THEN
;   

: OSD ( a u -- )
   ?OSD-INIT
   GetDesktopWindow GetWindowDC >R
   1 R@ SetBkMode DROP
   osd-color R@ SetTextColor DROP
   osd-font 0 0 0 0 1 0 0 0 0 0 0 0 osd-size CreateFontA
   R@ SelectObject ROT ROT
   SWAP osd-y osd-x R@ TextOutA DROP
   R@ SelectObject DROP
   R> GetDesktopWindow ReleaseDC DROP
;

: OSD-CLEAR ( -- )
   133 0 0 GetDesktopWindow RedrawWindow DROP
;

: OSD-PAUSED ( a u n -- ) >R OSD R> PAUSE OSD-CLEAR ;

: OSD-POS ( x y -- ) TO osd-y TO osd-x ;

: BGR>RGB ( n -- n1)
   SP@ C@ >R
   SP@ DUP 2+ C@ SWAP C!
   SP@ R> SWAP 2+ C!
;

: OSD-FONT ( a u nsize nclr -- )
   ?OSD-INIT
   BGR>RGB TO osd-color
   TO osd-size
   63 MIN osd-font ZPLACE
;

: OSD: eval-string, number, POSTPONE OSD-PAUSED ; IMMEDIATE
: OSD-POS: number, number, POSTPONE  OSD-POS ; IMMEDIATE
: OSD-FONT: eval-string, number, number, POSTPONE OSD-FONT ; IMMEDIATE

\ EOF osd.spf \\ vim: ft=forth:ts


Я поменял дату, добавил NN в соавторы плагина и привел несколько примеров цветовых кодов... ИМХО, можно было бы опубликовать на сайте и анонсировать. Николас? Mitry?
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby Mitry » Tue, 05 Oct 2004, 04:00

VK (far_away) wrote: ИМХО, можно было бы опубликовать на сайте и анонсировать. Николас? Mitry?


Я без возражений, но если кто-то знает как прикрутить прозрачное окно и писать в него, то это бы сняло кучу проблем с этим плагином.

Nicholas_Nemtsev wrote:Не, dll загружается один раз. user32 и gdi32 в других местах в кроне используется и выгружать их совсем не нужно.


Я, честное слово, не хотел выгружать gdi32.dll, хотя... :)

Объясню ситуацию: есть плагин (dll) для управления FM Radio от
программы Radiator. Я пытался вызывать его напрямую из nnCrona,
но такое ощущение, что он забывает что был проинициализирован в
другой nnCron-вой задаче (может в другом потоке?).
Пришлось написать С-программу, и слать ей messages.
Может есть какое секретное слово, для такого случая?
Mitry
 
Posts: 9
Joined: Thu, 23 Sep 2004, 02:26

Postby Nicholas_Nemtsev » Tue, 05 Oct 2004, 07:56

Mitry wrote:Объясню ситуацию: есть плагин (dll) для управления FM Radio от
программы Radiator. Я пытался вызывать его напрямую из nnCrona,
но такое ощущение, что он забывает что был проинициализирован в
другой nnCron-вой задаче (может в другом потоке?).
Пришлось написать С-программу, и слать ей messages.
Может есть какое секретное слово, для такого случая?

Секретного слова нет, но можно загружать dll в потоке, который никогда не останавливается (в nncron.ini)
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby VK » Tue, 05 Oct 2004, 11:06

выложил на сайт ( http://www.nncron.ru/download_ru.shtml ), анонсировал ( http://www.nncron.ru/forums/viewforum.php?f=11 ).
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby maskman » Tue, 05 Oct 2004, 13:58

Хочу сказать огромное спасибо за написанный плагин, процесс вывода сообщений стал намного веселее.
А теперь предложение.
Можно в следующих версиях этого плагина добавить такую настройку шрифта, как стиль (жирный, курсив, подчеркивания и т.д.).
Огромное спасибо, будем юзать.
maskman
 
Posts: 51
Joined: Sun, 11 Jul 2004, 15:19
Location: Moscow

Postby guria » Tue, 12 Oct 2004, 14:41

Еще бы вывод графики не помешал бы
guria
 
Posts: 1
Joined: Tue, 12 Oct 2004, 14:26

Postby makrus » Thu, 21 Oct 2004, 22:35

maskman
Хочу сказать огромное спасибо за написанный плагин, процесс вывода сообщений стал намного веселее
присоединяюсь к этой благодарности :!:

В процессе использования выявлены следующие интересные моменты:

1. Перевод строки (%crlf%) - не работает :(

2. Если в одной задаче последовательно выводить два сообщения через OSD, то между ними должна быть пауза, иначе второго сообщения невидно :(. По результатам эксперементов пауза должна быть порядка 8-10 мсек. И, кажется, ее величина зависет от загрузки процессора (у меня Duron 840, 512Mb)

3. Сообщение пропадает ранее указанного времени если меняется активное окно.

4. Если запускать сообщения из разных задач (одновременно), то оба исчезают по истечении времени любого из них, не зависемо от порядка запуска.

5. При неправильно указанном названии шрифта, сообщение выводится в Arial.
5.1 Хорошо бы сделать проверку правильности имени шрифта, хотя бы, проверкой названий имеющихся в системе шрифтов (что - то навроде парсера слов Форта в nnCron'е)

6. Не все шрифты установленные в системе могут быть использованы.
Шрифты которые работают:
  1. Arial
  2. Arail Bold
  3. Verdana
  4. Verdana Bold
  5. Comic Sans MS
  6. Times New Romans
Шрифты которые не работают:
  1. Arial Italic
  2. Arial Bold Italic
  3. Verdana Italic
  4. Verdana Bold Italic
  5. Cimic Sans MS Bold
  6. Times New Romans Bold
  7. Times New Romans Italic
остальные не проверял.

maskman
добавить такую настройку шрифта, как стиль (жирный, курсив, подчеркивания и т.д.)

Т. е. как в HTML'е? Я хотел бы ошибаться, но, IMHO, - это неовзможно :(, и тем более
Еще бы вывод графики не помешал бы
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Loading error: plugins\osd.spf:53

Postby Andrey V. Shtukaturov » Fri, 04 Mar 2005, 13:00

VK (far_away) wrote:угу, по-моему так лучше.

вот полный текст плагина:
...


поставил себе версию
nncron.exe v 1.91b5 Build 1022 26.01.2005

при запуске выводит
---------------------------
nnCron
---------------------------
Loading error: plugins\osd.spf:53
---------------------------
OK
---------------------------

osd.spf сравнивал - одинаковые

в nncron.ini
INCLUDE "plugins\clipboard.spf"
INCLUDE "plugins\com_ports.spf"
INCLUDE "plugins\crc32.spf"
INCLUDE "plugins\extreme_files.spf"
INCLUDE "plugins\files_pick.spf"
INCLUDE "plugins\http.spf"
INCLUDE "plugins\ini.spf"
INCLUDE "plugins\keystate.spf"
INCLUDE "plugins\lock_workstation.spf"
INCLUDE "plugins\net.spf"
INCLUDE "plugins\np.spf"
INCLUDE "plugins\process.spf"
INCLUDE "plugins\procwin.spf"
INCLUDE "plugins\ras.spf"
INCLUDE "plugins\recode.spf"
INCLUDE "plugins\rstimer.spf"
INCLUDE "plugins\sid.spf"
INCLUDE "plugins\signature.spf"
INCLUDE "plugins\str2.spf"
INCLUDE "plugins\system.spf"
INCLUDE "plugins\time.spf"
INCLUDE "plugins\timesync.spf"
INCLUDE "plugins\tools.spf"
INCLUDE "plugins\updates.spf"
INCLUDE "plugins\wakeup.spf"
INCLUDE "plugins\win2tray.spf"
INCLUDE "plugins\winamp.spf"
INCLUDE "plugins\windows.spf"
INCLUDE "plugins\winlirc.spf"
INCLUDE "plugins\osd.spf"


nncroun.out
CrcTable isn't unique
FirstCrc isn't unique
GetCrcVal isn't unique
Crc32Byte isn't unique
Crc32Buf isn't unique
Crc32BufFirst isn't unique
AddrBuffer isn't unique
LenBuffer isn't unique
Crc isn't unique
Crc32FileHandle isn't unique
Crc32File isn't unique
recent_file_time isn't unique
recent_file_name isn't unique
recent_time isn't unique
recent_word isn't unique
RECENT-SEARCH isn't unique
OLDEST-SEARCH isn't unique
EXTREME-FILE isn't unique
RECENT-FILE isn't unique
OLDEST-FILE isn't unique
RECENT-FILE-TIME isn't unique
RECENT-FILE-ATIME isn't unique
RECENT-FILE-WTIME isn't unique
OLDEST-FILE-TIME isn't unique
OLDEST-FILE-ATIME isn't unique
OLDEST-FILE-WTIME isn't unique
RECENT-FILE-TIME: isn't unique
RECENT-FILE-ATIME: isn't unique
RECENT-FILE-WTIME: isn't unique
OLDEST-FILE-TIME: isn't unique
OLDEST-FILE-ATIME: isn't unique
OLDEST-FILE-WTIME: isn't unique
CRLF isn't unique
FILE isn't unique
S! isn't unique
S+ isn't unique
nnCron. v 1.91b5 Build 1022 26.01.2005
Copyright (C) 2000-2005 nnSoft. email:nemtsev@nncron.ru
Зарегистрирован только для некоммерческого использования
Registered for non-commercial use only
LockWorkStation isn't unique
DropToCD isn't unique
I isn't unique


подсказать можете, что не так?
Andrey V. Shtukaturov
 
Posts: 21
Joined: Mon, 12 Jul 2004, 10:42

Postby VK » Fri, 04 Mar 2005, 13:20

похоже, у тебя часть плагинов грузится дважды. отключи их все и подключи только нужные.
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby Andrey V. Shtukaturov » Sat, 05 Mar 2005, 12:34

VK (far_away) wrote:похоже, у тебя часть плагинов грузится дважды. отключи их все и подключи только нужные.


оказалось что у меня в osd.spf не хватало строчки с объявлением процедуры GetDesktopWindow

скачал osd.spf со страницы закачки и обновил

а сравнивал я с тем что приведено выше, и все совпадало
подправьте то сообщение, а то может кто-еще сделает copy paste как и я
Andrey V. Shtukaturov
 
Posts: 21
Joined: Mon, 12 Jul 2004, 10:42

Postby VK » Sat, 05 Mar 2005, 15:44

что тут "подправлять"? написано ведь: http://www.nncron.ru/forums/viewtopic.php?p=718#718
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby Andilevko » Sat, 22 Oct 2005, 22:16

Можно ли вывести OSD с содержимым текстового файла?
Andilevko
 
Posts: 30
Joined: Wed, 09 Mar 2005, 20:10

Postby Tez » Sun, 23 Oct 2005, 19:28

nnCron Help > Дополнительная информация > "Неотложная помощь" по Форту > 15. Как организовать несложный файловый ввод/вывод?

Там есть пример:
\ второй вариант
MSG: "%FILE: test.txt%"


В плагине osd.spf тоже есть пример:
OSD: "Hi! Now %hh%:%mm%!" 2000


Дальше думаю, сам соединишь.

PS
А слова FILE нету в индексе nnCron Help.
Tez
 
Posts: 205
Joined: Mon, 23 Aug 2004, 09:17
Location: Moscow

Postby Valery_Kondakoff » Sun, 23 Oct 2005, 20:39

Tez wrote:А слова FILE нету в индексе nnCron Help.


Оно там выглядит так: %FILE: filename%
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Postby 4e6yPaToP » Fri, 03 Feb 2006, 01:35

а как насчёт автоматического переноса строки, если она выходит за предел экрана?
просто я вывожу в OSD содержание текстового файла большими буквами, чтоб издалека увидеть на экране.
4e6yPaToP
 
Posts: 6
Joined: Wed, 31 Aug 2005, 01:16

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests