Sayfalarımızda sizlerle birçok .vbs scripti paylaşıyoruz bunların bazıları kendi oluşturduklarım bazıları netten bulup editlediklerim bazılarıda yabancı dergi veya sitelerden faydalı bulduklarımdır, zaten
script başlangıcında scripti oluşturan bilgileri yeralmaktadır , herneyse çoğu scriptte bir bilgi çekildiği zaman bu tekrarlı popup şekliden veriliyor örneğin Buradaki scriptte , script BIOS bilgilerini alıp ekrana getiriyor fakat bunu yaparken tekrarlı popup kullanıyor.
Orjinal script:
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colBIOS = objWMIService.ExecQuery _ ("Select * from Win32_BIOS") For each objBIOS in colBIOS Wscript.Echo "Manufacturer: " & objBIOS.Manufacturer Wscript.Echo "Name: " & objBIOS.Name Wscript.Echo "Release Date: " & objBIOS.ReleaseDate Wscript.Echo "Serial Number: " & objBIOS.SerialNumber Wscript.Echo "SMBIOS Version: " & objBIOS.SMBIOSBIOSVersion Wscript.Echo "Version: " & objBIOS.Version Next
1. Scripte tıklıyoruz üretici bilgilerinin yeraldığı ilk Pop-up geliyor
2. Tamam butonuna basıyoruz ve ardından İsmi içeren bilginin görüntülendiği Pop-up geliyor
Tamam diyoruz bir diğeri ... ve böylece devam ediyor oldukça rahatsız edici bir durum gelin tüm bilgileri tek pencerede alt alta sıralatalım :
1. MsgBox yöntemi ile alt alta sıralatmak
Üstteki scriptte sıkıntı Wscript.Echo nun tekrar tekrar verilip her bir bilgiden sonra Pop-up yinelemesi yapmasındadır o nedenle bu kısımları çıkartacağız onun yerine MsgBox yöntemi kullanacağız , bu yöntemde tüm bilgiler tek satırda verildiğinden ben sadece ilk iki bilgiyi alıyorum (Manufacturer ve Name) , scriptimiz aşağıdaki şekilde olacaktır
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colBIOS = objWMIService.ExecQuery _ ("Select * from Win32_BIOS") For each objBIOS in colBIOS MsgBox "1.Manufacturer : " & objBIOS.Manufacturer & vbNewLine & "2.Name : " & objBIOS.Name & vbNewLine Next
Msgbox satırı çok uzayacağından siz satırı devam ettirebilirisniz , script çalıştırıldığında aşağıdaki gibi bir çıktı verecektir
Görüldüğü üzere bilgilerin hepsi derli toplu birarada ve ilk yöntemdeki gibi kullanıcıyı rahatsız etmiyor
2. strPopupMsg yöntemi ile alt alta sıralatmak
Üstteki yöntemde tek satırda bilgilerin verilmesi bir handikap olarak düşünülebilir çünkü verilmek istenen bilgi çoğaldıkça satır uzayacak buda Kodlayan kişinin kontrolünü zorlayacaktır , hoş gerçi bunun kullanıcı açısından herhagi bir zararı bulunmuoy , herneyse strPopupMsg yönteminde tek satır yerine ilk yöntemdeki gibi alt alta satırlar kullanılabilir ve çıktı sonucu da Msgbox yöntemindeki gibi derli toplu olacaktır kod buna göre düzenlendiğinde:
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colBIOS = objWMIService.ExecQuery _ ("Select * from Win32_BIOS") Set wshShell=CreateObject("wscript.shell") For each objBIOS in colBIOS strPopupMsg = strOS & vbNewLine & vbNewLine strPopupMsg = strPopupMsg & "Manufacturer: " & objBIOS.Manufacturer & vbNewLine strPopupMsg = strPopupMsg & "Name: " & objBIOS.Name & vbNewLine strPopupMsg = strPopupMsg & "Release Date: " & objBIOS.ReleaseDate & vbNewLine strPopupMsg = strPopupMsg & "Serial Number: " & objBIOS.SerialNumber & vbNewLine strPopupMsg = strPopupMsg & "SMBIOS Version: " & objBIOS.SMBIOSBIOSVersion & vbNewLine strPopupMsg = strPopupMsg & "Version: " & objBIOS.Version & vbNewLine & vbNewLine strPopupMsg = strPopupMsg & "www.sordum.net" & vbNewLine strPopupTitle = "BIOS Information" wshShell.Popup strPopupMsg,,strPopupTitle,vbCancelOnly+vbinformation Next
Üstteki kod çalıştırıldığında aşağıdaki gibi bir çıktı verecektir
Resimde de görüldüğü üzere "strPopupTitle" kısmı ile pencere başlığını da verdik , bunların dışında strMsg ile de bu sıralı bilgi akışı sağlanabilir.
Çalışma Velociraptor a ait olup Kaynak gösterilmeden başka yerde yayımlanamaz