Проблема с переменными в запущенном процессе.

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

Postby AlikasS » Thu, 29 Mar 2007, 01:56

может попробовать прописать конкретного пользователя, все равно батник скрытно запускается
Code: Select all
LoadProfile
User: "Администратор" SecPassword: "238572387" Domain: "work" LogonInteractive
Time: 1 */2 * * * *
Action:
SWHide   NormalPriority
START-APP: C:\ftn\logs\up.bat
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Postby ANR Daemon » Wed, 04 Apr 2007, 00:40

VoidVolker wrote:Так, может ты все-таки приведешь задачу бантика?


Будет достаточно, если я скажу, что она не имеет отношения к проблеме?
Не запускается сам командный интерпретатор (4NT) - не может найти собственную ipworks6.dll.

Всё, проблема решена другим способом, к nnCron отношения не имеющим.
Но наличия самой проблемы это не отменяет.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Postby Nicholas_Nemtsev » Tue, 20 Nov 2007, 18:17

Крон точно сам такую кашу не заваривает. Если задан путь в StartIn:, то этот путь добавляется к переменной окружения PATH, но в данном случае он не задан, а значит, с переменной неявно ничего не делается. Есть ещё другой вариант, когда в кронтабе задано что-то типа:
SET PATH=ххх
тогда содержимое этой переменной перевычисляется в момент запуска внешнего приложения и отправляется в окружение крона, но, видимо, и это не то.

В такой форме
START-APP: C:\ftn\logs\up.bat
запускается заранее неизвестным способом
(расширение bat может быть зарегистрировано за хрен знает каким приложением).
Лучше так:
START-APP: %ComSpec% /c C:\ftn\logs\up.bat
(это если переменная ComSpec гарантированно что-то вроде <путь>\cmd.exe)
А то и вообще с указанием полного пути интерпретатора.

UPD. Ну вот, оказывается это не стандартный cmd.exe. Вряд ли это проблема крона.
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby ANR Daemon » Tue, 20 Nov 2007, 18:35

Но тогда объясните мне, откуда в окружении запущенного процесса оказываются нерасширенные %PATH%, %ARH%?
Каким кодом вообще вызываются процессы?
ShellExecute? ShellExecuteEx?
C какими параметрами?
По умолчанию ведь передается текущее окружение, я сам пишу программы и никогда не было таких эксцессов.
Подобного эффекта можно добиться только одним способом - преднамеренно передав измененное окружение запускаемому процессу.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Postby Nicholas_Nemtsev » Tue, 20 Nov 2007, 18:59

Ни то и ни другое. Для запуска процессов используется CreateProcess. Новое окружение формируется только для процессов, запускаемых от имени заданного пользователя (User: ... или AsLoggedUser) да ещё с опцией LoadProfile. Во всех остальных случаях умолчально передаётся окружение крона. В том смысле, что ничего не передаётся, а CreateProcess сам передаёт.
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby ANR Daemon » Tue, 20 Nov 2007, 20:13

Но по CreateProcess нельзя запустить НЕ приложение (документ i.e.).
Для этого придется узнать, каким приложением его открыть, и вызывать это приложение ручками.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Postby Nicholas_Nemtsev » Tue, 20 Nov 2007, 22:56

Это и не было основной задачей, но крон запускает и документы, потому как есть ещё FindExecutable. Только, кажется, это не имеет отношения к теме.
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby ANR Daemon » Tue, 04 Dec 2007, 06:43

Мне так не кажется.
В настройках прописан редактор C:\Programs\Far\FarEd.lnk
Делаю клик правой кнопкой - редактировать - кронтаб: ннкрон.таб.

Запускается КОМАНДНЫЙ ИНТЕРПРЕТЕТОР.

C:\WIN2K\system32\cmd.exe /c C:\Programs\Far\FarEd.lnk nncron.tab

С какого перепугу-то? @.@

Так ничего работать не будет, даже не пытайтесь.
Во-первых, при чем тут cmd.exe, а во-вторых, почему файл указан без пути до него? В каталоге FAR'а кронтабов нету...
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Thu, 24 Jan 2008, 03:05

Это дело вообще фикситься будет?
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Sat, 10 May 2008, 01:07

Слив на тормозах не прокатит. Удаление топика тоже - у меня есть копия.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Sun, 22 Dec 2013, 01:10

Шесть лет - воз и ныне там...
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby VoidVolker » Sun, 22 Dec 2013, 10:35

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

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Wed, 25 Dec 2013, 20:55

PATH я сам сейчас на виртуалке повторить пытаюсь. Всё таки шесть лет прошло, я уже не помню, какие точно крыжики у задачи стояли.
А запуск ассоциации через кривую команду воспроизводится тривиально.
Батник: testcase.cmd
Spoiler: show
Code: Select all
IF "%~1" == "clean" (
  REG DELETE HKEY_CLASSES_ROOT\myTestFileType /f
  REG DELETE HKEY_CLASSES_ROOT\.myTestFileType /f
  DEL "%USERPROFILE%\file.myTestFileType"
  COPY /B "%ProgramFiles%\nnCron\nncron.test-tab" "%ProgramFiles%\nnCron\nncron.tab"
  DEL "%ProgramFiles%\nnCron\nncron.test-tab"
) ELSE (
  FTYPE myTestFileType=notepad.exe "%%1"
  ASSOC .myTestFileType=myTestFileType
  ECHO @PAUSE > "%USERPROFILE%\file.myTestFileType"
  ECHO. > "%TEMP%\nnCron-$$-tmp.in"
  ECHO #( test-task >> "%TEMP%\nnCron-$$-tmp.in"
  ECHO NoActive >> "%TEMP%\nnCron-$$-tmp.in"
  ECHO Action: >> "%TEMP%\nnCron-$$-tmp.in"
  ECHO START-APP: "%USERPROFILE%\file.myTestFileType" >> "%TEMP%\nnCron-$$-tmp.in"
  ECHO ^)# >> "%TEMP%\nnCron-$$-tmp.in"
  IF NOT EXIST "%ProgramFiles%\nnCron\nncron.test-tab" (
    COPY "%ProgramFiles%\nnCron\nncron.tab" "%ProgramFiles%\nnCron\nncron.test-tab"
  )
  COPY /B "%ProgramFiles%\nnCron\nncron.test-tab" + "%TEMP%\nnCron-$$-tmp.in" "%ProgramFiles%\nnCron\nncron.tab"
  DEL "%TEMP%\nnCron-$$-tmp.in"
  "explorer.exe" /select,"%USERPROFILE%\file.myTestFileType"
)


Запускаем батник, открывается окошко проводника. Тыкаем выделенный файл (можно просто <Enter>) - открывается блокнот.
Смотрим память процесса:
Spoiler: show
Module: notepad.exe
Full path: C:\WINDOWS\system32\notepad.exe
File version: 5.1.2600.5512 (xpsp.080413-2105)
Description: Блокнот
PID: 3804
Parent PID: 1876 (Explorer.EXE)
Priority: 8
Threads: 1
Owner: DAEMON-V3\anrdaemon (S-1-5-21-507921405-1614895754-1177238915-1003)
Session: 0

Started at: 21:44:56
Uptime: 00:00:04

Command Line:
"notepad.exe" "C:\Documents and Settings\anrdaemon\file.myTestFileType"


Теперь идём в меню nnCron и выполняем задачу test-task.
Дааа... Окошко блокнота, конечно, открывается... Вот только открывается оно из висящего рядом окна командного интерпетатора, который тут ни к селу, ни к городу.

P.S.
Запуск батника с параметром "clean" зачищает следы экспериментов.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Fri, 26 Dec 2014, 07:48

В очередной раз напоролся на эту "фичу". После выходных в памяти штук 40 "tcc.exe /K" висит.
Пришлось переписывать ассоциацию.
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Проблема с переменными в запущенном процессе.

Postby ANR Daemon » Sun, 24 Jul 2016, 00:37

Девять лет прошло, воз и ныне там…
Только что прибил 313 подвисших процессов
Code: Select all
C:\Programs\TCC\tcc.exe C:\Users\anrdaemon\Documents\Games\Hazeron\GalaxyViewer\downloader.php

Это при том, что ассоциация прописана
Code: Select all
"C:\Programs\TCC\tcc.exe" /C "C:\usr\sbin\php-win32\php.btm" -f "%1" -- %*

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 2 guests

cron