Готовые решения

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

Готовые решения

Postby mvart » Sat, 29 Jul 2006, 10:38

Почему бы не создать тему с готовыми задачами?
И в ней люди делились бы уже готовыми решениями? :?:
mvart
 
Posts: 53
Joined: Thu, 29 Jul 2004, 10:35

Postby MasterW » Thu, 03 Aug 2006, 01:07

Полностью поддерживаю !!! Давай, что у тебя интересного есть))?
MasterW
 
Posts: 52
Joined: Sat, 10 Jun 2006, 16:07
Location: RND

Postby Lynx » Thu, 03 Aug 2006, 12:44

А я, например, не вижу смысла - ну будет в этой ветке свалена куча решений абсолютно разных задач - фих разберешься.... Смысл?
User avatar
Lynx
 
Posts: 321
Joined: Thu, 04 May 2006, 20:07
Location: Уфа

Postby Digger » Thu, 03 Aug 2006, 15:37

Для каждой законченной фичи можно будет сделать описание. И поднять эту тему вверх, тогда вновь пришедший не бдет задавать 1001 раз один и тот же вопрос а сразу возьмет себе готовое решение.
Digger
 
Posts: 3
Joined: Mon, 29 May 2006, 14:38

Postby zenik » Thu, 03 Aug 2006, 15:50

Digger wrote:Для каждой законченной фичи можно будет сделать описание. И поднять эту тему вверх, тогда вновь пришедший не бдет задавать 1001 раз один и тот же вопрос а сразу возьмет себе готовое решение.

Люди хелп не читают... кто будет лазить по этому разделу и выискивать решение? Ведь всегда проще спросить: "куда меня послать?" :wink:
zenik
 
Posts: 30
Joined: Thu, 25 May 2006, 12:23

Postby SeMa » Thu, 03 Aug 2006, 15:53

Таких фич и может быть 1001 ;).
Хотя, с другой стороны, список (в четкой формулировке) всех решений с описаниями в первом посте со ссылками на сами решения внутри темы - было бы очень даже неплохо.
Но кто же возьмется? Надо же следить за корректностью этих самых решений, их оптимальностью и чтобы они не дублировались и не повторялись в разных вариантах. Для модераторов это неслабый кусок работы. Вряд ли они пойдут на это.
А если просто сваливать туда свои "наработки", то тогда действительно будет каша, в которой со временем не раберешься.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Postby AlikasS » Thu, 03 Aug 2006, 16:58

предлагал же нечто подобное:
http://www.nncron.ru/forums/viewtopic.php?t=1435
Last edited by AlikasS on Mon, 27 Nov 2006, 10:48, edited 1 time in total.
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Postby Dimanish » Sat, 05 Aug 2006, 00:03

Я начну:
Code: Select all
#( TotalCommander_CD_G_Run
\ запускаем Total Commander при вставке диска G, естест-нно заменить на свою букву
NoLog
AsLoggedUser
LoadProfile
WatchDriveInsert: "G:\"
Rule: QUERY: "Открыть диск G в Total Commander?"
Action:
StartIn: "C:\Program Files\Total Commander"
ShowNormal   NormalPriority
START-APP: C:\Program Files\Total Commander\Totalcmd.exe G:\
)#


Code: Select all
#( TotalCommander_curdatetime_CatalogMaker
\ по нажатию Win+9 создаём каталог с именем текущей даты и времени
SET CURDATETIME=%DD%.%MM%.%YY% %hh%-%mm%-%ss%
NoLog
AsLoggedUser
LoadProfile
WatchHotKey: "$9"
Rule: WIN-ACTIVE: "Total Commander*"
Action:
SEND-KEYS: "{F7}{DELAY 500}%CURDATETIME%{DELAY 500}{ENTER}"
)#


Code: Select all
#( Start_Proxomitron_and_HandyCache_if_Firefox_Start
\ запускаем Proxomitron и HandyCache, если Firefox запущен
\ RunMissed
\ NoActive
NoLog
AsLoggedUser
LoadProfile
WatchProc: "Firefox.exe"
Action:
StartIn: "C:\Program Files\Proxomitron"
START-APP: C:\Program Files\Proxomitron\Proxomitron.exe Dimanish.cfg
START-APP: C:\Program Files\HandyCache\HandyCache.exe
)#


Code: Select all
#( Close_Proxomitron_and_HandyCache_if_Firefox_Close
\ закрываем Proxomitron и HandyCache, если Firefox закрыт
\ RunMissed
\ NoActive
NoLog
AsLoggedUser
LoadProfile
WatchProcStop: "Firefox.exe"
Action:
PROC-CLOSE: HandyCache.exe
PROC-CLOSE: Proxomitron.exe
TRAY-REFRESH
)#
Dimanish
 
Posts: 7
Joined: Wed, 02 Aug 2006, 11:42

Postby Glook » Sat, 05 Aug 2006, 17:37

по-моему очень нужная темка.
вот от меня проверка почтового ящика каждые тридцать минут (меняйте как больше нравиться) и всплывающее сообщение в виде balloon при наличии писем в нём.
Code: Select all
#( Mail
Time: */30 * * * * *
0 VALUE number_of_messages
Action:
S" tyt.server.pocty" S" login" S" password" POP3-CHECK
TO number_of_messages
number_of_messages 0<>
IF
1 BalloonIcon !
BALLOON: "Внимание!" "Пришла  новая  почта!"
PAUSE: 10000
BALLOON: "" ""
THEN
)#
Glook
 
Posts: 2
Joined: Sun, 11 Jun 2006, 17:25

Postby zenik » Fri, 11 Aug 2006, 09:11

И я внесу свои пять копеек ;)

Дружбан как то просил такое намутить: открыта одна и таже прога (из разных каталогов) - надо выяснить из какого каталога открыта прога. По горячей клавише Ctrl+Shift+q меняем заголовок окна на строку запуска проги:

Code: Select all
#( ЗаголовокОкна
WatchHotKey: "^@q"
WINAPI: GetWindowThreadProcessId user32.dll
VARIABLE PID
Action:
   PID GetForegroundWindow GetWindowThreadProcessId DROP
   WIN-SET-TITLE: "%GetForegroundWindow%" "%PID @ PROC-FULLNAME%"
)#


Задача содает файл, в котором описывает дисковые устройства, их объем и занятое место:

Code: Select all
#( DiskSpace
AsLoggedUser
Time: 0 0
Action:
   <VBScript>
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      Set objLogFile = objFSO.CreateTextFile("ФайлДляЗаписиДанных")
      Set colDrives = objFSO.Drives
      For Each objDrive in colDrives
          If objDrive.IsReady = True Then
            ' Пропускаем сетевые диски
' Если кому надо с сетевыми - то убрать условие
            If objDrive.DriveType<>3 Then ' здесь
               objLogFile.Write("Диск     : " & objDrive.DriveLetter & vbTab & vbTab & "Метка    : " & objDrive.VolumeName & vbCrLf)
               ' objLogFile.Write(vbTab & "Метка    : " & objDrive.VolumeName & vbCrLf)
               objLogFile.Write("Тип FS   : " & objDrive.FileSystem & vbTab & vbTab)
               Select CASE objDrive.DriveType
                  CASE 1 ' FDD/Flash
                     objLogFile.Write("Тип устр.: Съемный диск" & vbCrLf)
                  CASE 2 ' HDD
                     objLogFile.Write("Тип устр.: HDD" & vbCrLf)
                  CASE 3 ' NetWork
                     objLogFile.Write("Тип устр.: NetWork" & vbCrLf)
                  CASE 4 ' CD
                     objLogFile.Write("Тип устр.: CD/DVD" & vbCrLf)
                  CASE Else
                     objLogFile.Write("Тип устр.: " & objDrive.DriveType & vbCrLf)
               End Select
               objLogFile.Write("Всего    : " & ROUND(objDrive.TotalSize / 1024 / 1024 / 1024,3) & vbCrLf)
               objLogFile.Write("Свободно : " & ROUND(objDrive.FreeSpace / 1024 / 1024 / 1024,3) & vbCrLf & vbCrLf)
            End If ' И здесь
          End If
      Next
   </SCRIPT>
)#


Ну а в остальном все задачи достаточно специфичны и врятли кому могут пригодится.
zenik
 
Posts: 30
Joined: Thu, 25 May 2006, 12:23

Вариант эмуляции медиа адаптера Bluetooth MMV-100.

Postby str » Fri, 25 Aug 2006, 01:36

Телефоны Sony Ericsson с помощью этой штуки отображают картинки на экране телевизора:
http://www.sonyericsson.com/spg.jsp?cc= ... &pid=10145
Используем обычную блютуфину, софт которой поддерживает Basic Imaging Profile,
у меня Tekram + BlueSoleil. По умолчанию картинки с сонерика ложаться
в %Мои документы%\Bluetooth\Bip\DCIM\каталог_вида_100ABCDE. Там их отлавливаем,
выводим на экран (IrfanView и т.п.), файл через пару секунд убиваем, ждём следующего.

Code: Select all
#( SHOW_SE_IMAGE
AsLoggedUser
SingleInstance
WatchDir: "F:\SYS\DOC\Bluetooth\Bip\DCIM" WatchSubtree    \ каталог для приёма файлов с телефона
Action:
PAUSE: 10000
 RECURSIVE
 FOR-FILES: "F:\SYS\DOC\Bluetooth\Bip\DCIM\*"
  IS-DIR?
   IF
   ELSE
    PROC-EXIST: "i_view32.exe"
    IF KILL: "i_view32.exe"    \ убираем с экрана предыдущее, если есть...
    THEN
    PAUSE: 200
    START-APP: "G:\TOOLS\IrfanView392\i_view32.exe" %FOUND-FULLPATH% /fs    \ ...и показываем новое
   THEN
 ;FOR-FILES
PROC-ID PROC-WAIT-IDLE    \ делал для ребёнка, медленная машина
PAUSE: 1000
 RECURSIVE
 FOR-FILES: "F:\SYS\DOC\Bluetooth\Bip\DCIM\*"
  IS-DIR?
   IF
   ELSE FILE-DELETE: "%FOUND-FULLPATH%"
   THEN
 ;FOR-FILES
)#
str
 
Posts: 2
Joined: Fri, 25 Aug 2006, 01:23

Postby Allan » Mon, 13 Nov 2006, 12:30

Ну, вот, хорошая тема загнулась. Поднимаю:)

Слово удаляет файлы из папки старше days дней, но оставляет как минимум один файл:
Code: Select all
: PurgeOldButOne
  DaysCnt4bc !
  2DUP
  FOR-FILES
    IS-DIR? 0=
    IF
      TotalFilesCnt4bc 1+!
      CUR-DATE CREATION-DATE DATE- DaysCnt4bc @ >
      IF
        FilesCnt4bc 1+!
      THEN
    THEN
  ;FOR-FILES
  FilesCnt4bc @ TotalFilesCnt4bc @ <
  IF
    DaysCnt4bc @
    PURGE-OLDW
  ELSE
    2DROP
  THEN
;


Если написать S" H:\Backup\Progs\2_*.zip" 7 PurgeOldButOne, то удалит файлы 2_*.zip из H:\Backup\Progs\ старше 7 дней, но один файл оставит.


Слово активизирует окно, если оно есть, и кладёт на стек признак наличия окна:
Code: Select all
: WinShowIfExists
2DUP
WIN-EXIST?
IF
  WIN-ACTIVATE
  0
ELSE
  2DROP
  -1
THEN
;

: WinShowIfExists: eval-string, POSTPONE WinShowIfExists ; IMMEDIATE


Использую для запуска по горячим клавишам, к примеру
WinShowIfExists: "nnCron Help"
IF
START-APP: cmd /c start D:\Stuff\Warez\nnCron\doc\help_ru.chm
THEN

Если уже есть хелп по крону, то делает активным, иначе запускает.
Allan
 
Posts: 6
Joined: Fri, 02 Jun 2006, 10:50

Postby AlikasS » Tue, 21 Nov 2006, 09:06

Code: Select all
#( тесто_диалого
 NoActive
SingleInstance
NoLog
AsLoggedUser
LoadProfile
CREATE tekstperemen1 256 ALLOT \ переменная текста из диалога
CREATE tekstperemen2 256 ALLOT \ переменная текста из ответа из файла 2
VARIABLE peremennforcikla \ переменная количества проходов по циклу задания вопросов без ответов
VARIABLE cikl1 \ кол-во проходов по файлу 1, т.е. текущая строка
VARIABLE cikl2 \ кол-во проходов по файлу 2, т.е. текущая строка
VARIABLE flager1 \ ставиться если в первом файле найдено слово
: dial1.txt S" dial1.txt" ;
: dial2.txt S" dial2.txt" ;
VARIABLE fb1
VARIABLE fb2
CREATE bline1 256 ALLOT
CREATE bline2 256 ALLOT
CREATE bname1 256 ALLOT
CREATE bname2 256 ALLOT
\ WatchHotKey: "+@^d"
Action:
\ создание файлов-справочников
FILE-EXIST: "%dial1.txt%" IF ELSE FILE-CREATE: "%dial1.txt%" THEN
FILE-EXIST: "%dial2.txt%" IF ELSE FILE-CREATE: "%dial2.txt%" THEN

S" " tekstperemen1 PLACE \ очистка текстовых переменных
S" " tekstperemen2 PLACE \ очистка текстовых переменных
flager1 OFF \ обнуление флага для пропуска диалога новых слов, т.е. включение
peremennforcikla OFF \ обнуление переменной для подсчета безответных проходов по циклу ввода слова

BEGIN
WIN-INPUT-TEXT: "" "%crlf%жду вашего ввода%crlf%" "" 25 DUP 0=
IF
   DROP
   tekstperemen1 PLACE \ занесение слова в переменную №1

S" " tekstperemen1 COUNT COMPARE 0=
IF TMSG: "ничего не введено" 5
flager1 ON
peremennforcikla OFF
ELSE

   peremennforcikla OFF \ пользователь что-то ввел и поэтому обнулить предыдушие его молчания
   flager1 OFF \ обнуление флага для вызова новых слов
   cikl1 OFF \ обнуление переменной для подсчета проходов по текст. файлу №1


   dial1.txt R/O OPEN-FILE-SHARED IF DROP ERR-MSG: "Can't open %dial1.txt% file" EXIT THEN fb1 ! \ открытие файла №1 на чтение
   BEGIN bline1 256 fb1 @ READ-LINE THROW WHILE \ чтение строки
   bline1 SWAP
   <TIB
   1 WORD COUNT 256 MIN bname1 PLACE \ присваивание строки  текстовой переменной
      bname1 COUNT tekstperemen1 COUNT ICOMPARE 0= \ сравнение введенной строки со строкой из файла
      IF
      \ если совпало цикл по второму файлу и выведение строки с тем же номером
      flager1 ON \ флаг для пропуска диалога новых слов
      cikl2 OFF \ обнуление переменной для подсчета проходов по 2 текст. файлу
      dial2.txt R/O OPEN-FILE-SHARED IF DROP ERR-MSG: "Can't open %dial2.txt% file" EXIT THEN fb2 ! \ открытие файла 2 на чтение
      BEGIN bline2 256 fb2 @ READ-LINE THROW WHILE \ чтение строки из файла №2
      bline2 SWAP
      <TIB
      1 WORD COUNT 256 MIN bname2 PLACE \ присваивание строки  текстовой переменной
      cikl2 @ cikl1 @ = \ сравнение какой проход по второму файлу и сколько пройдено по первому
         IF
         \ если совпало приравнять текущую строку к текстовой переменной №2
         bname2 COUNT tekstperemen2 PLACE
         ELSE
         THEN
      TIB>
      cikl2 @ 1 + cikl2 ! \ увеличение переменной прохода по строкам, в соответствии с переходом на другую строку
      REPEAT
      DROP
      fb2 @ CLOSE-FILE DROP \ закрытие файла

      ELSE
      THEN
   TIB>
   cikl1 @ 1 + cikl1 ! \ увеличение переменной прохода по строкам, в соответствии с переходом на другую строку
   REPEAT
   DROP
   fb1 @ CLOSE-FILE DROP \ закрытие файла

flager1 @
IF
\ флаг сработал занесение новых слов не нужно
\ MSG: "Вы сказали - %tekstperemen1 COUNT%,%crlf%мой ответ - %tekstperemen2 COUNT%"
TMSG: "%tekstperemen2 COUNT%" 10
ELSE
TQUERY: "нет запомненного ответа на фразу %QUOTE%%tekstperemen1 COUNT%%QUOTE%%crlf%ЗАНЕСТИ?" 10 No
   IF
      WIN-INPUT-TEXT: "Ваше предложение" "на слово %QUOTE%%tekstperemen1 COUNT%%QUOTE%%crlf%введите реакцию nncron" "" 25 DUP 0=
      IF
      DROP
      tekstperemen2 PLACE \ занесение слова в переменную
      FILE-APPEND: "%dial1.txt%" "%crlf%%tekstperemen1 COUNT%"
      FILE-APPEND: "%dial2.txt%" "%crlf%%tekstperemen2 COUNT%"
      ELSE
         1 =
         IF
         \       TMSG: "Отменено пользователем..." 5
         ELSE
         \     TMSG: "Время истекло. Повторяю " 5
         THEN
      THEN
   ELSE
   THEN
THEN
THEN \ от IF который проверяет пустую строку
\ ниже диалог если ничего не введено или нажата отмена
ELSE
    1 =
   IF
      peremennforcikla @ 1 + peremennforcikla !
      TMSG: "Отменено пользователем. Повторяю %peremennforcikla @% раз...." 5
   ELSE
      peremennforcikla @ 1 + peremennforcikla !
      TMSG: "Время истекло. Повторяю %peremennforcikla @% раз...." 5
   THEN
THEN

peremennforcikla @ 3 =
UNTIL
\ Время истекло. Повторил цикл запросов несколько раз
)#

позволяет убить время в диалоге с nnCron, "обучая" его ответам.
Зачем делал уже не помню :D .
Ищет введенную строку в одном файле и при
совпадении выводит строку с тем же номером из другого.
если нет совпадения, предлагает занести.
Last edited by AlikasS on Thu, 28 Dec 2006, 04:57, edited 1 time in total.
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

шифрование/дешифр небольшого текста

Postby AlikasS » Thu, 30 Nov 2006, 07:12

http://www.nncron.ru/forums/viewtopic.php?t=1245 подключить все из топика и можно пользоваться
Code: Select all
#( шифровать_текст
NoActive
NoLog
Action:
S" " S" введите текст для шифровки" S" Шифрование" WIN-INPUT-TEXT-MULTI
0=
IF
EncP   S" C:\Program Files\nnCron\doc\~temps" FWRITE
START-APPW: "%SystemRoot%\system32\notepad.exe" "C:\Program Files\nnCron\doc\~temps"
S" C:\Program Files\nnCron\doc\~temps" FDELETE
THEN
)#

#( дешифровать_текст
NoActive
NoLog
Action:
S" gr+IhrCzNH5lEkQzNTE1AzYn/T84B00uNTllA0kqAk1lATA+Ak0uNTEw9T8tBTAnDjovQEMvBTo0Bzc1QD4qAjcp+zc1NTInBzAx9UQt+DI7/Tlz" \ все в одну строку или вообще убрать
S" C:\Program Files\nnCron\doc\~temps" FWRITE
S" C:\Program Files\nnCron\doc\~temps" FILE S" введите текст для расшифровки" S" Дешифрование" WIN-INPUT-TEXT-MULTI
0=
IF
DecP   S" C:\Program Files\nnCron\doc\~temps" FWRITE
START-APPW: "%SystemRoot%\system32\notepad.exe" "C:\Program Files\nnCron\doc\~temps"
S" C:\Program Files\nnCron\doc\~temps" FDELETE
THEN
)#

хотя можно и просто брать текст из буфера обмена или еще откуда и пользоваться словами EncP ( a u -- a1 u1 ) и DecP ( a1 u1 -- a u ) и еще есть какое-то ограничение на объем текста
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Postby Allan » Fri, 15 Dec 2006, 15:46

Ещё задачка.
У нас аппликуха каждый день создаёт новый лог-файл и пишет в него. Хочется по кнопке посмотреть последний по времени лог, а не искать его глазами по дате.
Решение:

Code: Select all
#( CLASSIC-TASK-#-ViewLastEtranLog
NoLog
AsLoggedUser
USER MaxTime
USER-CREATE LastLogName 50 USER-ALLOT
WatchHotKey: "$`"
Action:
  100 MaxTime !
  S" " LastLogName PLACE
  FOR-FILES: "какой-там-путь-и-имя*.log"
    CUR-TIME CREATION-DATE DATE- MaxTime @ <
    IF
      CUR-TIME CREATION-DATE DATE- MaxTime !
      FOUND-FULLPATH
      LastLogName PLACE
    THEN
  ;FOR-FILES
  ShowNormal
  START-APP: C:\Utils\Far\Far.exe -i /v %LastLogName COUNT%

)#


В обшем, тупо, но вдруг кому пригодится.
Allan
 
Posts: 6
Joined: Fri, 02 Jun 2006, 10:50

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Google [Bot] and 7 guests