操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    家好,我是老趙。大多數的時候,大家做的機房,一般都是規模比較小的機房。在機房里,頂多也就是裝個空調。甚至有的公司機房,連空調不愿意裝。隨著信息技術的發展,萬物互聯時代的到來,計算機系統和通信設備的數量越來越多,規模也越來越大。如果機房動力或者環境設備出現故障,輕則導致計算機宕機,重則導致數據丟失等嚴重后果。因此,對于一些數據重要性較高的企業,一套可對機房進行實時監控的系統就顯得非常有必要。

    今天的視頻,我們就來了解一下機房環控系統。機房環境監控是針對機房動力和環境的集中監控管理系統,它監控的對象主要是機房動力和環境等設備(比如:配電、UPS、空調、溫度、濕度、漏水、門禁、安防、消防、防雷等等)。

    機房環境監控系統,一般是由采集子系統、傳輸子系統、軟件子系統組成。采集子系統主要就是各種傳感器,由這些傳感器完成底端數據的采集,然后傳輸子系統將底端采集到的數據傳送到監控中心,監控中心的軟件子系統完成系統設置、數據處理、報警信息產生、數據存儲、等系統功能。

    在采集子系統中,對被監控信號的測量就顯示非常重要,被監控信號按照特性一般可以分為模擬量和開關量。

    1)模擬量采集技術

    需采用模/數 轉換設備將模擬量變成數字量后才能適合計算機采集。有一些智能設備的模擬量信號由監控單元完成采集,而非智能設備的模擬量信號需要增加各種傳感器來完成采集,將非電量信號轉換為電量信號。

    2)開關量采集技術

    開關量是指不連續變化的、具有確定的幾種狀態的量,最典型的是僅有"0"和"1"兩種狀態的開關量。比如說停電檢測,只需要檢測有電還是斷電就可以了。

    具體來說,機房環控系統有哪些具體的內容呢? 可以分為這幾個方面。

    動力方面: UPS供電、市電電量、配電柜開關、蓄電池、PDU機柜電源、防雷器、發電機等

    環境方面:精密空調、漏水檢測、濕度檢測、新風機、空氣質量、粉塵含量、照明控制等;

    安防方面:視頻監控、門禁系統、入侵檢測、周界安全等;

    消防方面:煙霧探測、火災報警、自動滅火系統、排煙系統等等;

    網絡方面:網絡設備監測、網絡鏈路監測、服務器狀態監測、業務系統監測、數據庫監測等等;

    當機房的傳感器,檢測到這些異常,并進行報警,環控系統會將這些報警信息,通過聲光報警器報警,通過發送郵件、發送短信、或者自動拔打電話給設定的負責人員。以便于于及時處理報警信息。

    雖然說機房環控系統所含內容很多,但在實際的項目中,除了數據中心這種大型的機房以外,普通公司級別小機房,都不會有這么復雜,通常只會選擇性的做一些必須的項目。比如說之前我們做過一個公司的機房,機房也不大,設備也并不多。但是這個公司要通過有關部門的一些資質認證,認證呢就要求機房必須具體一些環控的功能。所以呢,我們就做了空調溫度檢測、市電檢測、防雷、監控、浸水報警、UPS報警這幾個細項。

    浸水感應線

    這些細項里,有的是模擬數據、有的是數字的數據,所以在安裝調試時,模擬量的數據要通過設備進行轉換,轉換成數據量來進行識別。比如說浸水檢測,就是機房的靜電地板下面繞了一圈圈的線圈,當機房漏水地面浸水時,線圈就會感應到變化,從而發出報警信號。

    作為一個弱電行業的從事人員,雖然我們碰到這種做機房環控系統的機率并不大,但是我們還是有必要去了解一下機房環控系統究竟是干什么的,有哪些功能。作為基礎知識的儲備也好,作為你平時和人交流的談資也好,都是有必要的。

    有了上次遍歷窗體和控件的方法,現在變得簡單多了,現在我只需要把要用到的控件找出來再操作就行了。

    操作下拉列表及點擊開始按鈕代碼如下:

    void GOJH(IntPtr p)
    {
        textBox1.Text +="開始查找相關控件...\r\n";
    
        IntPtr xllbptr=IntPtr.Zero;  //下拉列表
        IntPtr ksptr=IntPtr.Zero;    //開始按鈕
        IntPtr tcptr=IntPtr.Zero; ;   //退出按鈕
    
        List<object[]> l=GetAllChilds.GetObjs(p);
        foreach (object[] objs in l)
        {
            IntPtr ptr=(IntPtr)objs[0];
            string text=objs[1].ToString();
            string thetype=objs[2].ToString();
    
            if (thetype=="ComboBox")   //根據類型找出
            {
                xllbptr=ptr;
                textBox1.Text +="---找到下拉列表!\r\n";
            }
            else
            {
                if (text=="開始")   //根據文本找出
                {
                    ksptr=ptr;
                    textBox1.Text +="---找到開始按鈕!\r\n";
                }
                else if (text=="退出")
                {
                    tcptr=ptr;
                    textBox1.Text +="---找到退出按鈕!\r\n";
                }
            }
        }
    
        //操作下拉列表
        textBox1.Text +="操作下拉列表...";
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        textBox1.Text +="完成!\r\n";
        Thread.Sleep(100);
    
        //點擊開始按鈕
        textBox1.Text +="點擊開始按鈕...";
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        textBox1.Text +="完成!\r\n";
        Thread.Sleep(100);
    
        textBox1.Text +="開始激活...\r\n";
    
        //下面可以觀察情況,沒什么問題就點擊退出按鈕,退出激活程序
    }

    這里半路殺出個程咬金,激活成功后出了一個對話框

    這個對話框都是頂級對話框,標題十分明顯,用findwindow找到它,再查找里面的按鈕玉好了。比較好處理,接下來的程序就很順暢了,

    需要多引用一個 findwindowEx

    [DllImport("user32.dll", EntryPoint="FindWindowEx")]

    private extern static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

    對話框中就那么一個按鈕,就用這個了,不需要再費事去遍楞

    找到控件并做操作的所有代碼:

    void GOJH(IntPtr p)
    {
        textBox1.Text +="開始查找相關控件...\r\n";
    
        IntPtr xllbptr=IntPtr.Zero;
        IntPtr ksptr=IntPtr.Zero;
        IntPtr tcptr=IntPtr.Zero; ;
    
        List<object[]> l=GetAllChilds.GetObjs(p);
        foreach (object[] objs in l)
        {
            IntPtr ptr=(IntPtr)objs[0];
            string text=objs[1].ToString();
            string thetype=objs[2].ToString();
    
            if (thetype=="ComboBox")
            {
                xllbptr=ptr;
                textBox1.Text +="---找到下拉列表!\r\n";
            }
            else
            {
                if (text=="開始")
                {
                    ksptr=ptr;
                    textBox1.Text +="---找到開始按鈕!\r\n";
                }
                else if (text=="退出")
                {
                    tcptr=ptr;
                    textBox1.Text +="---找到退出按鈕!\r\n";
                }
            }
        }
    
        //操作下拉列表
        textBox1.Text +="操作下拉列表...";
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        SendMessage(xllbptr, 0x014D, (IntPtr)0, "數字激活");
        textBox1.Text +="完成!\r\n";
        Thread.Sleep(100);
    
        //點擊開始按鈕
        textBox1.Text +="點擊開始按鈕...";
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(ksptr, BM_CLICK, (IntPtr)0, "0");
        textBox1.Text +="完成!\r\n";
        Thread.Sleep(100);
    
        textBox1.Text +="開始激活...\r\n";
    
        //激活成功時會彈出成功對話框
        //一直等它彈出來,再點擊“OK”
        textBox1.Text +="等待激活成功對話框...\r\n";
        int num=0;
        bool OK=false;
        while (!OK)
        {
            num++;
            if (num % 50000==0)
            {
                //顯示次數
                textBox1.Text +="等待激活(" + num.ToString() + ")\r\n";
            }
    
            //找到“成功”對話框
            IntPtr successwin=FindWindow(null, "成功");
            if (successwin !=IntPtr.Zero)
            {
                //找到按鈕
                IntPtr btn_OK=FindWindowEx(successwin, IntPtr.Zero, null, "確定");
                //點擊按鈕關閉對話框
                if (btn_OK !=IntPtr.Zero)
                {
                    SendMessage(btn_OK, BM_CLICK, (IntPtr)0, "0");
                    SendMessage(btn_OK, BM_CLICK, (IntPtr)0, "0");
                    SendMessage(btn_OK, BM_CLICK, (IntPtr)0, "0");
    
                    textBox1.Text +="激活完畢......\r\n";
                }
    
                OK=true;
            }
        }
    
        //點擊退出按鈕
        textBox1.Text +="準備退出激活程序...";
        SendMessage(tcptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(tcptr, BM_CLICK, (IntPtr)0, "0");
        SendMessage(tcptr, BM_CLICK, (IntPtr)0, "0");
        textBox1.Text +="完成!\r\n";
        Thread.Sleep(100);
    }

    最終效果如下:我事先用程序得到了標題,并且放到了一個文本文件里,界面也稍微做了點變化。

    到這里整個程序就完成了,我并沒有把主程序隱藏,在最后也沒有退出,主要是為了看程序運行過程,如果把主程序隱藏,在激活結束后再自己把自己退出,再把自己刪除,基本上程序就結束了。這部分我已經寫好,只不過沒必要貼在這里了。

    程序我已經用起來,用極域把它發送到機房中的機器上,再運行它,自動激活,再把自己刪除干凈,完美!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有