Запуск программы по ярлыку

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

Запуск программы по ярлыку

Postby dad1969 » Tue, 08 Apr 2008, 12:07

Добрый день.
пытаюсь решить следующую задачу. Установлены firefox 2 и 3 в разных папках. Каждый запускается по ярлыку с указанием в параметрах своего профиля. Необходимо перезапускать ff, вычисляя какой именно запущен по полному имени процесса. Я создал в обеих папках ярлыки с одинаковыми именами start.lnk. Теперь при гашении процесса пытаюсь получить его полное имя и подставить в команду запуска ярлыка. Делаю следующим образом:
Code: Select all
AsLoggedUser
LoadProfile
RunMissed
SingleInstance
Time: 0 8
VARIABLE restart_firefox
USER-VALUE ff_fullname
Action:
\ Make Firefox profile daily backup
  restart_firefox OFF
  PROC-EXIST: "firefox.exe" IF
    %FOUND-PID% PROC-FULLNAME S>ZALLOC TO ff_fullname
    TQUERY: "Для создания резервной копии профиля Mozilla Firefox должен быть закрыт. Закрыть его на время работы?" 30 NO IF
      restart_firefox ON
      KILL: "firefox.exe"
      PAUSE: 5000
    THEN
  THEN
  PROC-EXIST: "firefox.exe" NOT IF
    SWHide   NormalPriority
    2 BalloonIcon !
    BALLOON: "Внимание!" "Идет создание резервной копии профиля Mozilla Firefox!"
    START-APPW: "c:\program files\nnbackup\nnbackup.exe" verz -n 7 -ci -q -i "c:\Documents and Settings\user\Application Data\Mozilla\Firefox\" -o "\\Server4\user\Backup\Mozilla\Firefox\" -s -sdn "%YYYY%-%MM%-%DD%_%hh%-%mm%-%ss%"
    BALLOON: "" ""
    ExitCodeProc 0 <> IF
      3 BalloonIcon !
      BALLOON: "Ошибка!" "Ошибка создания резервной копии профиля Mozilla Firefox!"
    ELSE
      1 BalloonIcon !
      BALLOON: "Завершено!" "Резервная копия профиля Mozilla Firefox готова."
    THEN
    1 BalloonIcon !
  THEN
  restart_firefox @ IF
    START-APP: tm.exe 5 0 0 Z" <..путь к ярлыку..>start.lnk" Z" open" 0 ShellExecuteA HALT
  THEN

Во-первых на строку %FOUND-PID% PROC-FULLNAME S>ZALLOC TO ff_fullname крон ругается про мусор. Во-вторых не могу въехать как получив полное имя подставить его вместо <..путь к ярлыку..>. Заранее спасибо.
User avatar
dad1969
 
Posts: 38
Joined: Sun, 12 Sep 2004, 12:53

Re: Запуск программы по ярлыку

Postby SeMa » Tue, 08 Apr 2008, 17:00

Всю задачу не анализировал.
по синтаксису: FOUND-PID PROC-FULLNAME S>ZALLOC TO ff_fullname.
по грамматике: FOUND-PID можно использовать только внутри цикла FOR-PROCS: "proc_pattern" <...> ;FOR-PROCS.
Конструкция
Code: Select all
PROC-EXIST: "firefox.exe"
IF
    FOUND-PID PROC-FULLNAME S>ZALLOC TO ff_fullname
...
не подходит. Значит, либо организовать цикл, либо:
Code: Select all
S" firefox.exe" PROC-EXIST?
DUP
IF
  PROC-FULLNAME S>ZALLOC TO ff_fullname
...
ELSE DROP
THEN

Про <путь>: перед его подстановкой нужно "отрезать" имя файла, а вместо него прицепить start.lnk (если я правильно понял). Простым путем с известной длиной имени firefox.exe (11 знаков):
Code: Select all
START-APP: tm.exe 5 0 0 ff_fullname ASCIIZ> 11 - 0 MAX S" start.lnk" S+ DROP Z" open" 0 ShellExecuteA HALT
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Запуск программы по ярлыку

Postby SeMa » Tue, 08 Apr 2008, 17:02

Всю задачу не анализировал.
по синтаксису: FOUND-PID PROC-FULLNAME S>ZALLOC TO ff_fullname.
по грамматике: FOUND-PID можно использовать только внутри цикла FOR-PROCS: "proc_pattern" <...> ;FOR-PROCS.
Конструкция
Code: Select all
PROC-EXIST: "firefox.exe"
IF
    FOUND-PID PROC-FULLNAME S>ZALLOC TO ff_fullname
...
не подходит. Значит, либо организовать цикл, либо:
Code: Select all
S" firefox.exe" PROC-EXIST?
DUP
IF
  PROC-FULLNAME S>ZALLOC TO ff_fullname
...
ELSE DROP
THEN

Про <путь>: перед его подстановкой нужно "отрезать" имя файла, а вместо него прицепить start.lnk (если я правильно понял). Простым путем с известной длиной имени firefox.exe (11 знаков):
Code: Select all
START-APP: tm.exe 5 0 0 ff_fullname ASCIIZ> 11 - 0 MAX S" start.lnk" S+ DROP Z" open" 0 ShellExecuteA HALT
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Запуск программы по ярлыку

Postby dad1969 » Wed, 09 Apr 2008, 13:11

Громадное спасибо. Оно теперь действительно все ловится и подставляется, только почему-то перезапуск не происходит. Хотя вручную запуск ярлыка отрабатывается нормально. Буду ковырять дальше.
User avatar
dad1969
 
Posts: 38
Joined: Sun, 12 Sep 2004, 12:53

Re: Запуск программы по ярлыку

Postby dad1969 » Thu, 10 Apr 2008, 14:30

Не запускается. Причем если прописать путь в явном виде - работает. :Hangman:
User avatar
dad1969
 
Posts: 38
Joined: Sun, 12 Sep 2004, 12:53

Re: Запуск программы по ярлыку

Postby SeMa » Fri, 11 Apr 2008, 17:36

У меня тоже не работает. Пробовал по разному - не получается. Видно, где-то не получается формирование имени файла для параметра команды ShellExecuteA.
А действительно ли нужно пускать браузер через ярлык? Или в нем какие-то доп.параметры прописаны? По-моему, вот так получится проще:
Code: Select all
...
restart_firefox @
IF
  START-APP: %ff_fullname ASCIIZ>%
THEN
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Запуск программы по ярлыку

Postby dad1969 » Mon, 14 Apr 2008, 14:32

Именно доп. параметры. А конкретнее - с каким профилем фоксу грузиться. Ибо не все расширения для 2-й идут под 3-ой и наоборот. :(
User avatar
dad1969
 
Posts: 38
Joined: Sun, 12 Sep 2004, 12:53

Re: Запуск программы по ярлыку

Postby SeMa » Mon, 14 Apr 2008, 16:52

все решилось вот так:
Code: Select all
...
USER-CREATE ff_linkname 50 USER-ALLOT
Action:
\ Make Firefox profile daily backup
S" " ff_linkname PLACE
S" firefox.exe" PROC-EXIST?
DUP
IF
  PROC-FULLNAME 11 - 0 MAX S" start.lnk" S+ ff_linkname PLACE
...
ELSE DROP
THEN
...
restart_firefox @
IF
  SWHide NormalPriority
  START-APP: cmd /q /c "%ff_linkname COUNT%"
THEN
...
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Запуск программы по ярлыку

Postby dad1969 » Mon, 14 Apr 2008, 17:28

Ух, круто. Я даже и не подумал про такой вариант вообще. Большущщщее спасибо. Все работает как часы.
User avatar
dad1969
 
Posts: 38
Joined: Sun, 12 Sep 2004, 12:53

Re: Запуск программы по ярлыку

Postby ANR Daemon » Sat, 10 May 2008, 00:42

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

Re: Запуск программы по ярлыку

Postby VoidVolker » Sat, 10 May 2008, 09:58

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

Сырцы крона открыты ;)
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Запуск программы по ярлыку

Postby ANR Daemon » Sat, 10 May 2008, 20:29

Извините мою дремучесть, где они открыты?
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Запуск программы по ярлыку

Postby SeMa » Sat, 10 May 2008, 23:16

ANR Daemon wrote:Извините мою дремучесть, где они открыты?

http://www.nncron.ru/download_ru.shtml - раздел "разное"
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Запуск программы по ярлыку

Postby ANR Daemon » Mon, 12 May 2008, 13:42

Блиннн!!!
Пять минут на ту страницу пялился, прежде чем написать вопрос, но того, что надо , так и не увидел...
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Запуск программы по ярлыку

Postby SeMa » Mon, 12 May 2008, 17:36

ANR Daemon wrote:Блиннн!!!
Пять минут на ту страницу пялился, прежде чем написать вопрос, но того, что надо , так и не увидел...

Третий по счету раздел (блок) со ссылками, называется ": разное"
первые две ссылки:
nnsrc.zip 578k 15 Feb 2007 исходники nnCron
nnlib.zip 710k 15 Feb 2007 исходники библиотек Николая Немцева
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot], Yahoo [Bot] and 3 guests

cron