Başlat menüsündeki kısayolları barındıran Programs klasörünü açmaya yarayan alternatif bir koddur.
Option Explicit
Sub AllUsersKlasorunuAc()
Dim ws As Object
Set ws = CreateObject("WScript.Shell")
MsgBox "All Users Klasörü Yolu " & vbCrLf & _
ws.SpecialFolders("AllUsersPrograms")
ws.Run Chr(34) & ws.SpecialFolders("AllUsersPrograms") & Chr(34), 1, False
Set ws = Nothing
End Sub
Option Explicit
Sub AllUsersKlasorunuAc()
'--------------------------------------------------
'Object tipinde bir nesne tanımladık.
'--------------------------------------------------
Dim ws As Object
'--------------------------------------------------
'Değişkenimize WScript.Shell ayarını çektik.
'--------------------------------------------------
Set ws = CreateObject("WScript.Shell")
'--------------------------------------------------
'Burada mesaj yoluyla klasörün tam yolunu
'öğrenebiliyoruz. SpecialFolders() bize
'bunu öğrenme imkanı veriyor.
'--------------------------------------------------
MsgBox "All Users Klasörü Yolu " & vbCrLf & _
ws.SpecialFolders("AllUsersPrograms")
'--------------------------------------------------
'Burada da WScript.Shell aracılığıyla
'klasörü açıyoruz. Run metodu aslında
'komut çalıştırmaya yarıyor, biz burada
'klasör açacak şekilde uyarlama yaptık.
'
'ws.Run (strCommand, [intWindowStyle], [bWaitOnReturn])
'
'Görüldüğü gibi üç parametreden oluşuyor.
'İlk parametreye klasör yolunu girdik.
'
'İkinci parametrede pencerenin durumunu belirledik.
'Int değer alan bir parametre bu.
'Normalde 0'dan 10'a kadar seçenekler var ve 1.
'seçenek klasörü açıyor, aktif hale getiriyor
'ama pencere ebatlarına dokunmuyor.
'
'Üçüncü parametrede de uygulamamızın asenkron olarak
'çalışıp çalışmaması hususunda karar vermemizi sağlıyor.
'Varsayılan olarak (tanımlanmazsa) FALSE.
'
'Eğer TRUE olarak ayarlanırsa eğer önceden başlatılmış
'uygulamayı kullanıcı durdurana kadar bizim Run
'komutunu çalışmayı durduruyor ve kullanıcıya
'ilgili hata mesajını döndürüyor.
'
'Eğer FALSE değere sahip ise önceden çalışan prosese
'filan bakmadan çalışmaya devam ediyor. Hata mesajı
'olarak da 0 kodlu hatayı döndürüyor.
'--------------------------------------------------
ws.Run Chr(34) & ws.SpecialFolders("AllUsersPrograms") & Chr(34), 1, False
'--------------------------------------------------
'İşimiz bittikten sonra nesne
'örneğimizi RAM'den temizledik.
'--------------------------------------------------
Set ws = Nothing
End Sub