2015年8月31日 星期一

[Win 7] 如何得知目前電腦上的Port被哪隻程式佔用

有時候在執行某些軟體時會因為該軟體所使用的Port已經被其他程式佔用了而無法使用
在Windows 7中可以很清楚的查看目前電腦上有哪些Port已經被程式使用

方法一,步驟如下:
1. 請按下 Ctrl + Alt + Del ,然後選擇 [啟動工作管理員]
    (或在執行中輸入taskmgr後按下Enter)

2. 點選 [效能] 分頁,然後點選下方的 [資源監視器] 按鈕,如下圖所示:



















3. 打開資源監視器後,點選 [網路] 分頁,然後展開下方的 [接聽連接阜]

即可看到目前有哪些程式正在執行,且分別使用了哪些Port,如下圖所示:














另外一種方式請參考這篇文章,我大概條列步驟如下而不多做贅述:
1. 從開始功能表裡打開命令提示字元(或在執行中輸入cmd後按下Enter)
2. 輸入 netstat - ano 指令,底下會列出電腦上有哪些Port正被佔用,及佔用該Port的程式PID
3. 一樣輸入Ctrl + Alt + Del 打開工作管理員,然後點選 [處理程序] 頁面
4. 找到想要找的PID後,左邊的影像名稱即為佔用該Port的程式名稱

以上希望有幫助到遇到同樣問題的大家:)

參考資料:
1. http://blog.xuite.net/yamalin/blog/15087550



Continue Reading...

2015年8月18日 星期二

[VB6] 陣列的長度宣告方式

在VB6中,我們會以 Dim 變數名稱 As 資料型態的方式來宣告變數
其實跟C#宣告變數的差別不大,只在於語法上看起來不太一樣而已

但是在陣列的宣告上,兩者針對陣列長度的宣告方式卻有些不同。舉例來說,
如果我們要宣告一個長度為5的整數陣列,
在C#中是這樣寫的:

int array1 = new int[5];

表示array1這個陣列的長度為5,可以存放 array1[0] ~ array1[4] 這5個陣列元素
宣告時給的參數是指陣列長度

但一樣的陣列在VB6裡會是這麼宣告的

Dim array1(4) As Integer

各位有發現不同的地方嗎,在VB中這樣寫的意思表示這個陣列
可以存放 array1[0] ~ array1[4] 這5個陣列元素
宣告時放的參數則是指此陣列的最大索引值

雖然是個小地方,但若沒弄清楚卻可能有機會造成迴圈讀取到null或者是
array out of bound的exception,因此紀錄一下以提醒自己 :))


References:
1. https://msdn.microsoft.com/zh-tw/library/wak0wfyt.aspx
2. https://msdn.microsoft.com/zh-tw/library/0a7fscd0.aspx
3. http://tr.ilvs.ilc.edu.tw/~onlinevb/vb/14.htm

Continue Reading...

2015年8月11日 星期二

[C#] out修飾詞的用法

MSDN 針對 out修飾詞的用法解釋得很清楚,簡單來說
在C#中,若要將方法參數以Call by Reference的方式傳遞
不論是在方法定義或者呼叫方法時,都必須要在該參數的前頭加上 refout 這兩個修飾詞。

這兩個修飾詞的差別在於:
1. 冠上ref的參數必須在傳遞參數前先初始化變數,冠上out修飾詞的變數則不需要
2. 冠上out的參數雖然不需要事先初始化,但需要在方法傳回之前指派其變數值

以下舉幾個簡單例子來幫助理解 out修飾詞的用法:
(一) 方法定義與呼叫

    
class Program
{
  static void Method(out int i)
  {
    i = 45;
  }
  static void Main(string[] args)
  {
    int value;
    Method(out value);

    Console.WriteLine("Value: {0}", value);
    Console.ReadLine();
  }
}

上述程式將會在Console中印出 Value: 45 的結果
可以看到在宣告方法跟呼叫方法時都必須要將Call By Reference的參數冠上out修飾詞
否則程式將出錯,其中該變數並不須事先指派變數值
(同樣的宣告方式若使用ref修飾詞將出錯)

另外由於是Call By Reference,因此方法內對於value變數值的變更將會直接影響到
外面的value變數,因此直接印出value就可以看到變更後的數值。

(二) out使用時機: 讓一個方法有多個return值
直接參考MSDN提供的例子來做說明,程式碼如下:
   
class Program
{
  static void MultiReturnMethod(out int i, out string s1, out string s2)
  {
    i = 50;
    s1 = "Second Parameter";
    s2 = "Third Parameter";
  }

  static void Main(string[] args)
  {
    int value;
    string str1, str2;

    MultiReturnMethod(out value, out str1, out str2);

    Console.WriteLine("Return Three Parameters: {0} {1} {2}", value, str1, str2);
    Console.ReadLine();

    /*
     * Output:
     * Return Three Parameters: 50 Second Parameter Third Parameter
     */
  }
}

藉由輸出結果可以看到原先宣告的三個變數皆已受到方法內指派變數值的影響
以上簡單筆記一下 :)

Reference:
1. https://msdn.microsoft.com/zh-tw/library/t3c3bfhx(v=vs.120).aspx
2. https://msdn.microsoft.com/zh-tw/library/14akc2c7(v=vs.120).aspx

Continue Reading...

2015年8月4日 星期二

[VB][VB6] Option Explicit { On | Off }

若在VB的模組檔(.bas) 中的最上頭看到 Option Explicit On/Off 的陳述式
指的是說要不要強制程式中的變數必須先宣告後再使用,

Option Explicit On 
在此模組檔中的變數都須先宣告才能使用,否則編譯時將出錯
另外若單純只有寫 Option Explicit 後面未接On或Off
指的也是 Option Explicit On 的意思 (此語法預設為 On)

Option Explicit Off
在此模組檔的變數不須事先宣告則可直接使用

舉例來說,VB程式原先是允許變數未經宣告就直接使用的
譬如我直接寫下 i = 10,此時後面的程式即可使用 i 這個變數
但若模組檔的最上方有寫著 Option Explicit On 時,這樣的寫法將導致編譯時報錯
必須事先宣告 Dim i As Integer後,方可將 i 作為變數使用

對程式的開發及維護來說,不必宣告即可直接使用變數固然方便
但這樣的方式很難確保是否會有在同樣範圍內重複宣告相同名稱變數的風險
另外當打錯變數名稱時也不容易察覺,所以在使用時機上要依情況而定。

References:
1. https://msdn.microsoft.com/zh-tw/library/y9341s4f(v=vs.120).aspx
2. http://www.programmer-club.com.tw/ShowSameTitleN/vb/13547.html
3. http://yes.nctu.edu.tw/vb/1_Stat/OptionExplicit.htm


Continue Reading...

2015年7月28日 星期二

[轉錄][VB6] VB6.0對滑鼠滾輪不支援的解決方法

這篇文章是在網路上看到針對VB6原先不支援滑鼠滾輪功能的解法

原文網址為: http://fecbob.pixnet.net/blog/post/38132931

===== 以下為轉貼內容 =====

由於VB6.0對滑鼠滾輪不支援,往往給大家的工作和學習帶來很多不方便,
發生此問題是因為 Visual Basic 6.0 IDE 對通過使用滑鼠輪滾動內置不支援,
微軟官方給出了兩種方法,大家都可以試一試:

方法
1、下載 VB 6 滑鼠 Wheel.exe 檔, 包括載入 DLL 和代碼用於創建載入項 DLL。 1.下載 VB 6 滑鼠 Wheel.exe 檔,應運行。
可用於從 Microsoft 下載中心下載下列檔案:
HTTP://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe


2.解壓到一個目錄。按一下 開始,按一下 運行,鍵入 regsvr 32 < 路徑 > \VB6IDEMouseWheelAddin.dll 。
(建議把VB6IDEMouseWheelAddin.dll 直接COPY到系統資料夾下,這樣可以直接運行regsvr32 VB6IDEMouseWheelAddin.dll )

3.啟動 Visual Basic 6.0。

4.按一下「外接程式-->外接程式管理器」 。

5.在載入項管理器清單, 按一下 MouseWheel fix 。

6.在available add-ins清單中,選擇「mousewheel fix」,在load behavior欄中按一下選中"loaded/unloaded和load on startup核取方塊

7.按一下 確定 。


大功告成,載入一個例子,試試吧,支援滑鼠滾輪了!
也可以生成 Visual Basic 6.0 中載入 DLL。 如果這樣做, 載入 DLL 自動註冊。
然後您可以按照步驟 4 到 7,載入 DLL。以生成該載入項 DLL, 按一下 檔 功能表上 生成 VB6IDEMouseWheelAddin.dll。

===== 以上為轉貼內容 =====

經測試後確實就可以使用滾輪了 :))


Continue Reading...

2015年4月20日 星期一

[Visual Studio 2010] 找回VB6方便的Shift + F2 及 Ctrl + Shift + F2 快捷鍵

在因緣際會下,在工作時有機會接觸到VB6的開發環境
雖然在語法上我還是比較習慣C#的寫法,
但在開發時我深深覺得VB6預設提供的其中兩個快捷鍵真的非常好用,分別是 :

Continue Reading...

2015年4月16日 星期四

[Silverlight 4] 關閉預設的右鍵選單,並新增自定義的選單內容

Silverlight應用程式預設會有自己的滑鼠右鍵選單

是一個單純設定Silverlight應用程式的按鈕

如要關掉此預設的右鍵選單,步驟如下 :

Continue Reading...

2015年3月17日 星期二

Clean Code 讀後心得(二) 命名的藝術

在書上提到了一些有關變數及函式命名的觀念,在這邊稍作點筆記

相信日後回來看這篇應該會慢慢有感覺

Continue Reading...

2015年3月10日 星期二

Clean Code 讀後心得(一) 什麼是Clean Code

這篇是閱讀 Clean Code這本書的一些memo,預計每看完一小段落就會做個memo

不然以我健忘的個性....大概整本書看完就忘光了...  哈哈

Continue Reading...

2015年3月3日 星期二

【SNMP 網管實務】SNMP基本介紹

這篇是這陣子看 < SNMP網管實務 > 這本書的一些隨手小記

對於想要完整了解SNMP的朋友來說可能幫助不大

但很歡迎各位前輩跟朋友提出指正跟討論  謝謝~!

Continue Reading...

2015年2月25日 星期三

新書購入 - Clean Code 無瑕的程式碼


Continue Reading...

更改Visual Studio 2013 IDE語系

Visual Studio 2013 Community 是微軟去年釋出的免費IDE版本

其功能幾乎等同於Professioal版本  可說是相當佛心


Continue Reading...

2015年1月18日 星期日

[C#] as 運算子 與 強制轉型 的比較

http://msdn.microsoft.com/zh-tw/library/cscsdfbt.aspx
as 運算子的用法就像是轉型作業。 不過,如果無法轉換的話, as 則會傳回 null ,


Continue Reading...

Followers

Follow The Author