আপনার কি কখনও আপনার কম্পিউটারের CPU বা মেমরির বিশদ বিবরণ, সিরিয়াল বা মডেল নম্বর বা ইনস্টল করা সফ্টওয়্যার সংস্করণগুলি জানার প্রয়োজন আছে, কিন্তু কোথায় দেখতে হবে তা নিশ্চিত নন? Excel-এ সামান্য কিছু সহজ কোড দিয়ে, আপনি আপনার Windows PC তথ্যের একটি সম্পূর্ণ লাইব্রেরি বের করতে পারেন।
সত্য শুনতে ভাল লাগে? ঠিক আছে, এটি উইন্ডোজ, যদি আপনি এটি ব্যবহার করতে জানেন।
আপনার হাতকে একটু নোংরা করতে হতে পারে, কিন্তু এই নিবন্ধে আমরা আপনাকে আপনার প্রয়োজনীয় সমস্ত কোড সরবরাহ করব এবং কীভাবে এটিকে এক্সেলে রাখা যায় এবং এটিকে কার্যকর করা যায়। একবার আপনার হয়ে গেলে, আপনার কাছে একটি এক্সেল শীট থাকবে যা, আপনি যতবারই এটি খুলবেন, আপনার কম্পিউটার সিস্টেম সম্পর্কে আপনি যা জানতে চেয়েছেন তার সবকিছুই বলে দেবে৷
মনে রাখবেন যে এটি শুধুমাত্র এক্সেলের ডেস্কটপ সংস্করণের সাথে কাজ করবে, যা আপনি অফিসের বিনামূল্যে ট্রায়ালের সাথে পেতে পারেন৷
দ্য ম্যাজিক অফ ডাব্লুএমআই
মাইক্রোসফ্ট অপারেটিং সিস্টেম চালিত যেকোন কম্পিউটারে, আপনি উইন্ডোজ ম্যানেজমেন্ট ইন্সট্রুমেন্টেশন (WMI) নামক এক্সটেনশনের একটি শক্তিশালী সেট অ্যাক্সেস করতে পারেন, যা আপনাকে আপনার কম্পিউটার, অপারেটিং সিস্টেম এবং ইনস্টল করা সম্পর্কে তথ্য এবং স্পেসিফিকেশন অ্যাক্সেস করার জন্য একটি অত্যন্ত শক্তিশালী এবং বিস্তৃত পদ্ধতি প্রদান করে। সফ্টওয়্যার।
সর্বোপরি, WMI প্রোগ্রামিং ভাষা যেমন VBA থেকে অ্যাক্সেসযোগ্য, প্রায় সমস্ত Microsoft Office পণ্যগুলিতে উপলব্ধ৷
আপনার স্বয়ংক্রিয় স্প্রেডশীট সেট আপ করা হচ্ছে
প্রথমে, আপনার নতুন এক্সেল ওয়ার্কবুক তৈরি করুন এবং এটিকে বলুন MyComputerInfo।xlsm (ম্যাক্রো সক্ষম)। এটি খুলুন, শীট1 এড়িয়ে যান এবং পরবর্তী 11টি শীটের নাম পরিবর্তন করুন:
- নেটওয়ার্ক
- লজিক্যাল ডিস্ক
- প্রসেসর
- শারীরিক স্মৃতি
- ভিডিও কন্ট্রোলার
- OnBoardDevices
- অপারেটিং সিস্টেম
- প্রিন্টার
- সফটওয়্যার
- অ্যাকাউন্টস
- পরিষেবাগুলি
এগুলি আপনার কম্পিউটারের সমস্ত বিবরণ ধারণ করবে, এবং আপনি যখনই এই এক্সেল স্প্রেডশীটটি খুলবেন তখনই আপডেট করা হবে৷
৷এরপর, ডেভেলপার-এ যান মেনু আইটেম এবং নিয়ন্ত্রণ এর অধীনে বিভাগে কোড দেখুন ক্লিক করুন .
আপনি যদি বিকাশকারী মেনু আইটেমটি দেখতে না পান তবে ফাইল >-এ ক্লিক করুন৷ বিকল্প > রিবন কাস্টমাইজ করুন , এর থেকে কমান্ড চয়ন করুন পরিবর্তন করুন সমস্ত ট্যাব-এ ড্রপডাউন করুন , ডেভেলপার নির্বাচন করুন এবং যোগ করুন>> টিপুন কাস্টমাইজড রিবন সাইডে যোগ করতে বোতাম। আপনি একবার যোগ করার পরে সেই পাশের বিকাশকারী চেকবক্সটি নির্বাচিত হয়েছে তা নিশ্চিত করুন৷
একবার আপনি VBA কোড এডিটরের ভিতরে চলে গেলে, আপনাকে যা করতে হবে তা হল একটি মডিউলে নীচের স্ক্রিপ্টগুলি যোগ করুন। এই স্ক্রিপ্টগুলি ভারী উত্তোলনের সমস্ত কাজ করবে। আপনাকে এই কোডটি নিজে লিখতে হবে না, নিচের মত করে কপি করে পেস্ট করুন।
পরের বিভাগে কোডটি ব্যবহার করে কপি এবং পেস্ট করা হয়ে গেলে, আপনাকে যা করতে হবে তা হল আপনার শীটগুলি লোড করার জন্য আরও কিছু কোড যোগ করুন এবং আপনার কাজ শেষ।
ঠিক আছে, কপি এবং পেস্ট করতে প্রস্তুত? আসুন এটিতে যাই।
আপনার WMI মডিউল তৈরি করা
এই কোডের জন্য অনুপ্রেরণা একটি চমত্কার Google সাইট রিসোর্স থেকে আসে যার নাম Beyond Excel। এখানে দেখানো উদাহরণটি হল WMI() নামক একটি সাবরুটিন, যা আপনার কম্পিউটারের সমস্ত নেটওয়ার্ক তথ্য এক্সেল প্রোগ্রামিং পরিবেশের ডিবাগিং এলাকায় প্রেরণ করে৷
অবশ্যই, এটি আমাদের সেখানে খুব একটা ভালো করে না, তাই আমি কোডটি পরিবর্তন করেছি যাতে আপনি এই গাইডের প্রথম ধাপে তৈরি করা শীটগুলির একটিতে সমস্ত বিবরণ আউটপুট করতে পারেন৷
কোডিং নেভিগেশন এলাকায়, আপনি মডিউল নামে একটি বিভাগও দেখতে পাবেন এবং Module1 নামে একটি উপাদান . এটি খুলতে ডাবল ক্লিক করুন. আপনি যদি মডিউল ফোল্ডারটি দেখতে না পান, তাহলে ঢোকান প্রসারিত করুন মেনু থেকে এবং মডিউল নির্বাচন করুন .
এই এলাকাটি হল যেখানে সমস্ত সাবরুটিন হবে যা আপনার কম্পিউটার সম্পর্কে সমস্ত গুরুত্বপূর্ণ তথ্য টেনে আনতে এবং আপনার তৈরি করা শীটগুলিতে এটি লোড করতে WMI ব্যবহার করবে৷
কোড উইন্ডোর একেবারে শীর্ষে নিচের লাইনগুলি নিজে থেকেই রাখুন।
Public oWMISrvEx As Object 'SWbemServicesEx
Public oWMIObjSet As Object 'SWbemServicesObjectSet
Public oWMIObjEx As Object 'SWbemObjectEx
Public oWMIProp As Object 'SWbemProperty
Public sWQL As String 'WQL Statement
Public n
আপনার কাজ শেষ হলে এটি এইরকম হওয়া উচিত:
নিম্নলিখিত কোড আটকান আপনি এইমাত্র যে লাইনগুলি তৈরি করেছেন তার নীচে মডিউল 1-এ প্রবেশ করুন:
Sub NetworkWMI()
sWQL = "Select * From Win32_NetworkAdapterConfiguration"
Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
intRow = 2
strRow = Str(intRow)
ThisWorkbook.Sheets("Network").Range("A1").Value = "Name"
ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True
ThisWorkbook.Sheets("Network").Range("B1").Value = "Value"
ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True
For Each oWMIObjEx In oWMIObjSet
For Each oWMIProp In oWMIObjEx.Properties_
If Not IsNull(oWMIProp.Value) Then
If IsArray(oWMIProp.Value) Then
For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value)
Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n)
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
intRow = intRow + 1
strRow = Str(intRow)
Next
Else
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
intRow = intRow + 1
strRow = Str(intRow)
End If
End If
Next
'End If
Next
End Sub
এখন, আপনি কিছু ছোটখাটো পার্থক্য সহ এই গাইডের প্রথম অংশে তৈরি প্রতিটি শীটের জন্য এটির জন্য একটি অভিন্ন ফাংশন তৈরি করতে যাচ্ছেন৷
উদাহরণস্বরূপ, পরবর্তীতে আপনি NetworkWMI()-এর জন্য উপরের কোডটি কপি করবেন , সেই কোডের শেষের নিচে পেস্ট করুন, এবং তারপর "NetworkWMI()" এর পরিবর্তে "LogicalDiskWMI()"
এই কোডটি সঠিক শীটে পূরণ করার জন্য আপনাকে শুধুমাত্র কয়েকটি বিভাগ পরিবর্তন করতে হবে।
এটি পরিবর্তন করুন:
sWQL = "Select * From Win32_NetworkAdapterConfiguration"
এর জন্য:
sWQL = "Select * From Win32_LogicalDisk"
এই চারটি লাইন পরিবর্তন করুন:
ThisWorkbook.Sheets("Network").Range("A1").Value = "Name"
ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True
ThisWorkbook.Sheets("Network").Range("B1").Value = "Value"
ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True
এর জন্য:
ThisWorkbook.Sheets("LogicalDisk").Range("A1").Value = "Name"
ThisWorkbook.Sheets("LogicalDisk").Cells(1, 1).Font.Bold = True
ThisWorkbook.Sheets("LogicalDisk").Range("B1").Value = "Value"
ThisWorkbook.Sheets("LogicalDisk").Cells(1, 2).Font.Bold = True
এই দুটি লাইন পরিবর্তন করুন:
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
এর জন্য:
ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
এবং এই তিনটি লাইন:
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value
ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
এর জন্য:
ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name
ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value
ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
এখন, আপনি প্রায় শেষ!
আপনার ওয়ার্কবুকের প্রতিটি ট্যাবের জন্য উপরেরটি পুনরাবৃত্তি করুন। ফাংশনগুলি নিম্নরূপ হবে:
- "প্রসেসর" শীটের জন্য "প্রসেসরWMI()"।
- "ফিজিক্যাল মেমরি" শীটের জন্য "PhysicalMemWMI()"।
- "ভিডিও কন্ট্রোলার" শীটের জন্য "VideoControlWMI()"।
- "OnBoardDevices" শীটের জন্য "OnBoardWMI()"।
- "প্রিন্টার" শীটের জন্য "PrinterWMI()"।
- অপারেটিং সিস্টেম শীটের জন্য "OperatingWMI()"।
- "সফ্টওয়্যার" শীটের জন্য "SoftwareWMI()"।
- "পরিষেবা" শীটের জন্য "ServicesWMI()"।
আপনার কম্পিউটার সম্পর্কে এই তথ্য অ্যাক্সেস করার জন্য আপনাকে যে বিশেষ "Win32_" অবজেক্টগুলি ব্যবহার করতে হবে তা হল:
- Win32_NetworkAdapterConfiguration - আপনার সমস্ত নেটওয়ার্ক কনফিগারেশন সেটিংস
- Win32_LogicalDisk - ক্ষমতা এবং ফাঁকা স্থান সহ ডিস্ক।
- Win32_Processor - CPU স্পেক্স
- Win32_PhysicalMemoryArray - RAM/ইনস্টল করা মেমরি আকার
- Win32_VideoController - গ্রাফিক্স অ্যাডাপ্টার এবং সেটিংস
- Win32_OnBoardDevice - মাদারবোর্ড ডিভাইস
- Win32_OperatingSystem - সিরিয়াল নম্বর সহ উইন্ডোজের কোন সংস্করণ
- WIN32_Printer - ইনস্টল করা প্রিন্টার
- Win32_Product - ইনস্টল করা সফটওয়্যার
- Win32_BaseService - পরিষেবার পথ এবং ফাইলের নাম সহ যেকোনো পিসিতে চলমান (বা বন্ধ) পরিষেবাগুলি তালিকাভুক্ত করুন।
মডিউল1-এ সেই ফাংশনগুলির প্রতিটি কপি/পেস্ট এবং টুইক করা শেষ করুন কোডের এলাকা। আপনার হয়ে গেলে, এই গাইডের পরবর্তী বিভাগে যান৷
৷VB ভিউতে আপনার কোড সংরক্ষণ করতে মনে রাখবেন! আপনি যদি শুরুতে .xls দিয়ে আপনার ওয়ার্কবুক সংরক্ষণ করেন ফাইলের ধরন, এক্সেল এখন আপনাকে একটি ম্যাক্রো সক্ষম ফাইল প্রকার ব্যবহার করতে বলবে, যেমন .xlsm .
স্বয়ংক্রিয়ভাবে ওয়ার্কবুক লোড হচ্ছে
এখন যেহেতু আপনার কাছে সেই সব শক্তিশালী ফাংশন তৈরি হয়ে গেছে, প্রতিবার ওয়ার্কবুক খোলার সময় সেগুলি চালানোর জন্য বাকি আছে। এটা করা সত্যিই সহজ।
বাম অবজেক্ট ব্রাউজারে, Microsoft Excel অবজেক্টের অধীনে , আপনার এই ওয়ার্কবুক দেখতে হবে . এটি খুলতে সেই বস্তুটিতে ডাবল ক্লিক করুন৷
৷কোড এলাকার শীর্ষে, দুটি ড্রপডাউন বাক্স রয়েছে, বামটিকে ওয়ার্কবুক-এ পরিবর্তন করুন এবং সঠিকটি খোলা .
আপনি Private Sub Workbook_Open() নামে একটি ফাংশন স্বয়ংক্রিয়ভাবে তৈরি দেখতে পাবেন .
এখানে ভিতরে, কোডের নিম্নলিখিত লাইনগুলি টাইপ করুন৷ তাই ফাংশনটি এইরকম দেখায়:
Private Sub Workbook_Open()
NetworkWMI
LogicalDiskWMI
ProcessorWMI
PhysicalMemWMI
VideoControlWMI
OnBoardWMI
PrinterWMI
SoftwareWMI
OperatingWMI
ServicesWMI
End Sub
এখন, আপনি যখনই ওয়ার্কবুক খুলবেন, আপনার প্রতিটি নতুন তৈরি ফাংশন কল করা হবে, কম্পিউটার থেকে সমস্ত ডেটা টেনে আনবে এবং উপযুক্ত শীটে লোড করবে৷
এটিকে কার্যকরভাবে দেখতে, কোডটি সংরক্ষণ করুন, কোড উইন্ডোটি বন্ধ করুন, ওয়ার্কবুকটি সংরক্ষণ করুন এবং সেটিও বন্ধ করুন৷ আপনি এইমাত্র বন্ধ করা ফাইলটি পুনরায় খুলুন, এবং আপনি আবিষ্কার করবেন যে প্রতিটি একক শীটে আপনার কম্পিউটার সম্পর্কে প্রচুর পরিমাণে ডেটা রয়েছে৷
যেহেতু ওয়ার্কবুকটিতে ম্যাক্রো রয়েছে, যা নিরাপত্তার কারণে অক্ষম করা যেতে পারে, তাই আপনাকে সামগ্রী সক্ষম করুন ক্লিক করতে হতে পারে তথ্য সংগ্রহের জন্য শীটের শীর্ষে।
সতর্কতা - এটি প্রচুর ডেটা সংগ্রহ করে, তাই আপনি যখন প্রথম ফাইলটি খুলবেন তখন এটি লোড হওয়ার জন্য কয়েক মিনিট অপেক্ষা করার আশা করুন৷
কম্পিউটার তথ্য সংগ্রহ করা
এর জন্য ডাব্লুএমআই ব্যবহার করার আশ্চর্যজনক বিষয় হল যে উপরের ডেটাটি শুধুমাত্র আইসবার্গের টিপ। আপনার কম্পিউটার সিস্টেমের প্রতিটি দিক সম্পর্কে তথ্য সহ আরও শত শত WMI ক্লাস উপলব্ধ রয়েছে৷
আপনি যদি দুঃসাহসিক হন এবং এটিকে আরও এক ধাপ এগিয়ে নিতে চান, তাহলে আপনি ওয়ার্কবুকের প্রথম শীটটিকে একটি ড্যাশবোর্ডে পরিণত করতে পারেন এবং সেই ড্যাশবোর্ডকে খাওয়ানোর জন্য অন্যান্য শীট থেকে ডেটা ব্যবহার করতে পারেন৷
মূল কথা হল এই নতুন টুলটি ব্যবহার করে, আপনি কম্পিউটার সিস্টেম সম্পর্কে বেশিরভাগ আইটি বিশেষজ্ঞরা উপলব্ধি করার চেয়ে আরও বেশি তথ্য সংগ্রহ করতে এবং প্রদর্শন করতে সক্ষম হবেন এবং আপনি সময়ের একটি ভগ্নাংশের মধ্যে এটি করতে সক্ষম হবেন। একই বিশেষজ্ঞরা কন্ট্রোল প্যানেল এবং প্রশাসনিক এলাকায় খুঁড়িয়ে খুঁড়িয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁটিয়ে খুঁড়িয়ে খুঁড়িয়ে খুঁড়িয়ে খুঁটতে থাকেন
আপনি কি নিজেকে এইরকম একটি টুল তৈরি এবং ব্যবহার করতে দেখেন? আপনি কি একজন VBA প্রোগ্রামার এবং আপনি কি কখনো WMI ক্লাস ব্যবহার করেছেন? নীচের মন্তব্য বিভাগে আপনার নিজের অভিজ্ঞতা এবং ধারণা শেয়ার করুন!
ইমেজ ক্রেডিট:Adriano Castelli এর মাধ্যমে Shutterstock.com, Mclek এর মাধ্যমে Shutterstock