2013年10月24日 星期四

Visual Studio筆記 :: Geting OS version by APIs

VB

方法一:
MSDN: http://msdn.microsoft.com/zh-tw/library/system.environment.osversion.aspx

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Get the operating system version.
        Dim os As OperatingSystem = Environment.OSVersion
        Dim ver As Version = os.Version

        Label1.Text = os.VersionString
        Label2.Text = ver.ToString()
        Label3.Text = My.Computer.Info.OSFullName & My.Computer.Info.OSVersion
    End Sub
End Class

----
方法二:
MSDN: http://msdn.microsoft.com/zh-tw/library/vstudio/795sy883(v=vs.100).aspx

Imports System.Runtime.InteropServices

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Label4.Text = "Passing OSVersionInfo as a class"

        Dim osvi As New OSVersionInfo()
        osvi.OSVersionInfoSize = Marshal.SizeOf(osvi)

        LibWrap.GetVersionEx(osvi)

        Label5.Text = "Class size:" & osvi.OSVersionInfoSize
        Label6.Text = "OS Version:" & osvi.MajorVersion & "." & osvi.MinorVersion

        Label7.Text = "Passing OSVersionInfo2 as a struct"

        Dim osvi2 As New OSVersionInfo2()
        osvi2.OSVersionInfoSize = Marshal.SizeOf(osvi2)

        LibWrap.GetVersionEx2(osvi2)
        Label8.Text = "Struct size:" & osvi2.OSVersionInfoSize
        Label9.Text = "OS Version:" & osvi2.MajorVersion & "." & osvi2.MinorVersion
    End Sub
End Class

<StructLayout(LayoutKind.Sequential)> _
Public Class OSVersionInfo
    Public OSVersionInfoSize As Integer
    Public MajorVersion As Integer
    Public MinorVersion As Integer
    Public BuildNumber As Integer
    Public PlatformId As Integer

    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> _
    Public CSDVersion As String
End Class

<StructLayout(LayoutKind.Sequential)> _
Public Structure OSVersionInfo2
    Public OSVersionInfoSize As Integer
    Public MajorVersion As Integer
    Public MinorVersion As Integer
    Public BuildNumber As Integer
    Public PlatformId As Integer

    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> _
    Public CSDVersion As String
End Structure

Public Class LibWrap
    Declare Ansi Function GetVersionEx Lib "kernel32" Alias _
        "GetVersionExA" (<[In], Out> ByVal osvi As OSVersionInfo) As Boolean

    Declare Ansi Function GetVersionEx2 Lib "kernel32" Alias _
        "GetVersionExA" (ByRef osvi As OSVersionInfo2) As Boolean
End Class



Visual Studio筆記 :: Shutdown API sample

VC++
MSDN: http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(EXITWINDOWSEX);k(DevLang-%22C%2B%2B%22)&rd=true

2013年8月19日 星期一

快快樂樂學Visual Studio之居然不用錢!

相信很多台灣人在高中大學的時候都學過程式設計吧, 而程式設計如果只是寫寫Hello World!這種Console型的主控端程式那多無聊, 一定要玩一些看的到摸的到有互動式人機界面的程式才酷啊! 於是很多人的第一次...視窗程式設計經驗就貢獻給萬惡的微軟Visual Basic系列.


2013年7月31日 星期三

2013 雪梨行 :: 推薦景點 - Taronga Zoo

到澳洲沒看無尾熊袋鼠應該算是白去了吧
雪梨附近有三座動物園, 我們這次去的 Taronga Zoo 要搭渡輪才能到
先到2號碼頭買動物園套票$52, 包含來回渡輪, 動物園內纜車, 遊園公車, 及動物園門票


2013年7月30日 星期二

2013 雪梨行 :: 雜項

:: 機場交通 ::

雪梨機場離市區還真是超乎想像的近 (其實是因為我出發前沒做功課, 一切都是到機場後再想辦法, 反正路在嘴上嘛...)
出關後找到Airport Train的指標跟著去,  搭電梯到樓上, 上樓之前都有免費WiFi所以也不用太擔心, 快到機場月台前有售票亭, 搭到中央車站15.9元(超貴...), 還沒去的可以研究一下包市區公車的套票.
一定要拿的地圖,
有全市地圖與飯店青年旅館資訊
火車路線圖

2013年7月19日 星期五

2013 雪梨行 :: 推薦景點 - Blue Mountains 藍山一日遊

說到雪梨近郊, 大家應該都會介紹到藍山, 但藍山要怎麼去, 又有什麼好玩, 可以耗多久??
就讓我粗淺的介紹給大家吧!

:: 藍山簡介 ::
藍山是澳洲國家公園之一, 有名的原因最主要我想就是離雪梨很近吧, 從雪梨中央車站到藍山約2小時火車車程, 主要景點有三姐妹石, 與周邊的峽谷景觀. 藍山之名其來有自, 由於當地盛產尤加利樹, 樹葉釋放出的氣體群聚在山間形成一層藍色的薄霧, 從SCENIC WORLD望去特別明顯喔. 藍山官網


Python notes: Calculate delay time by WinDBG log

用WinDBG開Event Timestamps可以產生下面格式的log: Fri Sep 21 18:43:50.946 2018 (UTC + 8:00): @#$#^$@#$^ 以下python code用來找出兩個指定log中的時間差