heqteyur يوللانغان ۋاقتى 2014-10-21 13:15:22

C# .net تا كومپيۇتېر قاتتىق دېتال ۋە سىستېما ئۇچۇرلىرىنى ئېلىش ئۇسۇلى

ئەسسالامۇ ئەلەيكۇم دوستلار:

C# .net مۇھىتىدا تۇرۇپ كومپيۇتېر قاتتىق دېتال ۋە مەشغۇلات سىستېمىسغا دائىر ئاساسىي ئۇچۇرلارغا ئېرىشىش بولسا يۇمشاق دېتال ئېچىش جەريانىدا دائىم مۇھتاج بولۇپ تۇرىدىغان ئىشلارنىڭ بىرى ھىسابلىنىدۇ، گەرچە تورلاردا مۇنىڭغا دائىر يازمىلار خېلى كۆپ بولسىمۇ كۆپ قىسىملىرى ناھايىتى يۈزەكىلا ناھايىتى تار دائىرىدىلا تونۇشتۇرۇپ ئۆتكەن، بۈگۈن مەن تونۇشتۇرماقچى بولغان مەزمۇن بولسا يېڭى ئۆگەنگۈچىلاردىن تارىپ كەسپ ئەھلىلىرىگىمۇ ئەس قاتىدىغان تەپسىلى مەزمۇندۈر. ئەمىسە باشلىدۇق:

1، ئاۋال تۈردىن بىرنى (يەنى پروجېكت دېمەكچى) قۇرىمىز:

2، ئاندىن 解决方案资源管理 دىن يەنى ئادەتتە ئوڭ تەرەپ ئۈستۈندە تۇرىدىغان تۈر ئەسلى كود ھۆججىتى ۋە مۇناسىۋەتلىك ماتېرىياللارنى باشقۇرىدىغان جايدىن 引用 دېگەن تۈرنىڭ ئۈستىدە مائۇسنىڭ ئوڭ كۇنۇپكىسىنى بېسىپ 添加引用 دېگەننى باسىمىز:



3، ئاندىن تۆۋەندىكى كۆزنەك ئېچىلىدۇ، بۇ كۆزنەكتىن رەسىمدە كۆرسىتىلگەندىكىدەك System.Management دېگەن تۈرنىڭ ئالدىغا توغرا بەلگىسى ئۇرۇپ جەزملەشتۈرىمىز:



4، ئەمدى بىز كود يېزىشقا كىرىشسەك بولىدۇ، يەنى كود يازماقچى بولغان مەنبە كود ھۆججىتىنى ئېچىپ Using قىسىمىغا مۇنۇ جۈملىنى قوشۇمىز:using System.Management;
5، ئاندىن ئۇچۇر ئېلىش ئۇچۇن تۆۋەندىكىدەك كودلارنى يازىمىز: (تۆۋەندە بىرمۇ بىر چۈشەندۈرۈپ ئۆتىمەن)       private void button1_Click(object sender, EventArgs e)
      {
            ManagementClass mc1 = new ManagementClass(textBox2.Text);
            //ManagementClass mc2 = new ManagementClass("Win32_Processor");
            foreach(ManagementObject mo in mc1.GetInstances())
            {
                foreach(PropertyData pd in mo.Properties)
                {
                  textBox1.AppendText(pd.Name+" : "+pd.Value+"
");
                }
            }
      }

6، يۇقۇرىدىكى كودنى ئىجرا قىلغاندا تۆۋەندىكىدەك نەتىجە چىقىدۇ:



يەنى كومپيۇتېرنىڭ CPU سىغا مۇناسىۋەتلىك مەشغۇلات سىستېمىسىغا تىزىملانغان بارلىق ئۇچۇرلارنى ئالدۇق دېگەن سۆز.

ئەمدى ئاۋۇ كودنى بىر بىرلەپ چۈشۈنۈپ چىقايلى.

ئەڭ ئالدى بىلەن تونۇشۇپ چىقىدىغىنىمىز ManagementClass تۈرى بولۇپ، بۇ تۈر ئارقىلىق نۇرغۇن ئاممىۋىي ئۇچۇرلارغا ئېرىشكىلى بولىدۇ. تەپسىلاتىنى ئورگان بېتىدىن كۆرۈپ باقساڭلا بولىدۇ:

http://msdn.microsoft.com/zh-cn/library/System.Management.ManagementClass(v=vs.110).aspx

بىز ئەڭ ئالدى بىلەن ManagementClass تۈرىدىن بىر ئوكيېكىت ھاسىل قىلىمىز، ھاسىل قىلىشتا قايسى تۈرلۈك ئۇچۇرلارنى ئالىدىغانلىقىمىزنى ھاسىل پارامېتىرى قىلىپ بېرىمىز، تۆۋەندىكىدەك:ManagementClass mc2 = new ManagementClass("Win32_Processor");
بۇ يەردىكى Win32_Processor دېگەن سۆز بىزنىڭ بۇ ئوكيېكىتنى كومپيۇتېرنىڭ CPU ئۇچۇرلىرىنى ئېلىش ئۈچۈن قۇرغانلىقىمىزنى بىلدۈرىدۇ.

ئاندىن تۆۋەندىكى كود ئارقىلىق مۇناسىۋەتلىك كونكىرت ئۇچۇرلارنى ساقلىغان ManagementObject تۈرىگە ئېرشىمىز، GetInstances فۇنكىسىيەسى ئارقىلىق بىر ياكى بىردىن كۆپ ياكى نۆل دانە ManagementObjectقا ئېرىشىپ قېلىش ئېھتىماللىقى بولغاچ بىز بۇ يەردە foreach جۈملىسىنى ئىشلەتتۇق.            foreach(ManagementObject mo in mc2.GetInstances())
            {

            }ئاندىن ئېرىشكەن ManagementObjectئوبيېكىتى ئارقىلىق ئۇچۇرلارنى ئالىمىز. بىز بۇ يەردە ئېلىشقا بولىدىغان ئۇچۇلارنىڭ ھەممىسى ئېلىپ مىسال قىلدۇق، يەنى يەنە بىر foreachجۈملىسى ئارقىلىق بارلىق خاسلىقلارنى بىر قۇر ئوقۇپ چىقتۇق.         foreach(ManagementObject mo in mc2.GetInstances())
            {
                foreach(PropertyData pd in mo.Properties)
                {
                  textBox1.AppendText(pd.Name+" : "+pd.Value+"
");
                }
            }بۇ يەردىكى pd.Name بولسا خاسلىق نامى، pd.Value بولسا شۇ خاسلىقنىڭ قىممىتى بولىدۇ. ئەگەر بارلىق خاسلىقنى ئالماي كونكىرت خاسلىق نامىنى بېرىپلا قىممىتىنى ئالماقچى بولساق مۇنداق يازساق بولىدۇ.         foreach(ManagementObject mo in mc2.GetInstances())
            {
                textBox1.Text = mo.Properties["ProcessorId"].Value.ToString();
            }بۇ يەردە ئالاھىدە دىققەت قىلىشقا تىگىشلىك ئىش شۇكى بەزى خاسلىقتىن بەزى كومپيۇتېرلاردا null قىممەت قايتىپ قېلىشى مۇمكىن شۇڭا بىۋاستە يۇقۇرىدىكىدەك يازماي مۇنداق يازساق تېخىمۇ بىخەتەر بولىدۇ:         foreach(ManagementObject mo in mc1.GetInstances())
            {
                if (mo.Properties["ProcessorId"].Value != null)
                {
                  textBox1.Text = mo.Properties["ProcessorId"].Value.ToString();
                }
            }يۇقۇرىدىكى مەزمۇنلار ئارقىلىق مەقسەدتە بىرەر قۇر يەتتۇق دېگەن سۆز، ئەمدى مەسىلە ئەگەر CPU ئۇچۇرلىرىدىن باشقا ئۇچۇرلارغا ئېرىشمەكچى بولسام قانداق قىلىمەن مەسىلىگە كەلسەك بۇنىڭدا جىق ئۆزگىرىش يوق، يەنى بىز پەقەتلا ManagementClass نىڭ ھاسىل پارامېتىرىنى ئۆزگەرتىپ ManagementObject نىڭ مۇناسىۋەتلىك خاسلىق نامى ئارقىلىقلا خالىغان باشقا ئۇچۇرلارغا ئېرىشەلەيمىز. تۆۋەندە مىكروسوفت شىركىتى ئورگان بېتىدىكى بارلىق مۇناسىۋەتلىك ئۇچۇرلار بار بەتنىڭ ئادرېسىنى قالدۇردۇم، شۇ يەردىن ئۆزەڭلارغا لازىملىق مۇناسىۋەتلىك ئۇچۇرلارنى كۆرۈپ يۇقۇرىدا تونۇشتۇرۇلغان ئۇسۇللار بىلەن مەشغۇلات قىلساڭلارلا بولىدۇ.

1، بارلىق ھاسىل پارامېتېرلىرىنى چوڭ تۈر بويىچە ئايرىلغان بەت:



http://msdn.microsoft.com/zh-cn/aa394084

مەزمۇن ئىنگلىز تىلىدا ئەمما ھەممىسى كومپيۇتېرغا مۇناسىۋەتلىك بولغاچ كۆپ قىينچىلىق بولماس دەپ قارايمەن. مۇناسىۋەتلىك تۈرنى بېسىپ كىرسەڭلا تەپسىلى ھاسىل پارامتېر بېتى ئېچلىدۇ. مەسىلەن بىرىنچى قۇردىكىسى كومپيۇتېر قاتتىق دېتال ئۇچۇرلىرىغا مۇناسىۋەتلىك مەزمۇنلار بار بەت:

2، كىچىك تۈرلەر بويىچە ئايرىلغان بەت:



http://msdn.microsoft.com/zh-cn/aa389273

بۇ بەتمۇ ئىنگلىزچە ئەمما يەنىلا چۈشۈنۈشلۈك دەپ قارايمەن. چۈشەنمىسەڭلا لۇغەتكە مۇراجىئەت قىلغايسىلە: www.udict.cn

3، يۇقۇرىدكى مەلۇم تۈرنى تاللىسڭلار شۇ تۈرنىڭ كونكىرت بارلىق خاسلىقلىرىنىڭ ناملىرىنى كۆرەلەيسىلە:



http://msdn.microsoft.com/zh-cn/aa394373

شۇنداق بولغاندا يازما مۇشۇ يەردە تامام. چۈشەنمىگەن يەرلەر ياكى باشقا مەسىلە بولسا سۆز قالدۇرساڭلا ياكى ئېلخەت يازساڭلا بولىدۇ.

يۇقۇردىكى مەزمۇننى مەنبەسىنى ئەسكەرتىپ خالىغانچە كۆچۈرۈپ ئىشلەتسىڭىز بولىدۇ. كۆكلەن NET. پاراڭجايى بلوگىدىن ئېلىندى.
بەت: [1]
: C# .net تا كومپيۇتېر قاتتىق دېتال ۋە سىستېما ئۇچۇرلىرىنى ئېلىش ئۇسۇلى