2016年5月5日 星期四

Batch file - errorlevel in Linux: $?

In Linux environment, we can use $? to get the errorlevel as DOS batch.

------------------------------------
run something here...

if [ $? -eq 0 ]
then
  echo "good"
else
  echo "bad"
fi

2016年1月26日 星期二

Batch file - Save current IP to a file

@ECHO off
for /f "delims=: tokens=2" %%a in ('ipconfig ^| findstr /R /C:"IPv4 Address"') do (set tempip=%%a)

set tempip=%tempip: =%

echo %tempip% > IP.txt

2015年11月10日 星期二

PAPAGO GoSafe 738 後視鏡行車紀錄器 使用心得

我的Honda Fit本來就裝有一台Vico DS2   但由於前些日子上武嶺時吸盤可能因為大氣壓力變小的關係而脫落, 讓我稍稍起了換行車紀錄器的念頭
又好巧不巧家人的行車紀錄器壞了一台...

其實早知道Costco有賣Papago這款後視鏡型的行車紀錄器  跟網路上比價也確實是便宜不少
還送一張16G UHS-I的micro SDHC卡  整個很划算



2013年12月20日 星期五

2013 瑞法行 :: 瑞士首都 - 伯恩 Bern

其實在到達伯恩之前根本也不知道這裡的故事與特色景點
只知道他是在蘇黎世到日內瓦的中間
於是這次的瑞法行第一站就選定為 -- 瑞士首都

三個沒做什麼功課的人從蘇黎世搭火車到伯恩, 出了車站完全搞不清楚要往哪走
原來是我們提早從Schanzenstrasse這條街的出口出來, 以致出口不是在火車站的建築物內

問了一下路, 找回火車站正門口, 站內有置物櫃, 先去遊客服務中心問看看一日遊該怎麼走

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

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中的時間差