星期四, 12月 24, 2009

64 bit windows registry redirector and reflection

定義:

  • redirector: 讓32 bit與64 bit程式使用相同的registry key存取不同的registry實體
  • reflection: 自動同步相同registry key的32 bit與64 bit registry實體

各registry key詳細的redirection與reflection狀況需參考 Registry Keys Affected by WOW64

其他注意事項:

  • registry寫入時,如果開頭為%ProgramFiles%或%commonprogramfiles%,會視情況自動改寫為"%ProgramFiles(x86)%"或"%commonprogramfiles(x86)%"。
  • 以下目錄也會視情況被改寫: %windir%\system32, %SystemRoot%\system32,  C:\windows\system32

參考

星期三, 12月 23, 2009

64 bit windows file system redirector

32bit軟體存取路徑時的重新導向原則

  • %windir%\System32 -> %windir%\SysWOW64
  • %windir%\lastgood\system32 -> %windir%\lastgood\SysWOW64
  • %windir%\regedit.exe –> %windir%\SysWOW64\regedit.exe
  • 注意: 如果過程中觸發了UAC prompt, 則上述重新導向都不會發生。將會發生32bit軟體試圖執行64bit DLL或其他程式的問題。
    • 若要避免此問題,需在該32bit程式中直接引用SysWOW64

其他注意事項

星期四, 12月 10, 2009

在Webdashboard上建立link直接連接到造成此次build的subversion revision頁面

在header.xsl的<xsl:template match="/cruisecontrol/modifications/modification">區塊中加入以下片段:

<xsl:if test="changeNumber">
<tr>
  <td class="header-label" valign="top">
    <nobr>ChangeSet of XXXXX</nobr>
  </td>
  <td class="header-data">
      <a>
        <xsl:attribute name="href">
http://xxxx/changeset/<xsl:value-of select="changeNumber"/>
        </xsl:attribute>changeSet <xsl:value-of select="changeNumber"/>
      </a>
  </td>
</tr>
</xsl:if>

星期二, 12月 01, 2009

windows上Python第一次使用步驟

編輯與執行python程式

  1. 下載python
  2. 執行IDLE (Python GUI)
  3. Ctrl+N編輯新python程式或Ctrl+O開啟已經存在的python程式
  4. F5執行

撰寫python unit test程式

import sys
import unittest

def SayHello(name):
    return "hello " + name

class TestSayHello(unittest.TestCase):
    def testHelloAska(self):
        self.assertEqual("hello Aska", SayHello("Aska"))
    def testHelloWorld(self):
        self.assertEqual("hello World", SayHello("World"))
if __name__ == "__main__":
    if len(sys.argv) < 2:
        unittest.main()
    else:
        SayHello(sys.argv[1]);