Vbs ile Office versionunu buldurtalım


vbs ile Office versionunu buldurtmak
Geçenlerde bize email yolu ile ulaşan bir takipçimiz vbs ile Microsoft office versionunu görüntületmek istediğini ve bu konuda gerekli kodları paylaşırsak memnun olacağını yazmış, bu yazı konumuzda bu iş yapmaya

çalışacağız , Office version tespitinde kurulu Officenin dll lerine bakmaktan tutunda registry kaydına veya CreateObject metoduna kadar birçok yöntem uygulanabilir , elbette bu yöntemlerin herbisinin iyi ve kötü tarafları mevcuttur mesela en kesitmeden Office versionunu aşağıdaki kodlarla bulabiliriz

'www.sordum.net - 22.01.2017
Set objWord = CreateObject("Word.Application")
    Select Case objWord.Version
    Case "16.0" MsgBox ("Office 2016 is installed")
    Case "15.0" MsgBox ("Office 2013 is installed")
    Case "14.0" MsgBox ("Office 2010 is installed")
    Case "12.0" MsgBox ("Office 2007 is installed")
    Case "11.0" MsgBox ("Office 2003 is installed")
    Case "10.0" MsgBox ("Office XP is installed")
    Case "9." MsgBox ("Office 2000 is installed")
    Case "8." MsgBox ("Office 97 is installed")
    Case "7." MsgBox ("Office 95 is installed")
    End Select
objWord.Quit

Üstteki kod uygulandığında ekrana aşağıdaki çıktıyı verecektir

kurulu office versionu

gel gelelim dikkat edilirse burada bakılan şey “Word.Application” yani Microsoft Word tur , peki ama Office bileşenlerini seçmeli kurmuş biri sadece excel ve Access i kurmuşsa ne olacak , kaldıki bu yöntemin ekrana Office sürümünü getirmesi 3-5 sn den uzun sürebilmektedir (sisteme bağlı olarak) , diğer bir metod ise registry kayıtlarından Office bilgisi çekmektir , belkide en hızlı yöntem budur , Kodlar registrydeki aşağıdaki yere bakmakta ve version bilgisini çekmektedir

HKEY_CLASSES_ROOT\word.Application\CurVer\

gel gelelim burada da üstteki sıkıntı mevcuttur ya Microsoft word kurulu değilse ? ayrıca çıktı ekrana sadece rakamdan oluşan bir version bilgisi sunmaktadır mesela :

office version

Buda kullanıcının office sürüm numaralarını bilmesini gerektirirki pek kullanışlı değildir işte kodları

Option Explicit

Dim oShell
Dim sOSVersion
Dim OfficeVersion

Set oShell = CreateObject("WScript.Shell")

On Error Resume Next

OfficeVersion = GetOfficeVersionNumber()

MsgBox "OfficeVersion = " & OfficeVersion

    Function GetOfficeVersionNumber()
        GetOfficeVersionNumber = ""
        Dim sTempValue
        sTempValue = oShell.RegRead("HKCR\word.Application\CurVer\")
        If Len(sTempValue) > 2 Then GetOfficeVersionNumber = Replace(Right(sTempValue, 2), ".", "") 
    End Function

Elbette üstteki kodlara ilk kodlardaki case yaklaşımı uygulanabilir böylece herhangi bir if – Else ye bulaşmadan direkt eğer rakam şununla eşleşiyorsa ekrana karşısında yazanı çıkar diyebiliriz

office versionu bulundu

bunun hazır halini ve ilaveten 3 farkı yaklaşımı sayfa sonundaki indirme linkinden indirip kullanabilirsiniz , indirilen dosyanın içerisinde 4 farklı vbs scripti mevcuttur aralarında en yavaş çalışanı “office_version4.vbs” dir Çıktıyı yaklaşık 1-2 dk sonra ekrana getirmektedir fakat en ayrıntılı version bilgisini sunmaktadır.Eğer script kullanmadan mevcut Office bileşenlerinin birinden Office versionunu öğreneceksek Buradaki yöntem işe yarayacaktır.

Download


6 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

CAPTCHA