upsvtm Com=Charger
systeme.exe
Le déclenchement d'alarme ne fonctionne qu'à partir de la version .NET 2002 puisque cela nécessite que le noyau d'exécution de Visual Basic supporte le multi-thread.
Public Const DroitLecture As Integer = 1
Public Const DroitEcriture As Integer = 2
Public Const DroitExecution As Integer = 3
Public Const DroitLectureEcriture As Integer = 4
Public Const DroitLectureExecution As Integer = 5
Public Const DroitEcritureExecution As Integer = 6
Public Const DroitLectureEcritureExecution As Integer = 7
Public MUpsKrn As IUpsKrn
Public MUpsSys As IUpsSys
Public MUpsSec As IUpsSec
Public NbAlarmes As Integer
Public Sub EcrireEcran(ByVal Libelle As String)
' =============================================
Form1.Ecran.AddItem Libelle
End Sub
Public Function MonAlarme() As Boolean
' ====================================
On Error GoTo GestionErreur
EcrireEcran "Date=" +
MUpsKrn.Caractere2ComBStr(MUpsKrn.Caractere4(MUpsSys.DateSysteme(),
MUpsKrn.ComBStr2Caractere("%HH:%Mi:%S")))
NbAlarmes = NbAlarmes + 1
If NbAlarmes < 3 Then
MonAlarme = True
Else
MonAlarme = False
End If
Exit Function
GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le
source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Function
Public Function EcrireEntree() As IUpsKrnCaractere
' ================================================
On Error GoTo GestionErreur
Set EcrireEntree = MUpsKrn.ObjetNul
Exit Function
GestionErreur:
'=============
On Error GoTo GestionErreur
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le
source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Function
Public Sub LireSortie(ByVal M As IUpsKrnCaractere)
' ================================================
EcrireEcran MUpsKrn.Caractere2ComBStr(M)
Exit Sub
GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le
source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub
Private Sub Form_Load()
' =====================
Dim C As IUpsKrnCaractere
Dim P As Long
Dim CR As Long
Dim UtilisateurProprietaire As Long
Dim GroupeProprietaire As Long
Dim DroitsGroupe As IUpsKrnEnumere
Dim DroitsAutres As IUpsKrnEnumere
Dim DateDernierAcces As IUpsKrnDate
Dim DateDerniereModification As IUpsKrnDate
Dim DateCreation As IUpsKrnDate
Dim EstCache As Boolean
Dim L1 As IUpsKrnListe
Dim FL As IUpsSysFichierListe
Dim L2 As IUpsKrnListe
Dim PL As IUpsSysProcessusListe
Dim L3 As IUpsKrnListe
Dim UL As IUpsSysUniteListee
Dim CommandeLink As IUpsKrnCaractere
Dim Inutile As Long
On Error GoTo GestionErreur
Set MUpsKrn = CreateObject("UpsApp.UpsKrn")
Set MUpsSys = CreateObject("UpsApp.UpsSys")
Set MUpsSec = CreateObject("UpsApp.UpsSec")
NbAlarmes = 0
EcrireEcran "NomNoeud=" + MUpsKrn.Caractere2ComBStr(MUpsSys.NomNoeud())
EcrireEcran "NomMachine=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.NomMachine())
EcrireEcran "NomProgramme=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.NomProgramme())
EcrireEcran "NomUtilisateur=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.NomUtilisateur())
EcrireEcran "NomGroupe=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.NomGroupe())
EcrireEcran "NumeroProcessus=" + Str$(MUpsSys.NumeroProcessus())
EcrireEcran "NumeroGroupe=" + Str$(MUpsSys.NumeroGroupe())
EcrireEcran "NumeroUtilisateur=" + Str$(MUpsSys.NumeroUtilisateur())
EcrireEcran "SystemeDExploitation=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.SystemeDExploitation())
EcrireEcran "SeparateurRepertoire=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.SeparateurRepertoire())
EcrireEcran "UpsHome=" + MUpsKrn.Caractere2ComBStr(MUpsSys.UpsHome())
EcrireEcran "UpsPath=" + MUpsKrn.Caractere2ComBStr(MUpsSys.UpsPath())
EcrireEcran "UpsUser=" + MUpsKrn.Caractere2ComBStr(MUpsSys.UpsUser())
' Les alarmes ne fonctionnement qu'avec .NET 2002 ou superieur
MUpsSys.Alarme MUpsKrn.ComAppel2Appel(HRESULT MonAlarme([out, retval] short
*retval)", AddressOf MonAlarme), 10, True
EcrireEcran "On attend 40 secondes"
MUpsSys.Attendre 40
EcrireEcran "Fin de l'attente"
EcrireEcran "Aleatoire()=" + Str$(MUpsSys.Aleatoire())
EcrireEcran "BornerRepertoire('/tmp')=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.BornerRepertoire(MUpsKrn.ComBStr2Caractere("/tmp")))
MUpsSys.ChangerEnvironnement MUpsKrn.ComBStr2Caractere("UPS_ESSAI"),
MUpsKrn.ComBStr2Caractere("Bonjour le monde")
EcrireEcran "LireEnvironnement(UPS_ESSAI)=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.LireEnvironnement(MUpsKrn.ComBStr2Caractere("UPS_ESSAI")))
EcrireEcran "LireEnvironnement(PATH)=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.LireEnvironnement(MUpsKrn.ComBStr2Caractere("PATH")))
MUpsSys.ChangerPriorite 5
EcrireEcran "LirePriorite()=" + Str$(MUpsSys.LirePriorite())
MUpsSys.ChangerPriorite 4
Set C = MUpsSec.Crypter(MUpsKrn.ComBStr2Caractere("XYZT"),
MUpsKrn.ComBStr2Caractere("Bonjour le monde"))
EcrireEcran MUpsKrn.Caractere2ComBStr(C)
EcrireEcran
MUpsKrn.Caractere2ComBStr(MUpsSec.Decrypter(MUpsKrn.ComBStr2Caractere("XYZT"),
C))
MUpsSys.CreerRepertoire MUpsKrn.ComBStr2Caractere("/tmp2")
MUpsSys.CreerFichier MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt")
If MUpsSys.IlExisteRepertoire(MUpsKrn.ComBStr2Caractere("/tmp2"))
Then
EcrireEcran "Il existe repertoire '/tmp2'"
End If
If MUpsSys.IlExisteFichier(MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt"))
Then
EcrireEcran "Il existe fichier '/tmp2/essai.txt'"
End If
MUpsSys.ChangerDroitsDAcces MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt"),
DroitLectureEcriture, DroitLecture, DroitLecture
Select Case MUpsKrn.Enumere2ComShort(MUpsSys.LireDroitsDAcces(MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt"),
DroitsGroupe, DroitsAutres))
Case DroitLectureEcriture, DroitLectureEcritureExecution
EcrireEcran "Lecture, Ecriture et Execution"
Case Else
EcrireEcran "Autres droits"
End Select
MUpsSys.CopierFichier MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt"),
MUpsKrn.ComBStr2Caractere("/tmp2/essai.sav")
MUpsSys.RenommerFichier MUpsKrn.ComBStr2Caractere("/tmp2/essai.sav"),
MUpsKrn.ComBStr2Caractere("/tmp2/essai.bak")
MUpsSys.SupprimerFichier MUpsKrn.ComBStr2Caractere("/tmp2/essai.bak")
MUpsSys.CopierRepertoire MUpsKrn.ComBStr2Caractere("/tmp2"),
MUpsKrn.ComBStr2Caractere("/tmp3")
MUpsSys.SupprimerRepertoire MUpsKrn.ComBStr2Caractere("/tmp2")
MUpsSys.RenommerRepertoire MUpsKrn.ComBStr2Caractere("/tmp3"),
MUpsKrn.ComBStr2Caractere("/tmp2")
MUpsSys.SupprimerRepertoire MUpsKrn.ComBStr2Caractere("/tmp2")
If MUpsSys.IlExisteRepertoire(MUpsKrn.ComBStr2Caractere("/tmp2"))
Then
EcrireEcran "Il existe repertoire '/tmp2'"
End If
If MUpsSys.IlExisteFichier(MUpsKrn.ComBStr2Caractere("/tmp2/essai.txt"))
Then
EcrireEcran "Il existe fichier '/tmp2/essai.txt'"
End If
MUpsSys.ChangerRepertoireCourant MUpsKrn.ComBStr2Caractere("/tmp")
EcrireEcran "RepertoireCourant=" +
MUpsKrn.Caractere2ComBStr(MUpsSys.LireRepertoireCourant())
EcrireEcran
MUpsKrn.Caractere2ComBStr(MUpsSys.RechercherFichierDansChemin(MUpsSys.LireEnvironnement(MUpsKrn.ComBStr2Caractere("PATH")),
MUpsKrn.ComBStr2Caractere("notepad"), MUpsKrn.ComBStr2Caractere("exe")))
Inutile = MUpsSys.Executer(MUpsKrn.ComBStr2Caractere("c:/WINDOWS/system32/notepad.exe"),
False, False, P, MUpsKrn.ComBStr2Caractere("), _
MUpsKrn.ObjetNul, MUpsKrn.ObjetNul)
MUpsSys.Attendre 10
MUpsSys.ArreterProcessus P
Set CommandeLink =
MUpsSys.RechercherFichierDansChemin(MUpsSys.LireEnvironnement(MUpsKrn.ComBStr2Caractere("PATH")),
_
MUpsKrn.ComBStr2Caractere("link"), MUpsKrn.ComBStr2Caractere("exe"))
EcrireEcran "link.exe=" +
Str$(MUpsSys.Executer(CommandeLink.Additionner(MUpsKrn.ComBStr2Caractere(
/help")), True, True, P, MUpsKrn.ComBStr2Caractere("), _
MUpsKrn.ObjetNul, MUpsKrn.ObjetNul))
Inutile =
MUpsSys.Executer(CommandeLink.Additionner(MUpsKrn.ComBStr2Caractere(" /help")),
False, False, P, MUpsKrn.ComBStr2Caractere("), _
MUpsKrn.ObjetNul, MUpsKrn.ObjetNul)
MUpsSys.Attendre 10
If MUpsSys.LireCodeRetour(P, CR) Then
EcrireEcran "Code-retour de link.exe=" + Str$(CR)
End If Inutile =
MUpsSys.Executer(CommandeLink.Additionner(MUpsKrn.ComBStr2Caractere(" /help")),
True, True, P, MUpsKrn.ComBStr2Caractere("), _
MUpsKrn.ComAppel2Appel(HRESULT EcrireEntree([out, retval] IUpsKrn::Caractere
**retval)", AddressOf EcrireEntree), _
MUpsKrn.ComAppel2Appel("HRESULT LireSortie([in] IUpsKrn::Caractere *M)",
AddressOf LireSortie))
EcrireEcran
MUpsKrn.Caractere2ComBStr(MUpsSys.LireEnvironnement(MUpsKrn.ComBStr2Caractere("HKEY_LOCAL_MACHINE/software/UpCompany/ups/UPS_HOME2")))
EcrireEcran "Taille autoxec.bat=" +
Str$(MUpsSys.LireCaracteristiquesFichier(MUpsKrn.ComBStr2Caractere("c:/autoexec.bat")))
EcrireEcran "Taille autoxec.bat=" +
Str$(MUpsSys.LireCaracteristiquesFichier2(MUpsKrn.ComBStr2Caractere("c:/autoexec.bat"),
_
UtilisateurProprietaire, GroupeProprietaire, DateDernierAcces,
DateDerniereModification, DateCreation, EstCache))
EcrireEcran Str$(UtilisateurProprietaire)
EcrireEcran Str$(GroupeProprietaire)
EcrireEcran MUpsKrn.Caractere2ComBStr(MUpsKrn.Caractere3(DateDernierAcces))
EcrireEcran
MUpsKrn.Caractere2ComBStr(MUpsKrn.Caractere3(DateDerniereModification))
If EstCache Then
EcrireEcran "Est cache"
Else
EcrireEcran "N'est pas cache"
End If
EcrireEcran "
Set L1 = MUpsSys.ListerFichiers(MUpsKrn.ComBStr2Caractere("c:/"),
MUpsKrn.ObjetNul)
Set FL = L1.ParcoursAuDebut(0)
Do
EcrireEcran MUpsKrn.Caractere2ComBStr(FL.NomFichier())
If FL.Identique(L1.DernierElement()) Then
Exit Do
End If
Set FL = L1.Suivant(0)
Loop
EcrireEcran "
Set L2 = MUpsSys.ListerProcessus()
Set PL = L2.ParcoursAuDebut(0)
Do
EcrireEcran MUpsKrn.Caractere2ComBStr(PL.NomProgramme())
EcrireEcran Str$(PL.Numero())
EcrireEcran Str$(PL.TempsSysteme())
EcrireEcran Str$(PL.TempsUtilisateur())
EcrireEcran "
If PL.Identique(L2.DernierElement()) Then
Exit Do
End If
Set PL = L2.Suivant(0)
Loop
Set L3 = MUpsSys.ListerUnites(MUpsKrn.ObjetNul)
Set UL = L3.ParcoursAuDebut(0)
Do
EcrireEcran MUpsKrn.Caractere2ComBStr(UL.NomUnite())
EcrireEcran Str$(UL.PlaceLibre())
EcrireEcran Str$(UL.PlaceTotale())
EcrireEcran "
If UL.Identique(L3.DernierElement()) Then
Exit Do
End If
Set UL = L3.Suivant(0)
Loop
Set C = Nothing
Set DroitsGroupe = Nothing
Set DroitsAutres = Nothing
Set DateDernierAcces = Nothing
Set DateDerniereModification = Nothing
Set DateCreation = Nothing
Set L1 = Nothing
Set FL = Nothing
Set L2 = Nothing
Set PL = Nothing
Set L3 = Nothing
Set UL = Nothing
Set CommandeLink = Nothing
Set MUpsSec = Nothing
Set MUpsSys = Nothing
Set MUpsKrn = Nothing
Exit Sub
GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le
source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub