PROC-EXIST не находит некоторые процессы

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

Re: PROC-EXIST не находит некоторые процессы

Postby AlikasS » Thu, 17 Nov 2011, 15:11

можно тогда в rus и eng искать и результат через OR объединять
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Thu, 17 Nov 2011, 16:44

S" %QUOTE%" EVAL-SUBST

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

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Thu, 17 Nov 2011, 16:54

Кстати, я ещё такую штуку сделал, вообще красота:
Code: Select all
#( runas_x64
NoLog
NoActive
: runas { a u -- ? }
SWHide
S" runas /SAVECRED /profile /user:computer\user " a u S+ START-APP
;
Action:
WIN-INPUT-TEXT: "runas" "запуск" "mstsc" 0 0=
IF
   runas
THEN
)#

но всё равно о nncronx64 мечтать не прекращаю.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Thu, 17 Nov 2011, 17:32

Moriturus wrote:но всё равно о nncronx64 мечтать не прекращаю.

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

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Thu, 17 Nov 2011, 20:42

Грустно. За x64 будующее персоналок, а мы всё никак не перелезем.
На другой системе эта хрень (runas_x64) не работает, пароль спрашивает. :(
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Thu, 17 Nov 2011, 21:10

Moriturus wrote:Грустно.

Просто на данный момент перевод ннкрона на х64 не даст каких-либо существенных преимуществ по сравнению с 32-х битной версией.
Moriturus wrote:: runas { a u -- ? } SWHide S" runas /SAVECRED /profile /user:computer\user " a u S+ START-APP ;

Вот так эффективнее:
Code: Select all
: runas SWHide S" runas /SAVECRED /profile /user:computer\user " 2SWAP S+ START-APP ;
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Thu, 17 Nov 2011, 21:33

VoidVolker wrote:
Moriturus wrote:Грустно.

Просто на данный момент перевод ннкрона на х64 не даст каких-либо существенных преимуществ по сравнению с 32-х битной версией.

как не даёт, эти извращения не считаются что ли? Это при том, что куча всяких других слов, особенно оконных, работает не как надо. Да вот даже проблемы с запуском в виде сервиса на семёрке. Между прочим windows 8 не за горами, а что там и подумать страшно. Речь не о производительности, а о том, что между 32-битными приложениями и Системой стоит забор.
VoidVolker wrote:Code: Select all: runas SWHide S" runas /SAVECRED /profile /user:computer\user " 2SWAP S+ START-APP ;

Спасибо, красиво.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Fri, 18 Nov 2011, 17:55

Moriturus wrote:как не даёт, эти извращения не считаются что ли?

Ну, мне как-то кажется, что проще время от времени написать десяток-другой строк, чем ПОЛНОСТЬЮ переписывать весь код ннкрона.
Moriturus wrote:Это при том, что куча всяких других слов, особенно оконных, работает не как надо.

Например? Есть же форум - пиши что не работает, вместе найдем решение. Я вот уже месяца как два перехал с Хр-х86 на 7-х64. Единственное что - ннкрон работает теперь как приложение, поэтому в кронтабах убрал AsLoggedUser и собственно больше ничего.
Moriturus wrote:Речь не о производительности, а о том, что между 32-битными приложениями и Системой стоит забор.

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

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Fri, 18 Nov 2011, 18:37

VoidVolker wrote:Ну, мне как-то кажется, что проще время от времени написать десяток-другой строк, чем ПОЛНОСТЬЮ переписывать весь код ннкрона.

Вам безусловно виднее, но про весь ннкрон не очень верится :)
VoidVolker wrote:Ну и че нам этот забор? Поставить дверь - и ходи туда-сюда. Ну, или например чуть доску отогнуть.

Вы с одной стороны выше в постах поправляете и так работающий код, а с другой предлагаете через дыру в заборе лазить на постоянной основе.
Между прочим total commander, которому производительность тоже побоку, таки переделывается под x64, а ещё раньше на роль дырй в заборе там взяли специальный x64 костыль в виде отдельного процесса. Авторов у тотала тоже полтора человека, но видимо там доход позволяет не забрасывать программу, хотя я был бы не против скинуться на перевод крона в x64.
VoidVolker wrote:Есть же форум - пиши что не работает, вместе найдем решение.

в какую тему писать? И как-то загружать людей своими своими проблемами не очень правильно. Вот например мой маленький но очень удобный (для меня) пример, который не ловит x64 процесс:
Code: Select all

#( CLASSIC-TASK-#-Kill_fg_process
HyperActive
\ AsLoggedUser
\ LoadProfile
VARIABLE Window2Kill
WatchHotKey: "@^{END}"
Action:
0 SP@ GetForegroundWindow GetWindowThreadProcessId DROP Window2Kill !
QUERY: "Убить «%Window2Kill @ PROC-NAME%»?"
IF
\   Window2Kill @ kill \ жёсткий вариант
   PROC-CLOSE: "%Window2Kill @%"
\   KILL: "%Window2Kill @%"
THEN
)#
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: PROC-EXIST не находит некоторые процессы

Postby Gh0 » Fri, 18 Nov 2011, 20:01

Moriturus wrote:... Вот например мой маленький но очень удобный (для меня) пример, который не ловит x64 процесс: ...

Использую похожую задачу...
но, нужные (32/64 бит) процессы она благополучно прибивает... однако для 64-битных не показывает путь.
мне удобнее жестко убивать процесс (kill)... например, чтобы он ничего не сохранил... да и быстрее это.
а в PROC-CLOSE есть проверка PROC-EXIST, поэтому и не работает для 64бит.
Code: Select all
#( Win_Proc_Kill
USER pk_ProcID
WatchHotKey: "$@{F4}"
Action:
pk_ProcID GetForegroundWindow GetWindowThreadProcessId DROP
QUERY: "Убить процесс?%crlf%%crlf%pid: %pk_ProcID @% [%[if] pk_ProcID @ N>S PROC-EXIST?%%[else]%не %[end]%доступен]%crlf%путь: %pk_ProcID @ PROC-FULLNAME%%crlf%окно: %ACTIVE-WINDOW%"
IF
  pk_ProcID @ kill
THEN
)#
Last edited by Gh0 on Sat, 19 Nov 2011, 00:55, edited 2 times in total.
Gh0
 
Posts: 3
Joined: Wed, 09 Nov 2011, 21:40

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Fri, 18 Nov 2011, 20:46

Moriturus wrote:
VoidVolker wrote:Ну, мне как-то кажется, что проще время от времени написать десяток-другой строк, чем ПОЛНОСТЬЮ переписывать весь код ннкрона.

Вам безусловно виднее, но про весь ннкрон не очень верится :)

Ну например: сейчас переменные 32 бита, для работы с ними используются слова @ и !, для работы с 64-битными переменными (т.е. двойной длины 2VARIABLE) используются слова 2@ и 2!. А как оно будет работать в х64? Там ячейка уже 64 бита. @ - считать 32 или 64 битным? А сколько бит тогда будет у C@? А у 2@? На первый взгляд, оно только кажется просто - только и поменять константу CELL на 8 байт, а на самом деле есть огромное количество узких мест, которые надо учесть.
Moriturus wrote:Вы с одной стороны выше в постах поправляете и так работающий код, а с другой предлагаете через дыру в заборе лазить на постоянной основе.

Всяко проще, чем строить подвесной мост через этот самый заборчик. Ведь работает же. Минимум усилий - максимум эффекта.
Moriturus wrote:Между прочим total commander, которому производительность тоже побоку, таки переделывается под x64, а ещё раньше на роль дырй в заборе там взяли специальный x64 костыль в виде отдельного процесса. Авторов у тотала тоже полтора человека, но видимо там доход позволяет не забрасывать программу, хотя я был бы не против скинуться на перевод крона в x64.

Ну, что по поводу планов на счет х64 крона - это вон Николая спрашивать надо. Свое мнение я уже озвучил выше.
Moriturus wrote:
VoidVolker wrote:Есть же форум - пиши что не работает, вместе найдем решение.
в какую тему писать?

Ну например "ннкрон и х64 - проблемы и решения".
Moriturus wrote:И как-то загружать людей своими своими проблемами не очень правильно.

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

Re: PROC-EXIST не находит некоторые процессы

Postby AlikasS » Thu, 29 Dec 2011, 08:17

AlikasS wrote:можно тогда в rus и eng искать и результат через OR объединять

как-то так, без упрощения самой командной строки
Code: Select all
<%
: PROC-EXIST64? { a u -- ? }
SWHide
S" %COMSPEC% /c tasklist /FI %QUOTE%Имя образа eq " EVAL-SUBST a u S+ S" %QUOTE% | find /I /N %QUOTE%" EVAL-SUBST S+ a u S+ QUOTE S+ START-APPW
ExitCodeProc 0=
IF TRUE
ELSE FALSE
THEN

SWHide
S" %COMSPEC% /c tasklist /FI %QUOTE%IMAGENAME eq " EVAL-SUBST a u S+ S" %QUOTE% | find /I /N %QUOTE%" EVAL-SUBST S+ a u S+ QUOTE S+ START-APPW
ExitCodeProc 0=
IF TRUE
ELSE FALSE
THEN
OR
;
%>


#( тест_нахождения_процесса
NoActive
Action:
 S" Поиск процессов" S" введите имя процесса" S" nncron.exe" 0 WIN-INPUT-TEXT 0=
 IF
   PROC-EXIST64?
   IF TMSG: "Exist" 1
   ELSE TMSG: "Not Exist" 1
   THEN
 THEN
)#
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Previous

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron