[#1] Implementacja portu ARexxa, logika działania
Implementuję port Arexxa w GoADF, i mam dylemat jak dokładnie powinien zachować się program w sytuacjach kiedy normalne użycie GUI wymaga interakcji z userem.
Może przykład, który wyjaśni o co mi chodzi - port ARexxa w GoADF ma obsługę rozkazu:

ImageToDisk <drive> [FORMAT] [VERIFY]

rozkaz ten powoduje wyświetlenie w GoADF okna dialogowego nagrywania ADF na dyskietkę i uruchomienie samego nagrywania. No i normalnie przed nagraniem dyskietki program się pyta requesterem czy na pewno, bo to wymaże aktualną zawartość, za pomocą requesterów informuje tez o błędach czy zakończeniu procesu.

A jak ma się zachować program jeśli akcja jest zainicjowana z ARexxa? Przyjąć że user wie co robi, skoro użył rozkazu ImageToDisk, i całkowicie zrezygnować z interakcji? A co w przypadku błędu (np uszkodzona dyskietka) - zamknąć od razu okno nagrywania i zwrócić błąd w kodzie wyjścia rozkazu, pozwalając skryptowi iść dalej?

Skłaniam się ku temu drugiemu, bo to w końcu skrypt i autor który go pisze powinien zapewnić obsługę błędów w skrypcie, ale może jednak są takie sytuacje kiedy jednak powinna być interakcja z programu, bo może się to wiązać np z utratą danych?

Inny przykład - rozkaz:
LoadImage <file>


Który ładuje plik z obrazem dyskietki. Niby bez interakcji, ale GoADF sprawdza podczas ładowania obrazu ADFa pod kątem zawirusownia, i jesli znajdzie wirusa np w bootblocku to wyświetla alert. A w skrypcie - załadować, nie załadować, wyświetlić alert i zatrzymac tym samym wykonywanie skryptu?

Ktos ma jakieś doświadczenia ze skryptami ARexxa i podpowie?
[#2] Re: Implementacja portu ARexxa, logika działania

@vojo, post #1

ImageToDisk <drive> [FORMAT] [VERIFY] możesz dodać parametr [Verbose] albo [Interactive], jak ktos poda to bedzie requester, jak nie poda to nie będzie.
[#3] Re: Implementacja portu ARexxa, logika działania

@michal_zukowski, post #2



ImageToDisk <drive> [FORMAT] [VERIFY] możesz dodać parametr [Verbose] albo [Interactive], jak ktos poda to bedzie requester, jak nie poda to nie będzie.


O, to może lepiej globalnie, dodać rozkaz:
SetInteractiveMode <on|off>


który albo zostawi wszystkie interakcje, albo wszystkie wyłączy. Defaultowo na On, żeby wyłączenie intetakcji było na wyraźne żądanie usera.
[#4] Re: Implementacja portu ARexxa, logika działania

@vojo, post #3

Też można, z tym, że po wykonaniu skryptu takie coś może zostać w contextcie programu więc klikanie guiowe też nie będzie działało z requesterami.
[#5] Re: Implementacja portu ARexxa, logika działania

@michal_zukowski, post #4

Jak wpada message na port ARexxa to ustawiam sobie flagę bArrexMode, a przy Reply ją kasuję. Więc wystarczy ten tryb interakcji powiazać logicznie z tą flagą, żeby akcje z portu okna (GUI) były niewrażliwe na arexxowe ustawienia interakcji OK
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem