Makale numarası: 185730 - Son Gözden Geçirme: 03 Mayıs 2005 Salı - Gözden geçirme: 4.0

Bir 32-bit VB uygulaması birden çok örneğini engelleme

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, kullanıcı çalıştıran tek bir örneği zaten varsa, ikinci bir örneğini bir uygulama yükleme nasıl. Aynı uygulama ikinci bir örneğini başlatmaya çalıştığınızda için Visual Basic uygulamasını ilk örneği de odağı ayarlar.

Daha fazla bilgi

Adım adım örnek

  1. Yeni bir Visual Basic projesi oluşturun.
  2. Proje Özellikleri gidin ve Sub Main için başlangıç nesneyi (veya başlangıç formu olarak VB4) ayarlayın.
  3. Standart modül projeye ekleyin.
  4. Aşağıdaki kodu modüle yapıştırın:
          Option Explicit
    
          Public Const GW_HWNDPREV = 3
    
          Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
          Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
            (ByVal lpClassName As String, ByVal lpWindowName As String) _
             As Long
          Declare Function GetWindow Lib "user32" _
            (ByVal hwnd As Long, ByVal wCmd As Long) As Long
          Declare Function SetForegroundWindow Lib "user32" _
            (ByVal hwnd As Long) As Long
    
          Private Sub Form_Load()
                If App.PrevInstance Then
                   ActivatePrevInstance
                End If
             End Sub
    
          Sub ActivatePrevInstance()
             Dim OldTitle As String
             Dim PrevHndl As Long
             Dim result As Long
    
             'Save the title of the application.
             OldTitle = App.Title
    
             'Rename the title of this application so FindWindow
             'will not find this application instance.
             App.Title = "unwanted instance"
    
             'Attempt to get window handle using VB4 class name.
             PrevHndl = FindWindow("ThunderRTMain", OldTitle)
    
             'Check for no success.
             If PrevHndl = 0 Then
                'Attempt to get window handle using VB5 class name.
                PrevHndl = FindWindow("ThunderRT5Main", OldTitle)
             End If
    
             'Check if found
             If PrevHndl = 0 Then
             'Attempt to get window handle using VB6 class name
             PrevHndl = FindWindow("ThunderRT6Main", OldTitle)
             End If
    
             'Check if found
             If PrevHndl = 0 Then
                'No previous instance found.
                Exit Sub
             End If
    
             'Get handle to previous window.
             PrevHndl = GetWindow(PrevHndl, GW_HWNDPREV)
    
             'Restore the program.
             result = OpenIcon(PrevHndl)
    
             'Activate the application.
             result = SetForegroundWindow(PrevHndl)
    
             'End the application.
             Unload Me
          End Sub
    
    						
  5. Projeyi bir EXE içinde derleyin.
  6. Visual Basic çıkın.
  7. Oluşturduğunuz bir yürütülebilir dosyayı çalıştırın.
  8. 7. Adımı yineleyin.

    Sonuç: Odağı program ilk örneğini verilir ve ikinci örneği kapatıldı. Ilk uygulama örneğinin küçülttüyseniz, normal bir pencerede otomatik olarak geri yüklenecektir.

Referanslar

Bir Visual Basic 4.0 16 bit uygulama birden çok örneğini engelleme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
142937  (http://support.microsoft.com/kb/142937/ ) Bir <a0>VB</a0> uygulamasının birden çok örneği engelleme

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Anahtar Kelimeler: 
kbmt kbhowto KB185730 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:185730  (http://support.microsoft.com/kb/185730/en-us/ )