Le fichier source est ${UPS_HOME}/upsvtm/demo/${UPS_LANGUAGE}/syswin.upl ou ${UPS_HOME}/upsvtm/demo/${UPS_LANGUAGE}/sysunix.upl.
upscmp Source=system.upl
system
upssng Source=system.upl
Source Composant "Exemple d'emploi de Up ! System" Version 4.0.0;
ImporterModule
/************/
UpsSec(<UpsSec.upi>, ImporterDefinitions);
Variable
/******/
NbAlarmes : Entier;
Fonction MonAlarme() Retourner Booleen
/************************************/
Debut
Ecran.Ecrire("Date="+Caractere(DateSysteme(),"%HH:%Mi:%S"));
Retourner ++NbAlarmes<3;
Fin Fonction
Fonction EcrireEntree() Retourner Nul Ou Caractere
/************************************************/
Debut
Retourner Nul;
Fin Fonction
Procedure LireSortie(M : Caractere)
/*******************************/
Debut
Ecran.Ecrire(M);
Fin Procedure
Principal
/*******/
Variable
/******/
C : Nul Ou Caractere;
P : Entier;
CR : Entier;
UtilisateurProprietaire : Entier;
GroupeProprietaire : Entier;
DateDernierAcces : Nul Ou Date;
DateDerniereModification : Nul Ou Date;
DateCreation : Nul Ou Date;
EstCache : Booleen;
L1 : Nul Ou ListeDe FichierListe;
FL : Nul Ou FichierListe;
L2 : Nul Ou ListeDe ProcessusListe;
PL : Nul Ou ProcessusListe;
L3 : Nul Ou ListeDe UniteListee;
UL : Nul Ou UniteListee;
CommandeLink : Nul Ou Caractere;
Debut
Ecran.Ecrire("NomNoeud="+NomNoeud);
Ecran.Ecrire("NomMachine="+NomMachine);
Ecran.Ecrire("NomProgramme="+NomProgramme);
Ecran.Ecrire("NomUtilisateur="+NomUtilisateur);
Ecran.Ecrire("NomGroupe="+NomGroupe);
Ecran.Ecrire("NumeroProcessus="+Caractere(NumeroProcessus));
Ecran.Ecrire("NumeroGroupe="+Caractere(NumeroGroupe));
Ecran.Ecrire("NumeroUtilisateur="+Caractere(NumeroUtilisateur));
Ecran.Ecrire("SystemeDExploitation="+SystemeDExploitation);
Ecran.Ecrire("SeparateurRepertoire="+SeparateurRepertoire);
Ecran.Ecrire("UpsHome="+UpsHome);
Ecran.Ecrire("UpsPath="+UpsPath);
Ecran.Ecrire("UpsUser="+UpsUser);
Alarme(MonAlarme, 10, Vrai);
Ecran.Ecrire("On attend 40 secondes");
Attendre(40.0);
Ecran.Ecrire("Fin de l'attente");
Ecran.Ecrire("Aleatoire()="+Caractere(Aleatoire()));
Ecran.Ecrire("BornerRepertoire('/tmp')="+BornerRepertoire("/tmp"));
ChangerEnvironnement("UPS_ESSAI", "Bonjour le monde");
Ecran.Ecrire("LireEnvironnement(UPS_ESSAI)="+LireEnvironnement("UPS_ESSAI"));
Ecran.Ecrire("LireEnvironnement(PATH)="+LireEnvironnement("PATH"));
ChangerPriorite(5);
Ecran.Ecrire("LirePriorite()="+Caractere(LirePriorite()));
ChangerPriorite(4);
C=Crypter("XYZT", "Bonjour le monde");
Ecran.Ecrire(C);
Ecran.Ecrire(Decrypter("XYZT", C));
CreerRepertoire("/tmp2");
CreerFichier("/tmp2/essai.txt");
Si IlExisteRepertoire("/tmp2") Alors
Ecran.Ecrire("Il existe repertoire '/tmp2'");
Fin Si
Si IlExisteFichier("/tmp2/essai.txt") Alors
Ecran.Ecrire("Il existe fichier '/tmp2/essai.txt'");
Fin Si
ChangerDroitsDAcces("/tmp2/essai.txt", DroitLectureEcriture,
DroitLecture, DroitLecture);
Selon LireDroitsDAcces("/tmp2/essai.txt", ?, ?) Faire
Cas Dans (DroitLectureEcriture, DroitLectureEcritureExecution) Faire
Ecran.Ecrire("Lecture, Ecriture et Execution");
Fin Cas
Defaut
Ecran.Ecrire("Autres droits");
Fin Defaut
Fin Selon
CopierFichier("/tmp2/essai.txt", "/tmp2/essai.sav");
RenommerFichier("/tmp2/essai.sav", "/tmp2/essai.bak");
SupprimerFichier("/tmp2/essai.bak");
CopierRepertoire("/tmp2", "/tmp3");
SupprimerRepertoire("/tmp2");
RenommerRepertoire("/tmp3", "/tmp2");
SupprimerRepertoire("/tmp2");
Si IlExisteRepertoire("/tmp2") Alors
Ecran.Ecrire("Il existe repertoire '/tmp2'");
Fin Si
Si IlExisteFichier("/tmp2/essai.txt") Alors
Ecran.Ecrire("Il existe fichier '/tmp2/essai.txt'");
Fin Si
ChangerRepertoireCourant("/tmp");
Ecran.Ecrire("RepertoireCourant="+LireRepertoireCourant());
Ecran.Ecrire(RechercherFichierDansChemin(LireEnvironnement("notepad", "PATH"), "exe"));
?=Executer("notepad.exe", Faux, Faux, P);
Attendre(10.0);
ArreterProcessus(P);
CommandeLink=RechercherFichierDansChemin(LireEnvironnement("link", "PATH"), "exe");
Ecran.Ecrire("link.exe="+Caractere(Executer(CommandeLink+" /help",Vrai,Vrai,P)));
?=Executer(CommandeLink+" /help",Faux,Faux,P);
Attendre(10.0);
Si LireCodeRetour(P,CR) Alors
Ecran.Ecrire("Code-retour de link.exe="+Caractere(CR));
Fin Si
?=Executer(CommandeLink+" /help", Vrai, Vrai, P, Nul, EcrireEntree,
LireSortie);
Ecran.Ecrire(LireEnvironnement("HKEY_LOCAL_MACHINE/software/UpCompany/ups/UPS_HOME2"));
Ecran.Ecrire("Taille autoxec.bat=" +
Caractere(LireCaracteristiquesFichier("c:/autoexec.bat")));
Ecran.Ecrire("Taille autoxec.bat=" +
Caractere(LireCaracteristiquesFichier("c:/autoexec.bat",
UtilisateurProprietaire, GroupeProprietaire, DateDernierAcces,
DateDerniereModification, DateCreation, EstCache)));
Ecran.Ecrire(UtilisateurProprietaire);
Ecran.Ecrire(GroupeProprietaire);
Ecran.Ecrire(Caractere(DateDernierAcces));
Ecran.Ecrire(Caractere(DateDerniereModification));
Si EstCache Alors
Ecran.Ecrire("Est cache");
Sinon
Ecran.Ecrire("N'est pas cache");
Fin Si
Ecran.Ecrire("\n");
L1=ListerFichiers("c:/", Nul);
Pour FL=L1.ParcoursAuDebut() JusquA L1.DernierElement() Faire
Ecran.Ecrire(FL.NomFichier);
Fin Pour
Ecran.Ecrire("\n");
L2=ListerProcessus();
Pour PL=L2.ParcoursAuDebut() JusquA L2.DernierElement() Faire
Ecran.Ecrire(PL.NomProgramme);
Ecran.Ecrire(PL.Numero);
Ecran.Ecrire(PL.TempsSysteme);
Ecran.Ecrire(PL.TempsUtilisateur);
Ecran.Ecrire("\n");
Fin Pour
L3=ListerUnites(Nul);
Pour UL=L3.ParcoursAuDebut() JusquA L3.DernierElement() Faire
Ecran.Ecrire(UL.NomUnite);
Ecran.Ecrire(UL.PlaceLibre);
Ecran.Ecrire(UL.PlaceTotale);
Ecran.Ecrire("\n");
Fin Pour
Fin Principal