Friday, August 17, 2007 - Posts

TIPS-Excute EXE And Get Its Output From .NET

如果大家跟我一樣,常整合外部程式搞一些有的沒的,那一定可以用到這個函數。

它最常見的情境是整合一些好用的命令列工具(通常是用來查詢資訊),把它辛苦執行的結果佔為已有。例如: netstat -oa可以列出機器的網路連線狀況。如果我們希望要在.NET程式中提供這類資訊,要怎麼寫?

我們當然可以設法想辦法四處張羅Library、Windows API、WMI... 在程式中實作出類似的效果。

另一種鋸箭式的思考是"撿現成"!! 由我們的程式呼叫netstat.exe, 再去解讀它的輸出結果。其實,這種Pipeline的觀念,本來就是UNIX或PowerShell裡整合不同程式的慣用手法,大家也不必有什麼罪惡感。唯一要考量的是因為它會另起一個Process,耗用資源較多,對效能也稍有減損,不適合用在Web之類效能敏感的應用。

//執行外部程式並將執行結果以字串方式傳回
public string Shell(string exeFile, string argument)
{
    Process pShell = new Process();
    pShell.StartInfo.FileName = exeFile;
    pShell.StartInfo.Arguments = argument;
    //必須要設定以下兩個屬性才可將輸出結果導向
    pShell.StartInfo.UseShellExecute = false;
    pShell.StartInfo.RedirectStandardOutput = true;
    //不顯示任何視窗
    pShell.StartInfo.CreateNoWindow = true;
    //開始執行
    pShell.Start();
    pShell.WaitForExit();
    //將StdOUT的結果轉為字串, 其中StandardOutput屬性類別為StreamReader
    return pShell.StandardOutput.ReadToEnd();
}

以下是一個超簡單的應用範例,呼叫Ping.exe並解析結果看IP是否活著:

bool bAlive = (Shell("ping.exe", "-n 1 192.168.1.254").IndexOf("Reply")>-1);

Posted 17 August 2007 03:20 PM by Jeffrey | no comments
Filed under: , ,
【茶包射手專欄】IE Developer Toolbar破案奇錄

接獲通報,Sharepoint Portal的首頁,原本在IE6上看是藍底白字的MenuBar,在IE7上看到的是白底白字。

這回破案的主角不是茶包一哥Process Monitor了,而是IE Developer Toolbar!!

利用Find/Find By Click的功能找到MenuBar的DOM處,再用下圖的好功能一舉追出它的CSS套用狀況。

在IE7中看到以下的異象:

-: #75A3DF... 這是啥? (咳! 不准想歪)

跟IE6比對的結果,應該是BACKGROUD-COLOR : #75A3DF才對。

由於已知是core.css,追到該檔案,發現.linebg Style誤打了一個Dash(-)在左大括號後方,看來IE6會忽略這個誤打的"-",但IE7卻誤認"-"是Property Name,造成了我們看到的結果。

.linebg
{-
background-color:#75A3DF;
}

這次只花了20分鐘破案,但如果沒有IE Developer Toolbar,得花多少時間找出多出的這一根? 我不敢想像。

TOOL-Create Your Own AJAX-Style Waiting Animation

  

上面這種轉轉轉跟著AJAX一起紅了起來,陪許多User渡過漫長的"非同步傳輸"等待期間。

我的Window Form Project裡加了用Multithread方式跟Server要資料的功能,所以也想找一個來陪伴可憐的User,結果找到這個不錯的網站: http://ajaxload.info/

可以指定樣式、背景色、前景色做出各式"AJAX Style"的等待動畫GIF,直接下載回家,COOL~~~

Search

Go

<August 2007>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
【工商服務】


BlogLook Score and Rank

Syndication