2013年5月22日 星期三

[系統]製作USB開機碟+NoName XPE

一,需事先準備下面幾項工具
1.HP USB Disk Storage Format Tool (製作開機區)。
2.Grub4dos Installer (設定開機檔)。
3.grldr 及 grub.exe 二個檔案 (Grub4Dos內的二個檔案) (下載)。
4.NoName XPE (自製XP精簡版 ISO檔)。
5.準備一支USB 2.0/3.0 1G 以上的隨身碟。
二,開始製作
注意:USB隨身碟在第一步驟時會作格式化,所以裡面原本有檔案的話會被清除。
1.先將USB插入。
2.執行HP USB Disk Storage Format Tool 程式。
3.選擇USB裝置,快速格式,建立一個DOS開機作業磁碟,DOS系統檔案位置。
4.開始(Start)。
1
5.執行Grub4dos Installer 工具設定MBR。
6.Disk<-選擇你USB裝置(如果抓不到請用管理員權限來執行此程式)。
7.Options<-勾選No backup MBR ,Don’t search floppy ,Disable PrevMBR。
8.Install。
2
9.將下載回來的XPE ISO解壓縮,或者用酒精先掛載起來。
10.將XPE ISO內的檔案複製到USB隨身碟:
  • A.複製整個XPE ISO內的檔案到USB隨身碟。
  • B.將RXPE資料夾內RXPE.COMSETUPLDR.BIN檔案複製到USB隨身碟根目錄下
  • C.將USB隨身碟下的SETUPLDR.BIN檔案更名為NTLDR
11.USB隨身碟根目錄下會有這些資料夾及檔案。
3
12.恭喜你完成了,快找台電腦來測試吧!

2013年5月20日 星期一

[VB.NET]跨執行緒作業無效-跨執行續操作UI

一,依WindowsForm來說,介面上有二個Button,有一支執行續需要設定這二個Button的Enabled。

如果直接設定會出現跨執行緒作業無效的錯誤訊息。

所以我們可以使用委派來處理跨執行續的問題。

 
Private Delegate Sub MyButtonCallBack(ByVal StartValue As Boolean, ByVal StopValue As Boolean)

Private Sub SetButtonEnabled(ByVal StartValue As Boolean, ByVal StopValue As Boolean)
'判斷是否由執行緒以外的執行緒呼叫,若不是則直接設定Button
If Me.InvokeRequired Then
'實作委派方法
Dim MyButton As New MyButtonCallBack(AddressOf SetButtonEnabled)
'執行委派
Me.Invoke(MyButton, StartValue, StopValue)
Else
Me.btnStart.Enabled = StartValue
Me.btnStop.Enabled = StopValue
End If
End Sub

2013年5月14日 星期二

[VB.NET]Custom Contol自訂控制項事件

一,客製一個控制項是繼承Button,增加一個按下滑鼠右鍵Click事件,事件名稱:RightClick


自訂控制項

 
Public Class SuperButton
    Inherits Button

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)

        '請在此處加入您自訂的繪製程式碼
    End Sub
    '自訂一個新的事件RightClick
    Dim _handlers As New List(Of EventHandler)

    Public Custom Event RightClick As EventHandler
        AddHandler(value As EventHandler)
            _handlers.Add(value)
        End AddHandler

        RemoveHandler(value As EventHandler)
            If _handlers.Contains(value) Then
                _handlers.Remove(value)
            End If
        End RemoveHandler

        RaiseEvent(sender As Object, e As System.EventArgs)
            For Each handler As EventHandler In _handlers
                Try
                    handler.Invoke(sender, e)
                Catch ex As Exception
                    Debug.WriteLine(ex.ToString())
                End Try
            Next
        End RaiseEvent
    End Event
    '監聽滑鼠事件
    Protected Overrides Sub OnMouseDown(mevent As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(mevent)
        '當滑鼠被按下右鍵時則回應自訂事件
        If mevent.Button = Windows.Forms.MouseButtons.Right Then
            RaiseEvent RightClick(Me, mevent)
        End If
    End Sub

End Class

[Web Service]Console Mode 基礎連接已關閉: 無法為SSL/TLS 安全通道 忽略認證

 
Imports System.Net
Imports System.Net.Security
Imports System.Security.Cryptography.X509Certificates

Module Module1

Sub Main()
Dim oWebCilent As New TEST.ReceiveClient
Dim oResponse As TEST.ServiceResponse
'委派認證回呼
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate)
Try
'........
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
'忽略認證直接回傳True
Public Function ValidateServerCertificate(ByVal sender As [Object], ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
Return True
End Function
End Module