/* *** $VER: US-Cleaner V1.0 (14.10.98) © by Nils Görs */ OPTIONS RESULTS PARSE ARG PUBSCREEN IF PubScreen == "?" THEN DO OPTIONS PROMPT "PUBSCREEN/K: " PARSE PULL PubScreen END /* ** Beschreibung der Applikation */ appname = 'US-Cleaner' applongname = 'User-Startup Cleaner - ©1998 by Nils Görs' appinfo = "(De)activate or removes BEGIN-END from User-Startup" appversion = '1.0' apprelease = '1' appdate = '14.10.98' /* ** Alles öffnen und Variablen initialisieren */ CALL _InitAll /* ** GUI erstellen. */ _maintags: windowtags = WindowID(1), PubScreenName(PubScreen), WindowBackfillFB, WindowTitle(appname appversion), BeginMenu("Project"), MenuItem("?_About",200) ItemBarlabel, MenuItem("Q_Quit",201), 'HorizGroupA', 'Space', 'VertGroupA', 'Space', 'BeginLine', ListSSN(Eintraege,1,1,0), 'Space', ListROC(Inhalt,2,0), 'EndLine', 'Space', 'BeginLine', Button('(de)_activate',100), 'Space', Button('_Remove',101), 'Space', Button('_Save',102), 'EndLine', 'Space', 'EndGroup', 'Space', 'EndGroup', 'EndProject' app = TR_CREATEAPP('TRCA_Name' '"'appname'"', 'TRCA_LongName' '"'applongname'"', 'TRCA_Info' '"'appinfo'"', 'TRCA_Version' '"'appversion'"', 'TRCA_Release' '"'apprelease'"', 'TRCA_Date' '"'appdate'"', 'TAG_END') /* ** Unterbrechungssignale */ SIGNAL ON break_c SIGNAL ON failure SIGNAL ON halt SIGNAL ON ioerr SIGNAL ON syntax IF app ~= '00000000'x THEN DO window = TR_OPENPROJECT(app,windowtags) WindowProject=C2D(window) /* zum Locken des Fensters bei Über */ IF window ~= '00000000'x THEN DO ende = 0 CALL TR_SendMessage(Window,1,'TROM_ACTIVATE',1) DO WHILE ende ~= 1 CALL TR_WAIT(app,'') DO WHILE TR_HANDLEMSG(app,'event') /****************** *** CLOSEGADGET *** *******************/ IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende = 1 IF event.trm_class = 'TRMS_NEWVALUE' THEN DO IF event.trm_id = 1 THEN DO nummer=TR_GETATTRIBUTE(window,1,TRAT_VALUE)+1 CALL GetInhalt(nummer) CALL TR_SETATTRIBUTE(window,2,'TROB_ListView',Inhalt) END END IF event.trm_class = 'TRMS_ACTION' THEN DO IF event.trm_id = 200 THEN CALL About IF event.trm_id = 201 THEN DO Quit=TR_EasyRequest(app,"Really Quit?",, "_Yes|_No","TREZ_Title" '"Quit AmiSoxGUI"' "TREZ_LockProject" WindowProject) IF Quit == 1 THEN ende=1 END IF event.trm_id = 102 THEN DO IF changes = 1 THEN DO Change=TR_EasyRequest(app,"Really saveing changed list?",, "_Yes|_No","TREZ_Title" '"Save new Sequence"' "TREZ_LockProject" WindowProject) IF Change = 1 THEN DO CALL RXTR_WRITEFILE(UserStartup,startup) Changes = 0 END END END IF event.trm_id = 100 THEN DO nummer=TR_GETATTRIBUTE(window,1,TRAT_VALUE)+1 Nummer1=WORD(Eintraege2.Nummer,1) Nummer2=WORD(Eintraege2.Nummer,2) DO i = Nummer1+1 TO Nummer2-1 IF INDEX(startup.i,";") = 1 THEN startup.i = DELSTR(startup.i,1,1) ELSE IF startup.i ~= "" THEN startup.i = ";"||startup.i END nummer=TR_GETATTRIBUTE(window,1,TRAT_VALUE)+1 CALL GetInhalt(nummer) CALL TR_SETATTRIBUTE(window,2,'TROB_ListView',Inhalt) changes = 1 END IF event.trm_id = 101 THEN DO nummer=TR_GETATTRIBUTE(window,1,TRAT_VALUE)+1 Nummer1=WORD(Eintraege2.Nummer,1) Nummer2=WORD(Eintraege2.Nummer,2) CALL RXTR_STEMREMOVE(startup,nummer1,nummer2-nummer1) CALL RXTR_STEMREMOVE(Eintraege,nummer,1) CALL RXTR_STEMREMOVE(Eintraege2,nummer,1) Tempname = "T:USCleaner" CALL RXTR_WRITEFILE(tempname,startup) CALL ReadUserStartup(Tempname) CALL TR_SETATTRIBUTE(window,1,'TROB_ListView',Eintraege) nummer=TR_GETATTRIBUTE(window,1,TRAT_VALUE)+1 CALL GetInhalt(nummer) CALL TR_SETATTRIBUTE(window,2,'TROB_ListView',Inhalt) changes = 1 ADDRESS COMMAND "Delete" Tempname "QUIET" END END /* große Schleife Ende! */ END END CALL TR_CLOSEPROJECT(window) END CALL TR_DELETEAPP(app) EXIT _InitAll: NL = '0a'x TRUE = 1 FALSE = 0 HelpBool= 0 changes = 0 /* ** Open libs */ IF ~SHOW('LIBRARIES','tritonrexx.library') THEN IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN quit('Cannot open tritonrexx.library!',10) IF ~SHOW(LIBRARIES,'rexxtricks.library') THEN IF ~ADDLIB('rexxtricks.library',9,-30,38) THEN quit('Cannot open rexxtricks.library!',10) /* ** Getdefault PubScreen */ IF PubScreen == "" THEN PubScreen = RXTR_GETDEFAULTPUBSCREEN() UserStartup = "S:User-Startup" CALL ReadUserStartup(UserStartup) CALL GetInhalt(1) RETURN ReadUserStartup: PARSE ARG Filename IF RXTR_READFILE(Filename,Startup) = 0 THEN EXIT more = 1 a = 0 c = 1 /* Nummer der Liste */ i = 1 DO WHILE more nummer1 = RXTR_LSEARCH("#?;BEGIN#?",startup,i,case,pattern) IF nummer1 = -1 THEN DO more = 0 ITERATE END nummer2 = RXTR_LSEARCH("#?;END#?",startup,nummer1+1,case,pattern) nummer3 = RXTR_LSEARCH("#?;BEGIN#?",startup,nummer1+1,case,pattern) IF nummer3 < nummer2 & nummer3 ~=-1 THEN say "END Fehler!" /* BEGIN ohne END */ IF nummer2 = -1 & nummer1 ~= -1 THEN say "END Fehler #2" /* BEGIN ohne END im letzten Eintrag!*/ a = a+1 num=INDEX(startup.nummer1,";BEGIN") Eintraege.a = SUBSTR(startup.nummer1,num+7) /* Listview mit BEGIN|END Einträgen erstellen */ Eintraege2.a = nummer1 nummer2 i = nummer2+1 END Eintraege.0 = a /* Anzahl der BEGIN|END Einträge */ Eintraege2.0 = a /* Koordinaten für Eintraege */ RETURN GetInhalt: PARSE ARG Nummer Nummer1=WORD(Eintraege2.Nummer,1) Nummer2=WORD(Eintraege2.Nummer,2) d = 0 DO b = nummer1+1 TO nummer2-1 d = d +1 Inhalt.d = startup.b END Inhalt.0 = d RETURN /* ** Info über das Programm anzeigen. */ about: CALL TR_AUTOREQUEST(app,window,PubScreenName(PubScreen), BeginRequester('About','TRWP_CENTERDISPLAY'), 'VertGroupA', 'Space', CenteredText3(appname appversion '('||appdate||') (C) 1998 by Nils Görs '), 'SpaceS', CenteredText(appinfo), 'Space', 'HorizSeparator', 'Space', CenteredText3('This program is using the 'Triton GUI creation system''), 'SpaceS', CenteredText("'Triton' is (C) by Stefan Zeiger "), 'Space', 'HorizSeparator', 'Space', CenteredText3("This program also use 'tritonrexx.library'"), 'SpaceS', 'HorizGroupSC', 'Space', TextN("'tritonrexx.library' is (C) by Jürgen Kohrmeyer ") 'TRAT_Flags TRTX_NOUNDERSCORE', 'Space', 'EndGroup', 'Space', 'EndGroup', 'BeginRequesterGads', CenteredButtonRE("Thank you",10000), 'EndRequester') RETURN /******************************************************************************* ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird *******************************************************************************/ break_c: failure: halt: ioerr: syntax: SAY '+++ Error' rc 'in Line' sigl '-' ERRORTEXT(rc) SAY SOURCELINE(sigl) SAY '' SAY 'Please send a mail to: N.Goers@Art-Line.de' SAY '' SAY '[Press any key]' call RXTR_GETKEY(20) IF app ~= '00000000'x THEN CALL TR_DELETEAPP(app) EXIT(10) /*EOS*/