Güvenlik açığının nasıl kullan komut dosyası denetimi modüller ve yordamlar derlemeleri

Makale çevirileri Makale çevirileri
Makale numarası: 184745 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, modüller ve yordamlar segment kodu Microsoft Script denetimi özelliklerini kullanmak gösterilmiştir. Nasıl dinamik olarak bağımsız değişkenleri belirleyebilir ve bu yordamı bir Function veya Sub olup gösterir.

Daha fazla bilgi

Microsoft komut dosyası denetimi, farklı modüllere segment komut ana bilgisayar uygulamasına olanak sağlayan özellikler içerir. Varsayılan modül, "Genel" her zaman vardır. Farklı modülleri, aynı ada sahip yordamlar içerebilir (diğer bir deyişle, yordam adları modülü kapsam vardır).

Microsoft komut dosyası denetimi, dinamik olarak yordamı bir Function veya Sub yan? s?ra bağımsız değişkenleri, bekleyen olup olmadığını belirlemek ana bilgisayar uygulamasına izin yordamı özellikleri de içerir. Bu, ana uygulama, doğru sayıda parametre değerleri için kullanıcıdan izin verir.

Komut dosyası denetimi <a1>Modüller</a1> özelliği modül nesnelerin bir birleşimini içeren bir nesnedir. Bu, aşağıdaki özellikleri ve yöntemleri vardır:
  • Count: Modülleri numarası.
  • Item(x): tek bir modül nesne verir.
  • Add name: Verilen adla boş bir modül ekler.
Nesnenin modülü aşağıdaki özellikleri ve yöntemleri vardır:
  • Adı: Modül adı.
  • Yordamlar: Yordamlar nesne.
  • AddCode kodu: Bu modül için kod ekler.
  • Çalışma adı, args: adlandırılmış yordamını çalıştırır.
Yordamlar nesne yordamının nesnelerin bir birleşimini içerir. Bu, aşağıdaki özellikleri ve yöntemleri vardır:
  • Count: Sayısı modülünde yordamlar.
  • Item(x): tek bir Procedure nesnesi verir.
Procedure nesnesi aşağıdaki özellikleri ve yöntemleri vardır:
  • Adı: Yordamın adı.
  • HasReturnValue: Sub veya bir işlev yordamı olup olmadığını gösterir.
  • NumArgs: Sayısı bağımsız değişken, yordamın gerektirir.
Not: Tüm özellikleri ve yöntemleri listelenen nesneleri, yalnızca bu bu makaleyle ilgili verilir.

Aşağıdaki örnekte, bu özellik ve yöntemlerini nasıl gösteren etkileşimli bir programı sağlar:

ÖNEMLI: Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar da dahil ancak bunlarla sınırlı, satılabilirlik ve/veya belirli bir amaca uygunluk zımni hiçbir garanti olmamak kaydıyla, örtülü veya açık garanti vermez. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar.

ÖRNEK

  1. Visual Basic'te (Form1, varsayılan olarak oluşturulur) yeni bir proje oluşturun.
  2. Proje menüsünde Bileşenleri'ni tıklatın ve sonra "Microsoft komut dosyası denetimi 1.0" onay kutusunu seçin.
  3. Komut dosyası denetimi (ScriptControl1) (Metin1), bir <a0>metin kutusunda üç komut düğmeleri (Command1, Command2, Command3) ekleyin ve iki liste Form1'e (List1, List2) kutuları. Çok satırlı metin kutusunu özelliğini TRUE olarak ayarlanır. 30 Karakter 5 satırları yerleştirmek için metin kutusunu boyutlandırın.
  4. Form1'e aşağıdaki kodu ekleyin:
          Private Sub Command1_Click()
            ScriptControl1.Modules.Add Text1.Text
            Form_Activate
          End Sub
    
          Private Sub Command2_Click()
            ScriptControl1.Modules(List1).AddCode Text1.Text
            List1_Click
          End Sub
    
          Private Sub Command3_Click()
          Dim RetVal As Variant, m As Variant
            Set m = ScriptControl1.Modules(List1.Text)
            With m.Procedures(List2.Text)
              Select Case .NumArgs
                Case 0
                  RetVal = m.Run(List2.Text)
                Case 1
                  RetVal = m.Run(List2.Text, 5)
                Case 2
                  RetVal = m.Run(List2.Text, 4, 23)
                Case Else
                  MsgBox "Procedure has too many arguments"
              End Select
              If .HasReturnValue Then
                MsgBox List2.Text & " returned: " & RetVal
              End If
            End With
          End Sub
    
          Private Sub Form_Activate()
          Dim m As Variant
            List1.Clear
            With SCriptControl1
              .Language = "VBScript"
              .AllowUI = True
              For Each m In .Modules
                List1.AddItem m.Name
              Next m
            End With
          End Sub
    
          Private Sub Form_Load()
            Command1.Caption = "Add Module"
            Command2.Caption = "Add Code"
            Command3.Caption = "Run Procedure"
          End Sub
    
          Private Sub List1_Click()
          Dim m As String, p As Variant
            m = List1
            List2.Clear
            If m = "" Then Exit Sub
            For Each p In ScriptControl1.Modules(m).Procedures
              List2.AddItem p.Name
            Next p
          End Sub
    
          Private Sub List2_Click()
          Dim m As String, p As String, r As Boolean, a As Long
            m = List1
            p = List2
            With ScriptControl1.Modules(m).Procedures(p)
              r = .HasReturnValue
              a = .NumArgs
            End With
            MsgBox m & "." & p & " has " & IIf(r, "a", "no") & _
                   " return value and " & a & " arguments"
          End Sub
    						
  5. Form1'nı çalıştırın.
  6. Aşağıdaki metin kutusuna yazıp modül Ekle'yi tıklatarak yeni bir modül oluşturun:
          Mod2
    
    						
  7. Aşağıdaki komut dosyası metin kutusuna yazın:
          Function Calc(X)
            Calc = X * 2
          End Function
    						
  8. Global öğesini seçtiğinizde List1 ve genel modülü eklemek için kod</a1>'ı tıklatın.
  9. Aşağıdaki komut dosyası, metin kutusuna yazın:
          Function Calc(X, Y)
            Calc = X * Y
          End Function
    
          Sub Test()
            MsgBox "The Test Sub in Module Mod2"
          End Sub
    						
  10. Mod2 List1 içinde seçin ve genel modülü eklemek için kod</a1>'ı tıklatın.
  11. Çeşitli modüller ve yordamlar'ı tıklatın. Bir ileti kutusu görünür yordamı seçtiğinizde, yordamın dönüş değeri ve bunun yanı sıra bağımsız değişkenleri olup olmadığını gösteren alıyor.
  12. Bir yordamın seçtikten sonra yordamı çalıştırmak için Run'ı tıklatın. Kodu kullanmak için bağımsız değişkenleri belirler ve sonuçları ile farklı bir ileti kutusu görürsünüz.
NOT:
  • Genel, modül adı her zaman "Genel" Denetim sürümü Yerelleştirme bağlı olmayabilir veya olmayabilir. GlobalName sabit yerine sabit kullan - sözcük "Genel" kodlama.
  • Tek tek modülleri veya yordamlar kaldırmak için bir yöntem yoktur. Tüm kod silmek için <a0>komut</a0> denetimin .Clear yöntemi kullanmak zorunda. Bir yordam yerine aynı adla bir yordamla .AddCode yöntemini kullanarak geçersiz kılabilirsiniz.

Referanslar

Komut dosyası denetimi'ni edinme hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
184739: BILGI: nereye komut dosyası Denetimi Al

Ek bilgi ve yordamlar genel modülünde çağrılıyor ilişkin örnekler için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
184740: Nasıl yapılır: işlevler, komut dosyası denetimi kullanmayı arama

Microsoft komut dosyası denetimi Yardım konuları:
   HasReturnValue Property
   NumArgs Property
   AddCode Method
   Run Method
   Modules Collection
   Procedures Collection
				

Özellikler

Makale numarası: 184745 - Last Review: 13 Temmuz 2004 Salı - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
Anahtar Kelimeler: 
kbmt kbhowto kbscript KB184745 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:184745

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com