[WM][VB][重設裝置]

  • 5563
  • 0

[WM][VB][重設裝置]

要如何撰寫程式達到讓機器重設裝置也是俗稱的冷啟動、warm boot如下列,不過早期的機器可以程式化達到Clean,現在的必需有手機廠商來自行處理,因為如果整台機器Clean 必需要重新安裝 nk.bin 載入到記憶體才有os 可以執行,如果你手上的機器是moto 的上官網他有提供一組執行檔,你只要執行他就會自動Clean。 

  • Warm = clears “program memory”, keeps “storage memory” (= “object store”)
  • Cold = clears both “program memory” and “storage memory”
  • Clean = clears all memory plus all persistent storage

    參考 http://blogs.msdn.com/ce_base/archive/2005/06/22/431699.aspx

    如何達成手機重新開機.net compact framework並沒有支援任何指令,並需使用外部coredll.dll API 指令 KernelIoControl Lib 來完成動作,如果不會寫程式沒關係今天順帶告訴各位在vs2008 也提供插入程式碼片段給大家參考使用也就是Code Snippet

    Step1:開啟vs2008新增一個vb 智慧型裝置專案,在表單上產生一個按鍵Reset

    image

    Step2: 在上一個畫面的重新啟動快速按二下就可以程式碼編輯畫面,接在按下滑鼠右鍵會出現功能表選擇插入程式碼片段

    image

    Step3:出現插入程式碼片段視窗後點選智型裝置

    image

    Step4:接著點選裝置作業系統

    image

    Step5:在來點選重設裝置 

    image

    Step6:程式碼就這麼神奇跑出來了,接下來手工一下把ResetPocketPC 函式名填入到 Butoon1_Click裡面

    image

    Step7:按下偵錯\開始偵錯來部署應用程式測試一下

    image

    Step8:按一下Reset 看看不會重新開機就完成了 

    image

    另外可以使用SetSystemPowerState 函式來達成如下所式

       Const POWER_FORCE As Integer = 4096
        Const POWER_STATE_RESET As Integer = &H800000
        Private Declare Function SetSystemPowerState Lib "Coredll" ( _
       ByVal psState As String, ByVal StateFlags As Integer, _
       ByVal Options As Integer) As Integer

       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            SetSystemPowerState(Nothing, POWER_STATE_RESET, POWER_FORCE)
        End Sub