Как остановить команду scr файла

Автор Тема: Как остановить команду scr файла  (Прочитано 1464 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Код - C# [Выбрать]
  1. double d1 = new double();
  2.             PromptStringOptions pStrOpts01 = new PromptStringOptions("\nEnter test1: ");
  3.             PromptResult pStrRes01 = doc.Editor.GetString(pStrOpts01);
  4.             if (pStrRes01.Status != PromptStatus.OK) return;
  5.             if (double.TryParse(pStrRes01.StringResult, out d1 ) == false) return;
  6.             if (d1 <= 0) return;
  7.  
  8.             double d2 = new double();
  9.             PromptStringOptions pStrOpts02 = new PromptStringOptions("\nEnter test2: ");
  10.             PromptResult pStrRes02 = doc.Editor.GetString(pStrOpts02);
  11.             if (pStrRes02.Status != PromptStatus.OK) return;
  12.             if (double.TryParse(pStrRes02.StringResult, out d2) == false) return;
  13.             if (d2 <= 0) return;
  14.  

Соответственно при первом "неудачном" вводе программа останавливается, но по "инерции"  в командную строку попадает и 2й ввод. Как избежать второго ввода?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #1 : 07-10-2020, 11:55:23 »
Соответственно при первом "неудачном" вводе программа останавливается, но по "инерции"  в командную строку попадает и 2й ввод. Как избежать второго ввода?
1. При чем здесь scr-файл?
2. Второй ввод не может попадать при "неудачном" вводе. Или что ты понимаешь под неудачным вводом?
3. Почему вопрос в этом разделе, а не в .NET?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Re: Как остановить команду scr файла
« Ответ #2 : 07-10-2020, 12:17:42 »
При чем здесь scr-файл?
Потому что я использую именно этот сценарий  в работе.
Допустим scr файл:
_FILEDIA
0
_SECURELOAD
0
_CMDDIA
0
_REPORTERROR
0
_NETLOAD
d:\cod\test.dll
mytestcommand
; здесь не double,выходим, но захватывает нижнее 333
notdouble
333

Второй ввод не может попадать при "неудачном" вводе. Или что ты понимаешь под неудачным вводом?
"Неудачный" ввод в данном конкретном случае это строка - notdouble,  а не double.
Но в командной строке, тем не менее:

Enter test1: notdouble

Command: 333
Unknown command "333".  Press F1 for help.

Почему вопрос в этом разделе, а не в .NET?
Потому что, я думаю что это особенность команды script (может ассинхронность какая то тут?) , а не NET.API

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #3 : 07-10-2020, 13:18:51 »
Но в командной строке, тем не менее:

Enter test1: notdouble

Command: 333
Unknown command "333".  Press F1 for help.
Так и должно быть. Ты вышел из команды mytestcommand, но в scr-файле у тебя дальше 333 - вот они и воспринимаются как следующая команда.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Re: Как остановить команду scr файла
« Ответ #4 : 07-10-2020, 13:28:48 »
В этом и вопрос. Как прервать выполнение scr файла после notdouble, чтобы в комстроку не передавалось дальше 333?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #5 : 07-10-2020, 13:34:28 »
В этом и вопрос. Как прервать выполнение scr файла после notdouble, чтобы в комстроку не передавалось дальше 333?

Вообще-то никак. Можешь попытаться отправить в командную строку ^C^C для прерывания команды, но шансы небольшие.
А если 333 в принципе должно обрабаватыся тоже в mytestcommand в случае успешного ввода первого значения, то не выходи из команды даже если ввод некорректный, а "съедай" и второй ввод тоже.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Re: Как остановить команду scr файла
« Ответ #6 : 07-10-2020, 14:03:13 »
Вариант с ed.Command("^C^C") вываливается исключение.

Вариант c doc.SendStringToExecute("^C^C ", true, false, false);
В ком строке :
Enter BACKSPACE to interrupt script.
Command: 333 Unknown command "333".  Press F1 for help.

С "проглатыванием" всех команд  вариант. но придется алгоритм доступа перестроить в контексте моей программы.Спасибо.



Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #7 : 07-10-2020, 14:07:24 »
Вариант c doc.SendStringToExecute("^C^C ", true, false, false);
В ком строке :
Enter BACKSPACE to interrupt script.
Command: 333 Unknown command "333".  Press F1 for help.
Попробуй:
Код - C# [Выбрать]
  1. doc.SendStringToExecute("\003\003", true, false, false);
или
Код - C# [Выбрать]
  1. doc.SendStringToExecute("\003\003 ", true, false, false);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Re: Как остановить команду scr файла
« Ответ #8 : 07-10-2020, 14:15:02 »
Оба мимо. eInvalidInput

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #9 : 07-10-2020, 14:37:36 »
Осталось попробовать:
Код - C# [Выбрать]
  1. doc.SendStringToExecute("\x1B\x1B", true, false, false);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 145
  • Карма: 3
Re: Как остановить команду scr файла
« Ответ #10 : 07-10-2020, 14:49:26 »
Увы. Enter BACKSPACE to interrupt script и  выскакивает следующая команда.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13000
  • Карма: 1673
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как остановить команду scr файла
« Ответ #11 : 07-10-2020, 14:52:39 »
Увы. Enter BACKSPACE to interrupt script и  выскакивает следующая команда.
Ну можно еще попробовать через Windows API послать BACKSPACE. Но я не вижу смысла. Нужно менять логику программы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение