Консоль или задача?

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

Консоль или задача?

Postby Morituruz » Tue, 29 Jul 2014, 14:56

Есть ли способ узнать внутри слова откуда оно было запущено, из консоли или задачи?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Tue, 29 Jul 2014, 22:39

Ну, например:
Code: Select all
<%
VARIABLE ConsoleTID
: GetConsoleTID
    GetCurrentThreadId ConsoleTID !
    MY-TITLE
;
' GetConsoleTID ' TITLE JMP

: Console?
  GetCurrentThreadId ConsoleTID @ =
;
%>

Возможно, не самый надежный способ, но в общем случае должно работать нормально. В TITLE все равно стоит джамп на MY-TITLE:
nnsrc\cron\nncron.f
Code: Select all
' MY-TITLE ' TITLE JMP
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Консоль или задача?

Postby Morituruz » Wed, 30 Jul 2014, 08:15

Не работает
Code: Select all
<%
: test_console
Console?
IF
   ." Console" CR
ELSE
   ." Task" CR
THEN
;
%>

#( test_console_task
NoActive
Action:
test_console
)#
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Wed, 30 Jul 2014, 08:44

Code: Select all
<%
VARIABLE ConsoleTID
: GetConsoleTID
    GetCurrentThreadId ConsoleTID !
    MY-TITLE
;
' GetConsoleTID ' TITLE JMP

: Console?
    GetCurrentThreadId ConsoleTID @ =
;
%>

#( test_console_task
NoActive
: test_console
    Console?
    IF
        ." Console" CR
    ELSE
        ." Task" CR
    THEN
;
Action:
Console? .
ConsoleTID @ . CR
test_console
)#

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

Re: Консоль или задача?

Postby Morituruz » Wed, 30 Jul 2014, 08:55

Нет, дело в том, что у меня и из консоли "таск":
Code: Select all
test_console
Task
 Ok
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Wed, 30 Jul 2014, 10:50

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

Re: Консоль или задача?

Postby Morituruz » Wed, 30 Jul 2014, 11:12

Win7 x64, запущен как приложение, перезапущен, GetCurrentThreadId выдаёт правильный ID.
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Wed, 30 Jul 2014, 11:26

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

Re: Консоль или задача?

Postby Morituruz » Wed, 30 Jul 2014, 11:33

В ConsoleTID 0.

Code: Select all
0 0
Task
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Wed, 30 Jul 2014, 12:41

Ну вот, значит либо TITLE не отрабатывает при запуске консоли либо переход в нужное слово не сделан. TITLE выводит приветствие в консоли.
Code: Select all
: GetConsoleTID
    GetCurrentThreadId ConsoleTID !
    ." GetConsoleTID" CR
    MY-TITLE
;

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

Re: Консоль или задача?

Postby Morituruz » Wed, 30 Jul 2014, 12:55

Что делать, если не написано?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Консоль или задача?

Postby VoidVolker » Wed, 30 Jul 2014, 14:12

Искать причину, почему TITLE не отрабатывает. Стандартное приветствие показывается? Запуск TITLE в консоли показывает приветствие? Где и как запускается указанный мною код? Выполняется ли хак с джампом? А если этот код выполнить в консоли? Дизассемблирование TITLE должно показывать, что там идет безусловный переход на GetConsoleTID.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests