在 Cygwin 下安裝 SSHD 的方式

安裝步驟

  1. 安裝 cygwin 時,套件中必須勾選:
    • Admin --> cygrunsrv
    • Net --> openssh
  2. 進入 Cygwin 並執行 ssh-host-config 指令:
    • privilege separation be used? (yes/no) no
    • Do you want to install sshd as service? yes
    • 認證方式輸入預設 ntsec
  3. 啟動服務
    • cygrunsrv.exe  --start sshd
  4.  讓 sshd 隨著 Windows 一起啟動
    • cygrunsrv.exe  --install sshd

常用指令

  • 列出目前所安裝的服務
    • cygrunsrv.exe  -L
  • 啟動服務
    • cygrunsrv.exe  --start <service name>
  • 停止服務
    • cygrunsrv.exe  --stop <service name>
  • 安裝服務
    • cygrunsrv.exe  --install <service name>
  • 移除服務
    • cygrunsrv.exe  --remove <service name>
  

此文章由 will 發表於 2007/10/31 上午 09:25:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 系統管理 | Linux

標籤: , ,

收藏:

頁面套用 MasterPage 時用 FindControl 找尋 WebControl 的方式不一樣

沒有 MasterPage 的情況

    this.FindControl( ... )

有套用 MasterPage 的情況

    this.MasterPage.FindControl( ... )

  

此文章由 will 發表於 2007/10/30 下午 10:33:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET

標籤:

收藏:

如何用 VBA 將傳進來的半型數字字串轉成國字大寫

' 將傳進來的半型數字字串轉成國字大寫
' -------------------------------------------
Function 轉國字(s As String) As String
  Dim s1 As String
  Dim s2 As Long
  If s = "" Then 轉國字 = "未輸入金額": Exit Function
  While Left(s, 1) = "0": s = Right(s, Len(s) - 1): Wend
  tmp節名 = "元萬億兆京"
  節數 = (Len(s) - 1) \ 4 + 1
  位數 = 節數 * 4
  s = Right("0000" & s, 位數)
  For i = 節數 To 1 Step -1
    個位名 = Mid(tmp節名, i, 1)
    s1 = Mid(s, ((節數 - i) * 4) + 1, 4)
    zero = ""
    If Left(s1, 1) = "0" Then zero = "零"
    tmp = tmp & zero & 轉四位數(s1) & 個位名
  Next
  If Left(tmp, 1) = "零" Then tmp = Right(tmp, Len(tmp) - 1)
  tmp = Replace(tmp, "零零", "零")
  tmp = Replace(tmp, "零萬", "")
  tmp = Replace(tmp, "零億", "")
  tmp = Replace(tmp, "零元", "元")
  轉國字 = tmp & "整"
End Function

Function 轉四位數(s As String) As String
  If s = "0000" Then 轉四位數 = "零": Exit Function
  While Left(s, 1) = "0": s = Right(s, Len(s) - 1): Wend
  s = StrReverse(s)
  tmp位名 = " 拾佰仟"
  tmp國字 = "零壹貳參肆伍陸柒捌玖"
  For i = 1 To Len(s)
    英數字 = Mid(s, i, 1)
    國數字 = Mid(tmp國字, 英數字 + 1, 1)
    位名 = Mid(tmp位名, i, 1): If 英數字 = "0" Then 位名 = ""
    結果 = 國數字 & 位名 & 結果
  Next
  結果 = Replace(結果, "零零零", "零")
  結果 = Replace(結果, "零零", "零")
  If Right(結果, 1) = "零" Then 結果 = Left(結果, Len(結果) - 1)
  轉四位數 = Trim(結果)
End Function

Private Sub Command1_Click()
  Debug.Print 轉國字("1234567890123")
  Debug.Print 轉國字("10003000")
  Debug.Print 轉國字("1502000")
  Debug.Print 轉國字("10000000000")
  Debug.Print 轉國字("100000000000000")
End Sub


' 將傳進來的英文字串轉成全形英文

Function ChgToAll(Word As String) As String
    Dim WoAll As String
    Dim NewWord As String
    NewWord = ""
    WoAll = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    For i = 1 To Len(Word)
        If Asc(Mid(Word, i, 1)) - 65 >= 0 And Asc(Mid(Word, i, 1)) - 65 <= 25 Then
            NewWord = NewWord + Mid(WoAll, Asc(Mid(Word, i, 1)) - 65 + 1, 1)
        Else
            NewWord = NewWord + Mid(Word, i, 1)
        End If
    Next i

    ChgToAll = NewWord
End Function

  

此文章由 will 發表於 2007/10/29 下午 08:22:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: VBA

標籤:

收藏:

安裝 psmon 筆記

到以下網址下載安裝

    http://search.cpan.org/~NICOLAW/psmon/

    http://search.cpan.org/CPAN/authors/id/N/NI/NICOLAW/psmon-1.29.tar.gz

說明文件如下

    http://search.cpan.org/src/NICOLAW/psmon-1.29/support/psmon.html

設定檔位址

    /etc/psmon.conf

需要修改的參數

    1. 要把 Disabled True 給 Remark 起來 ( 整個設定檔有兩組要 Remark 掉 )

    2. 設定檢查 Process 的頻率

        Frequency 30

    3. 設定管理者 Email 位址

        AdminEmail  admin@xxx.com

    4. 設定 Apache 的檢查

# Apache Group HTTP Daemon
<Process httpd>
    spawncmd    /sbin/service httpd restart
    pidfile     /var/run/httpd.pid
    # instances 200
    # pctcpu    80
    pctmem      60
</Process>


■■■■■■■■■■■■■
注意事項
■■■■■■■■■■■■■

在設定檔中,設定 Process 的地方!!!

    <Process httpd>

這裡的 "httpd" 必須要在 Process Table 中出現,才可以偵測的到! ( Process Table 就是類似透過 ps -ef 指令傳回的資料 )

  

此文章由 will 發表於 2007/10/29 下午 08:16:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 系統管理 | Linux

標籤:

收藏:

如何在 Batch 檔取得系統的日期、時間欄位

以下的程式碼片段(*.bat)可以取得目前系統時間的年、月、日、時、分等欄位,當在做一些自動化備份時,可以用時間來當檔名或留下 TIMESTAMP 紀錄。

@echo off

cls

:: 取得今天日期的年、月、日三個欄位(透過 date /t 指令取得)
for /f "tokens=1-4 delims=-/ " %%i IN ('date /t') DO (
set year=%%i
set month=%%j
set day=%%k
)

:: 取得當下時間的時、分兩個欄位
for /f "tokens=1-3 delims=:" %%i IN ('time /t') DO (
set hour=%%i
set minute=%%j
)

:: 濾掉 hour 前面可能會出現的空白
for /f "tokens=1 delims= " %%i IN ("%hour%") DO (
set hour=%%i
)

  

此文章由 will 發表於 2007/10/29 下午 01:47:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 系統管理

標籤: ,

收藏:

如何讓 Lynx 純文字瀏覽器讀取 UTF-8 的 ASP.NET 網頁

這個問題困擾我好久,但是現在終於被我給解決啦,想想也真是功德一件,自己蠻開心的! Laughing

問題說明

到目前為止,好像還沒有人可以用 Lynx 這套純文字瀏覽器讀取用 UTF-8 編碼的網頁,因為這套軟體實在太冷門,所以至今也沒有人幫忙解決這個問題。

需求 for 身心障礙同胞

在國內卻有許多身心障礙同胞使用 Lynx 這套軟體,最近因為我們公司正在積極建置一個無障礙的網站,光是想到 UTF-8 編碼的網頁無法讓這些身心障礙同胞使用到我們製作的網站服務,就覺得內心實在有股衝動想趕快解決這個問題!

需求 for 製作無障礙網站的 ASP.NET 2.0 開發人員

我想大多數 ASP.NET 開發人員不懂 Linux 作業系統,唯一能使用 Lynx 軟體測試的方式,就是在 Windows 主機上使用 Cygwin + Lynx 軟體進行測試,不過我今天研究出來一個最簡單、最容易、最省時省力的方式,讓你的 ASP.NET 網站伺服器看到使用 Lynx 上網的瀏覽者,就改以 BIG5 的方式回應輸出編碼字集!

解決方案

在 ASP.NET 2.0 新增了一個特殊的資料夾,叫做 App_Browsers,ASP.NET 會使用這些檔案來辨識個別瀏覽器並判斷它們的功能與應該回應的方式。

你只要在你的 Web Application 根目錄建立這個目錄,並建立一個 Lynx.browser 檔案,檔案裡面的內容如下:

[code:html]
<!--     You can find existing browser definitions at     <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers -->
<browsers>
  <browser id="Lynx" parentID="Default">
    <identification>
      <userAgent match="Lynx/\d+\.\d+" />
    </identification>
    <capture>
      <userAgent match="Lynx/(?'version'(?'browserMajorVersion'\d+)\.(?'browserMinorVersion'\d+))" />
    </capture>
    <capabilities>
      <capability name="browser" value="Lynx" />
      <capability name="version" value="${version}" />
      <capability name="majorVersion" value="${browserMajorVersion}" />
      <capability name="minorVersion" value="${browserMinorVersion}" />
      <capability name="preferredRequestencoding" value="big5" />
      <capability name="preferredResponseencoding" value="big5" />
    </capabilities>
  </browser>
</browsers>
[/code]


夠簡單吧!這要照這樣子做,你的網站只要遇到 Lynx Browser 上網,馬上就可以「自動」變成 Big5 編碼摟! 真心感謝 ASP.NET 這個漂亮的 Web 開發架構!

注意事項

  • 如果在你的網頁中有使用到以下這個 meta 標籤,請將他移除:

    [code:html]
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    [/code]

  • 並將以下的程式碼加到你的 MasterPage 或 Page 的 Code Behind 的 Page_Load 事件中:

    [code:c#]
    public partial class MasterPage : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HtmlMeta metaContentType = new HtmlMeta();
            metaContentType.HttpEquiv = "Content-Type";
            if (Request.Browser.Browser == "Lynx")
            {
                metaContentType.Content = "text/html; charset=big5";
            }
            else
            {
                metaContentType.Content = "text/html; charset=utf-8";
            }
           
            Page.Header.Controls.AddAt(0, metaContentType);
        }
    }
    [/code]

  • 另外說明一下,如果你的網頁中的外部載入檔案 ( *.css 或 *.js ) 的話,如果檔案是用 UTF-8 編碼且內容中有非 ASCII 的字元,也有可能在使用 big5 瀏覽時造成網頁發生問題!但 Lynx 本來就不支援 CSS 與 JavaScript,所以也沒這個問題啦!但誰知道以後的 Lynx 版本會不會支援這些功能!

參考資料

  

此文章由 will 發表於 2007/10/28 下午 08:45:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET | Accessibility

標籤: , , , , , ,

收藏:

發現 C# 中有一個特殊的運算子 "??"

C# 中的這個運算子 "??" 主要用途是用來檢查變數的值是不是為 null,以往我們常用的方法是:

[code:c#]
    if (str2 != null) { str1 = str2; } else { str1 = "N/A"; }
[/code]

或是

[code:c#]
    string str1 = (str2 != null) ? str2 : "N/A";
[/code]

現在我們多了一種選擇,就是使用 "??" 運算子,如下範例中,如果 str2 不是 null 就會傳回 str2(左運算元),否則傳回 "N/A"(右運算元):

[code:c#]
    string str1 = str2 ?? "N/A";
[/code]

是不是比較簡單呢? ^_^

舉個更明確的例子:

1. 因為在有些時候,嘗試將「可為 null 的型別」指派給「不可為 null 的型別」時,將會產生編譯時期錯誤。這時使用 ?? 運算子就非常方便,你可以用 ?? 指定變數為 null 時應該給被指定的變數什麼「預設值」!

2. 另外,我們常常在做「型別轉換」時,如果轉換的型別是可為 Null 的型別但目前為未定義,執行的時候則將會擲回 InvalidOperationException 例外狀況,使用 ?? 運算子可以很迅速的解決這問題。

以下是從 MSDN 擷取的範例,我用自己的話註解說明:

[code:c#]
using System;
class MainClass
{
    // 取回可為 null 的 int 型別的方法
    static int? GetNullableInt()
    {
        return null;
    }

    // 取回型別為 null 的方法
    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        // ?? 運算子範例
        int? x = null;

        // 若 x 為 null 就回傳 -1,否則就會傳 x
        int y = x ?? -1;

        // 這範例用來展示 Method 回傳的值可能是 null
        // 使用 ?? 運算子檢查若為 null 則使用 default(int) 代替
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // ?? 運算子也適用於「參考型別」
        // 如果 s 為 null 時顯示 "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}
[/code]

  

此文章由 will 發表於 2007/10/28 下午 06:50:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: ,

收藏:

匯入多筆行事曆資料到 Outlook 的方式

如果匯入的是"全天"的事件,才適用以下的方式。

Outlook 在很古老的版本就已經有 Outlook holiday file 的格式了,可以一次新增多筆的不同日期的事件,但唯一的限制是這原本的用意是用來新增「休假日期」的,所以沒辦法設定到幾點幾分,所以只能設定全天的事件。

其格式如下:

[假日的描述] 事件的總筆數
事件的說明, yyyy/mm/dd
事件的說明, yyyy/mm/dd


實際範例:台灣九十六年度紀念日及節日假期表

檔名:tw96hol.hol
[台灣96年紀念日及節日假期表] 21
元旦(放假),2007/1/1
農曆除夕,2007/2/17
春節年初一,2007/2/18
春節年初二(放假),2007/2/19
春節年初三(放假),2007/2/20
春節年初四(補假),2007/2/21
春節年初五(補假),2007/2/22
春節年初六(調整放假),2007/2/23
和平紀念日(放假),2007/2/28
補行上班,2007/3/3
民族掃墓節(放假),2007/4/5
民族掃墓節次日(調整放假),2007/4/6
補行上班,2007/4/14
勞動節(請依各機關規定),2007/5/1
端午節前日(調整放假),2007/6/18
端午節(放假),2007/6/19
補行上班,2007/6/23
中秋節前日(調整放假),2007/9/24
中秋節(放假),2007/9/25
補行上班,2007/9/29
國慶日(放假),2007/10/10

當你將此檔 tw96hol.hol 用滑鼠點兩下後,就會出現下圖,按下確定鍵後就會新增到你的 Outlook 去了:


參考資料

The Outlook calendar can automatically highlight your key dates
http://office.microsoft.com/en-us/outlook/HA010864971033.aspx

Microsoft Outlook Holiday Issues
http://www.slipstick.com/calendar/holidays.htm

  

此文章由 will 發表於 2007/10/27 下午 03:45:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Office

標籤:

收藏:

將 ASP.NET 2.0 中的 web.config 編碼最簡單的方式

編碼 web.config

        cd c:\inetpub\wwwroot   (你的應用程式目錄)

        C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -prov DataProtectionConfigurationProvider -pef connectionStrings .

解碼 web.config

        cd c:\inetpub\wwwroot   (你的應用程式目錄)

        C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf connectionStrings .

  

此文章由 will 發表於 2007/10/27 下午 03:22:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET

標籤: ,

收藏:

Outlook 2007 讀取 HTML 格式的 Email 時有些 CSS 屬性不支援

老實說,製作 Outlook 2007 / Word 2007 團隊的人實在是太扯了! 

因為 Outlook 2007 採用 Word 2007 做為 檢視HTML 郵件的元件,但是 Word 2007 盡然不支援以下這幾個設計師十分常用的 CSS 屬性:

  • background-attachment

  • background-image

  • background-position

  • background-repeat

  • clear

  • display

  • float

  • list-style-image

  • list-style-position

  • 我的老天爺阿,沒了這些東西,還真不知道要怎麼設計網頁呢!!

    經詢問微軟技術支援團隊確認後, 才知道他們從去年就被客戶抱怨到不行,至今還是沒有解決方案,還真的無言!

    以下是參考的資料: 

    Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 1 of 2)
    http://msdn2.microsoft.com/en-us/library/aa338201.aspx

    Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 2 of 2)
    http://msdn2.microsoft.com/en-us/library/aa338200.aspx

    2007 Office System Tool: Outlook HTML and CSS Validator
    http://www.microsoft.com/downloads/details.aspx?familyid=0b764c08-0f86-431e-8bd5-ef0e9ce26a3a&displaylang=en

      

    此文章由 will 發表於 2007/10/27 下午 02:15:00

    永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

    分類: CSS

    標籤: , ,

    收藏: