IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

VBScript - ByPass UAC - SUB Fonction not working


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut VBScript - ByPass UAC - SUB Fonction not working
    Bonjour,

    Je suis un petit nouveau incrit sur le site !
    Alors que j'ai eu pas de réponse sur les différents forums.

    Alors, mon objectif est d'éditer un script VBS via l'interface WMI qui récupère des informations sur le poste utilisateur et qui les retranscrit dans un file.XML.

    Liste des info à récupérer :
    1. Antivirus (version et définition)----------------------OK
    2. Espace disque (définir le seuil /lecteur)----------------OK
    3. Lecteur réseau (Vérifier si les lecteurs réseau)-----------OK
    4. Fichier temporaire Navigateur (sans cookies)------------OK
    5. Fichier temporaire Système
    6. Historique du Navigateur
    7. Remonter les applications non packagées(voir si réalisable)
    8. Nombre de PST mappé

    J'avance bien sur cette "nouvelle techno" (pour moi, car je début...) mais voila, les difficultés arrivent... Sur le point 5. Récupérer la taille du dossier Temp dans C:\Windows car quand j'exécute la fonction GetFolder sur le rèp, j'obtiens un message d'erreur "Permission refusé". Bon j'ai bien compris qu'il fallait ByPasser l'UAC pour effectuer le relevé d'information sur se rèp système et j'y suis arrivé mais comme je l'énonce dans le titre, la fonction Sub writeXML(...) de fonctionne plus et mon file.XML est vide (Enfin, y a tjrs la charte MS en en-tête).

    Je ne sais pas si je fais une erreur mais je vous laisse mon script, tous mon job pour vous aider à mieux m'aider.

    Alors avant de poster mon code, j'exécute un file.BAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cscript file.vbs > file.xml
    pour exécuter mon file.VBS et la retranscription des info dans le file.XML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
     
    '#############################################################################################################################################
    '#                                                    PROJET ToTo - Client X                                                                      #
    '#                                                                                                                                           #
    '# InfoPosteUser 1.0 (01/06/2016)                                                                                                            #
    '# Matmat94                                                                                            #
    '#                                                                                                                                           #
    '#############################################################################################################################################
     
    'On Error Resume Next
     
    If WScript.Arguments.length =0 Then
      Set objShell = CreateObject("Shell.Application")
      'Pass a bogus argument with leading blank space, say [ uac]
      objShell.ShellExecute "wscript.exe", Chr(34) & _
      WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
    End if
     
     
    If WScript.Arguments.length =1 Then
    REM ************************************** Récupération Date & Heure au lancement du script **************************************************
    TimeWriteStart = Now()                                                                                                                      '*
    writeXMLTIME TimeWriteStart, "Start"                                                                                                        '*
    REM ********************************************************* Fin ****************************************************************************
     
     
     
    REM ************************************** Récupération Taille du dossier temporaire d'IE ****************************************************
    	Dim oSTIE,sTIE,sTIEShell,sUserProfile
    	Set oSTIE = CreateObject("Scripting.FileSystemObject") 
    	Set sTIEShell = CreateObject("WScript.Shell")
    	sUserProfile = sTIEShell.ExpandEnvironmentStrings("%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files")
    		If oSTIE.FolderExists(sUserProfile) Then 
    			Set sTIE = oSTIE.GetFolder(sUserProfile) 
    					'"Attributes  :" & oFld.Attributes  & vbCrlf & _  
    					'"DateCreated :" & oFld.DateCreated  & vbCrlf & _  
    					'"DateLastAccessed :" & oFld.DateLastAccessed  & vbCrlf & _  
    					'"DateLastModified :" & oFld.DateLastModified  & vbCrlf & _  
    					'"Drive :" & oFld.Drive  & vbCrlf & _  
    					'"Name :" & oFld.Name  & vbCrlf & _  
    					'"ParentFolder :" & oFld.ParentFolder  & vbCrlf & _  
    					'"Path :" & oFld.Path  & vbCrlf & _  
    					'"ShortName :" & oFld.ShortName  & vbCrlf & _  
    					'"ShortPath :" & oFld.ShortPath  & vbCrlf & _  
    					'"Size :" & oFld.Size  & vbCrlf & _  
    					'"SubFolders.Count :" & oFld.SubFolders.count  & vbCrlf & _  
    					'"Type :" & oFld.Type   
    				writeXMLSizeTempIE sTIE.Size
    		End If	
    REM ************************************** \Récupération Taille du dossier temporaire d'IE ***************************************************
     
     
     
    REM ************************************** Récupération Taille du dossier Windows Temp *******************************************************
    	Dim sWinTemp 'Nom du Fichier a tester  
    	Dim oSWT,sWT 
    	Set oSWT = CreateObject("Scripting.FileSystemObject") 
    	sWinTemp = "c:\Windows\Temp" 
    		If oSWT.FolderExists(sWinTemp) Then 
    			Set sWT = oSWT.GetFolder(sWinTemp) 
    					'"Attributes  :" & sWT.Attributes  & vbCrlf & _  
    					'"DateCreated :" & sWT.DateCreated  & vbCrlf & _  
    					'"DateLastAccessed :" & sWT.DateLastAccessed  & vbCrlf & _  
    					'"DateLastModified :" & sWT.DateLastModified  & vbCrlf & _  
    					'"Drive :" & sWT.Drive  & vbCrlf & _  
    					'"Name :" & sWT.Name  & vbCrlf & _  
    					'"ParentFolder :" & sWT.ParentFolder  & vbCrlf & _  
    					'"Path :" & sWT.Path  & vbCrlf & _  
    					'"ShortName :" & sWT.ShortName  & vbCrlf & _  
    					'"ShortPath :" & sWT.ShortPath  & vbCrlf & _  
    					'"Size :" & sWT.Size  & vbCrlf 
    					'"Type :" & sWT.Type   
    				writeXMLSizeWinTemp sWT.Size
    		End If
    REM ************************************** \Récupération Taille du dossier Windows Temp ******************************************************
     
     
    REM ************************************** Récupération Espace Disque Logic ******************************************************************
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    	Set colItemsLogicalDisk = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk",,48) 
    		FreeSpaceDisk = ""
    		SizeDisk = ""
    		NameDisk = ""
    		Description = ""
    	For Each objItemDisk in colItemsLogicalDisk 
    		NameDisk = objItemDisk.Name
    		FreeSpaceDisk = objItemDisk.FreeSpace
    		SizeDisk = objItemDisk.Size
    		Description = objItemDisk.Description
    		writeXMLDISK FreeSpaceDisk,SizeDisk,NameDisk
    	Next
    Set objWMIService = Nothing
    REM ************************************** \Récupération Espace Disque Local *******************************************************************
     
     
     
    REM ************************************** Récupération Information Sécurité *******************************************************************
    arrCat = Array("AntiVirus","Firewall","AntiSpyware")
    arrNbr = Array(0,0,0)
    Set objWMIService_AV = GetObject("winmgmts:\\.\root\SecurityCenter")
    If Not IsNull (objWMIService_AV) Then
      For a = LBound(arrCat, 1) To UBound(arrCat, 1)
        Set colItems = objWMIService_AV.ExecQuery("Select * from " & arrCat(a) & "Product")
     
        For Each objAVP In colItems
            productEnabled = "0"
            If objAVP.onAccessScanningEnabled Then productEnabled = "1"
     
            productUptoDate = "0"
            If objAVP.productUptoDate Then productUptoDate = "1"
     
            writeXML "1", arrCat(a), objAVP.companyName, objAVP.displayName, objAVP.versionNumber, productEnabled, productUptoDate
            arrNbr(a) = arrNbr(a) + 1
        Next
      Next
    End If
    Set objWMIService_AV = Nothing
     
    Set objWMIService_AV = GetObject("winmgmts:\\.\root\SecurityCenter2")
    if Not IsNull (objWMIService_AV) Then
      For a = LBound(arrCat, 1) To UBound(arrCat, 1)
        Set colItems2 = objWMIService_AV.ExecQuery("Select * from " & arrCat(a) & "Product")
     
        For Each objAVP In colItems2
          Set WshShell = WScript.CreateObject("WScript.Shell")
          Set WshProcessEnv = WshShell.Environment("Process")
          exe = objAVP.PathToSignedProductExe
          exe = Replace(exe,"%ProgramFiles%",WshProcessEnv("ProgramFiles"))
          If Mid(exe,1,1) = """" Then
            Max = 2
            While (Mid(exe,Max,1) <> """") And (Max <> Len(exe) )
              Max = Max + 1
            Wend
            exe = Mid(exe,2,Max-2)
          End If
          exe = Replace(exe,"\","\\")
          strCompanyName = ""
          strVersionNumber = ""
          Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
          Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile Where name = '" & exe & "'")
          If colFiles.Count = 0 Then
            exe = Replace (exe," (x86)","")
            Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile Where name = '" & exe & "'")  
          End If
     
          For Each itemFile In colFiles
            strCompanyName = (itemFile.Manufacturer)
            strVersionNumber = (itemFile.Version)
          Next
     
          productEnabled = "0"
          If Mid(dec2bin(objAVP.ProductState),12,1) = "1" Then productEnabled = "1"
     
          productUptoDate = "0"
          If Mid(dec2bin(objAVP.ProductState),16,8) = "00000000" Then productUptoDate = "1"
     
    	Set colItemsLogicalDisk = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk",,48) 
    		FreeSpaceDisk = ""
    		SizeDisk = ""
    	For Each objItemDisk in colItemsLogicalDisk 
    		FreeSpaceDisk = objItemDisk.FreeSpace
    		SizeDisk = objItemDisk.Size
    	Next
     
          writeXML "2", arrCat(a), strCompanyName, objAVP.displayName, strVersionNumber, productEnabled, productUptoDate
          arrNbr(a) = arrNbr(a) + 1
        Next
      Next
    End If
    Set objWMIService_AV = Nothing
    REM ************************************** \Récupération Information Sécurité *******************************************************************
     
     
     
    REM ######################################################## Test Pause : 5000 ############################
    'Set WScript = CreateObject("WScript.Shell")
    'WScript.Sleep 5000
    REM ######################################################## Fin Test Pause : 5000 ########################
     
     
     
    REM ************************************** Récupération de la date a la fin du script ****************************************************
    TimeWriteEnd = Now()
    writeXMLTIME TimeWriteEnd, "END"
    writeXMLTIMEDIFF TimeWriteStart, TimeWriteEnd
    REM ************************************** Récupération de la date a la fin du script ****************************************************
     
     End If
     
     
    Sub writeXML(scSCV,scCat,scComp,scProd,scVer,scEna,scDate)
      Wscript.Echo _
      "----------------------------------------------------<  SECURITYCENTER  >-------------------------------------------------" & vbNewLine & _
      "<SCV>      : " & scSCV & "" & vbNewLine & _
      "<CATEGORY> : " & scCat & "" & vbNewLine & _
      "<COMPANY>  : " & scComp & "" & vbNewLine & _
      "<PRODUCT>  : " & scProd & "" & vbNewLine & _
      "<VERSION>  : " & scVer & "" & vbNewLine & _
      "<ENABLED>  : " & scEna & "" & vbNewLine & _
      "<UPTODATE> : " & scDate & "" & vbNewLine & _
      "----------------------------------------------------<##################>-------------------------------------------------" & vbNewLine 
     End Sub
     
    Sub writeXMLDISK(FreeSpaceDisk,SizeDisk,NameDisk)
      Wscript.Echo _
      "----------------------------------------------------<  Espace_Disque   >-------------------------------------------------" & vbNewLine & _
      "<NAMEDISK>    : " & NameDisk & "" & vbNewLine & _
      "<DESCRIPTION> : " & Description & "" & vbNewLine & _
      "<FREESPACE>   : " & FreeSpaceDisk & "" & vbNewLine & _
      "<SIZE>        : " & SizeDisk & "" & vbNewLine & _
      "----------------------------------------------------<##################>-------------------------------------------------" & vbNewLine 
     End Sub
     
    Sub writeXMLTIME(dtmDate1,POS)
      Wscript.Echo _
      "----------------------------------------------------<   DATE & HEURE   >----------------------------------------------------" & vbNewLine & _
      "-                                                                                                                         -" & vbNewLine & _
      "- Debut_d_execution_du_script " & POS & " : " & dtmDate1 & "   " & POS & "                                                -" & vbNewLine & _
      "-                                                                                                                         -" & vbNewLine & _
      "----------------------------------------------------<##################>----------------------------------------------------" & vbNewLine
     
     End Sub
     
    Sub writeXMLTIMEDIFF(DTMstart,DTMstop)
     Wscript.Echo _
     "-----------------------------------------------------< Duree du script >-------------------------------------------------" & vbNewLine & _
     "- Temps_d_execution_du_script : " & DateDiff("s",DTMstart,DTMstop) & " secondes                                         -" & vbNewLine & _
     "-----------------------------------------------------<#################>-------------------------------------------------" & vbNewLine 
     End Sub
     
    Sub writeXMLSizeTempIE (TempIE)
     WScript.Echo _ 
     "-----------------------------------------------------<  Temporaire IE  >-------------------------------------------------" & vbNewLine & _
     "- Taille_du_dossier_temporaire_d_'_Internet_Explorer : " & TempIE & " Octets                                            -" & vbNewLine & _
     "-----------------------------------------------------<#################>-------------------------------------------------" & vbNewLine
     End Sub
     
    Sub writeXMLSizeWinTemp (WinTemp)
     WScript.Echo _ 
     "-----------------------------------------------------<   Windows Temp  >-------------------------------------------------" & vbNewLine & _
     "- Taille_du_dossier_Windows_TEMP                     : " & WinTemp & " Octets                                           -" & vbNewLine & _
     "-----------------------------------------------------<#################>-------------------------------------------------" & vbNewLine
     End Sub
     
     
     
    Function dec2bin (n)
        b = Trim((n Mod 2))
        n = n \ 2
        Do While n <> 0
            b = Trim((n Mod 2)) & b
            n = n \ 2
        Loop
        While Len(b) < 24
          b = "0" & b
        Wend
        dec2bin = b
    End Function
    Je reconnais à avoir été aidé des lignes 97 à 171 et 247 à 258, car comme je l'ai dit plus haut, je début sur cette techno et souhaite monter en compétence.

    En vous remerciant par avance.

    Matmat.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Ce n'est pas un bypass de l'UAC, ça, c'est une demande d'élévation en (plus ou moins) bonne et due forme. Un bypass de l'UAC est une attaque, et n'est pas censé être possible si l'UAC est réglé au maximum (par contre, le niveau "recommandé" comporte des vulnérabilités connues).

    Ton problème, c'est que l'élévation crée un nouveau processus dans une nouvelle console, et donc sans redirection de la sortie standard. Il te faut donc trouver un autre moyen de communiquer tes résultats depuis le script "élevé" vers l'appelant. Par exemple, faire ouvrir le fichier par le script "élevé", si c'est possible (mais le créer d'abord dans le script appelant, sinon son propriétaire sera l'admin).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Re
    Bonjour,

    Merci pour l'attention porté à mon problème.

    Pardonnez l'erreur de vocabulaire utilisé, je ne tente pas de hacker un système mais juste mettre en place un système de récupération d'information pour guider les utilisateurs en fonction des info relevé.
    C'est en mode projet que je travail et ne peut donc dire si au final le script sera exécuté en local ou depuis un SERV.

    J'avais peur de cette solution, cet à dire : un file.BAT qui appel un file.VBS qui appel mon file.VBS récupérateur d'info avec une élévation de droit.
    Si j'ai bien compris ce que tu m'a dit #Médinoc

    Je ne sais pas trop si c'est bien propre comme type de fonctionnement.
    Je n'y connais pas grand chose, et ne vais pas réinventer l'informatique et donc si il n'y a pas d'autres solution. J'imposerais ce mode opératoire sauf si!

    Je vais laisser ouvert la question un petit temps, pour que d'autres personnes puissent donner leur avis et parallement je vais continuer à le faire évoluer car il manque des fonctions.

    Merci Medinoc et à vous tous !

    N'hésitez pas si besoin.
    Good day

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Je ne vais pas vraiment répondre à vos questions, mais plutôt en poser d'autres. Désolé.

    Votre système n'a pas grand-chose à voie avec VC++.NET, le sujet de ce forum.
    Vous auriez plus de chance de trouver des gens compétents sur votre problème sur un forum VBS/ outils de développement pour administrateur, non ?

    Vous maitrisez le requêtage WMI, ce qui est déjà un truc pas évident, mais, dans mes souvenirs, on peut faire du requêtage WMI à distance, donc pas de problème de UAC ou autre.
    Alors pourquoi ne pas tout interroger "à distance" ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour Bacelar,

    Merci pour l'intention que tu as porté à mon problème.

    Alors j'ai le regret de t'annoncer que non, je ne maitrise pas les requettes WMI mais la logique reste accécible pour ce ceux qui le veulent. J'utilise un soft pour m'aider WMI créator.

    Après, j'ai bien l'impression que si, l'UAC pose quand même un blocage sur les répertoires %systemroot%.
    Pourquoi je répond ceci : car j'ai utilisé (enfin je pense) les requettes WMI pour récupérer la taille du dossier temp IE et windows\temp, et en test séparé. Celui d'IE me donne la bonne information et celui de windows me retourne accès refusé. j'ai du l'exécuter "en ten que" pour que mon file.VBS me récupère l'information. Donc cela signifie que mon script est bon, il fonctionne mais que si, il est exécuté avec l'option ajouté.

    Je suppose que tu me parle d'un serveur style web service, qui appel les fonctions pour récupérer les informations et les stocke dans une base de donnée?
    Pour le moment je ne sais pas trop dans qu'elle direction ou l'on va ! le bute de ce script serais d'intégrer le max d'information pour que l'utilisateur se dépanne lui même et dans le cas ou il est obliger de contacter son support (ou édite + envois du ticket au support).
    Je sais que ce n'est pas très cool comme optique mais le numérique évolue et les métiers concerné aussi...

    Je peux donner une mauvaise impression dans mon discourt, donc n'hésitez pas à me reprendre ci besoin.

    J'ai envoyé une requette au modérateur du site pour déplacer ma question dans la bonne arborescence si elle ne l'est pas (Ps: Merci de me l'avoir fait remarqué)

    Cdt,

Discussions similaires

  1. Différence Sub Fonction Procedure
    Par Momodedf dans le forum VBA Word
    Réponses: 2
    Dernier message: 03/10/2007, 08h44
  2. fonction not defined/mais marche en local
    Par stoeck dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/06/2007, 11h57
  3. Fonction not sous Oracle
    Par 18Marie dans le forum Oracle
    Réponses: 5
    Dernier message: 06/03/2007, 10h37
  4. CR 11 UFL Java work ou not work?
    Par lyonnaisFR dans le forum SDK
    Réponses: 1
    Dernier message: 29/11/2006, 17h07
  5. Classes - Sub/Fonction vs Property
    Par j_bolduc dans le forum ASP
    Réponses: 6
    Dernier message: 24/08/2005, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo