2019年12月11日 星期三

[VB.NET] TreeView.NodeMouseClick 事件迴避 Collapse/Expand

Dot Net的TreeVie元件如果有開啟checkbox屬性,可以在Before/AfterCheck事件,利用e.Action處理類似的問題。

如果沒有開啟checkbox,一開始只找到在Before/After Collapse加入boolean變數,辨別是否正在執行展開/關閉TreeView動作,但是實測後與NodeMouseClick的觸發順序無法配合。

下面這個方法是可以運作的,也更好理解:
Dim hit As TreeViewHitTestInfo = TreeView1.HitTest(e.Location)
If hit.Location = TreeViewHitTestLocations.PlusMinus Then Return
如果點擊位置在TreeView元件的展開/關閉圖示,則退出Module執行。

2019年11月1日 星期五

[其他] Visual SourceSafe 出現 Error reading from file!

今天同事從Visual Studio簽入檔案時,出現UTF-8的警告訊息,他選擇忽略以後,Visual SourceSafe中的檔案就毀損了,也無法刪除,點目錄就會出現「Error reading from file!」錯誤訊息。

到Visual SourceSafe的安裝目錄中可以找到analyze.exe執行檔,然後用cmd執行以下指令:
analyze -f <VSS DATA FOLDER PATH>
<VSS DATA FOLDER PATH>是Visual SourceSafe檔案儲存路徑下一個名為data的目錄。舉例,我的VSS Database路徑為D:\VSSDB,底下就會有名為data的目錄。指令就是:
analyze -f D:\VSSDB\data
之後analyze.exe就會開始對毀損除錯,至於檔案救不救得回來無法保證,但至少Error reading from file!的訊息沒有再出現。

在執行時有碰到兩種情況:
  1. 執行前,正在登入Visual SourceSafte的使用者都要離開,不然無法執行。
  2. 每次執行analyze.exe後會在data\backup中建立analyze檔案(應該是log檔,有點忘記),如果要執行第二次,必須把這個檔案刪掉才能執行。

2019年9月4日 星期三

2019年8月19日 星期一

[cmd] 在cmd中同時使用多個指令

指令1 || 指令2 || 指令3 || .....
前面的指令失敗後,才執行後面的指令。

指令1 && 指令2 && 指令3 && .....
前面的指令成功後,才執行後面的指令。

指令1 & 指令2 & 指令3 & .....
無論前面的指令成功或失敗,皆執行後面的指令。

[VB.NET] 透過 Process 開啟、關閉外部程式

由於沒找到System.Diagnostics.Process有提供使用程式別名的方法,只能改用Cmd去做,此段Code只能留作紀念。

2019年8月14日 星期三

[VB.NET] SMTP設定

因為改由log4net執行發送Mail的動作,所以這段code就沒用了,保留下來作以後查詢使用。

2019年8月3日 星期六

[手札] 羅輯思維第205期隨筆

學習的五大關鍵

  1. 人格:與人學習比與書本學習相比,才能在現代資訊爆炸的時代,更有效率的掌握新的知識。
  2. 概念:面對新的領域、知識時,先掌握它的整體概念,有了分門別類的認識,學習時就能夠根據這些概念有系統的吸收。
  3. 縫合:能夠將吸收的東西實際運用、表達,才是真的學會,最簡單的縫合方式就是針對看到的東西寫下筆記,做簡單的紀錄。
  4. 碎片:現代人的時間受到各種外在因素干擾而碎片化,因此能夠利用碎片的時間學習到有用的知識,才是學習效率最大化。
  5. 目標:有再多的想法都不如目標與行動。人有各種想法,可能前一刻在想著這件事,下一秒又會產生新的想法,最終產生各種想法都沒有任何助益;然而訂下目標並開始動手後,不論有再多新的想法產生,你都已經必須要遵循這個目標下去做了。這時候人就會用盡各種方式學習以達成目標,這時的學習才是有效率的、有意義的。

影片連結:https://youtu.be/_veTW93FH5M

2019年6月17日 星期一

[筆記] SECS中的三種變數型態DV、SV、EC


  • Data Variable (DV)
  • Status Variable (SV)
  • Equipment Constant (EC)

Data Variable (DV) – data items that can be gathered when an equipment event occurs. This data is only guaranteed to be valid in the context of the event. For example, the GEM interface may provide an event called PPChanged (triggered when a recipe changes). The interface may also provide a data variable called changed recipe. The value of this DV is only valid in the context of the PPChanged event. Polling the value at a different time may have invalid or unexpected data.

Status Variable (SV) – data items that contain information about the equipment. This data is guaranteed to be valid at any time. For example, the equipment may have a temperature sensor in a process module. The GEM interface may provide a ModuleTemperature status variable. The host can request the value of this SV at any time and expect the value to be accurate.

Equipment Constant (EC) – data items that contain equipment settings. Equipment Constants determine how equipment will behave. For example, a GEM interface may have an equipment constant called MaxSimultaneousTraces which specifies the maximum number of traces that can be requested simultaneously from the host. The value of equipment constants is always guaranteed to be valid and up to date.

節錄自:SECS/GEM series: Data Polling

2019年6月16日 星期日

[筆記] 節錄-CP與FT可以使用相同測試機台

此外,在 IC的製程中,晶片測試(CP)與最終測試(FT)只需要更換不同的測試配件,便可以共用相同的測試機台,例如FT用分類機、CP用針測機。
--淺談「證照管理功能」因應客戶稽核與品質認證的效益-以封測業為例


半導體製程中,針測製程只要換上不同的測試配件,便可與測試製程共用相同的測試機台(Tester)。一般測試廠為了提高測試機台的使用率,除了提供最終測試的服務外,亦接受晶片測試的訂單。
--第二十三章 半導體製造概論


其他相關節錄

「你剛剛說到,同樣的機台,用來測CP會比用來測FT來得慢,是嗎?」
「測試機台不能直接接觸 IC,必須透過一個介面。這個介面在 CP 是 Probe Card,在 FT 則是 Load Board。為什麼同樣的機台在 CP 會測得比較慢呢?因為Probe Card。目前 Probe Card 的設計(製造)還無法跟上我們要的速度,太快了它會劃出亂七八糟、髒兮兮的圖。......」
--[工餘速記] 廠內演講

2019年5月28日 星期二

[XML] 使用 InnerText 一次取得XML內的所有內容

由於程式需要,要一次性取得整個XML檔案中的所有內容,使用XmlDocument的InnerText即可做到。



2019年5月23日 星期四

[其他] 使用 System.Configuration 類別

在專案加入app.config,並Imports System.Configuration後,由於沒出現錯誤或警告,以為這樣就能使用了,但是仍然不能使用ConfigurationManager。

必須手動到「加入參考」的地方,找到並加入System.Configuration,才能正常使用。

2019年5月21日 星期二

[其他] Windows安裝Anaconda後如何設置環境變數Path

使用Windows版安裝Anaconda時,在安裝過程中如果沒有選擇Path設置的話,安裝成功後就只能使用Anaconda Prompt執行剛剛裝好的Python程式,但是勾選變數設置也可能導致安裝失敗,我在安裝時就是勾選後結果沒有成功安裝,因此只能重新安裝一次,然後在手動設置環境變數。

2017年12月8日 星期五

[C#]DateTime.Parse()與Convert.ToDateTime()的差別

以下是我自己理解的DateTime.Parse()與Convert.ToDateTime()的差別:(以下簡稱Parse()與Convert())

兩者其實幾乎是一樣的,如果只看字串轉換成日期型態,兩者的結果應該是一樣的,Convert.ToDateTime()其實只是在內部呼叫DateTime.Parse(),將傳入Convert()的參數再傳入Parse(),最後輸出是一樣的東西。

2017年10月17日 星期二

[筆記]Ubuntu 安裝 Python3 pwntools 發生錯誤

原本在Virtual Box上是安裝Ubuntu 14.04版,但安裝Python3 pwntools會出現安裝錯誤,但是按照助教所說,重新開一個新的虛擬機安裝Ubuntu 16.04後,使用相同方式安裝卻成功了。

安裝方式:
sudo apt-get update
sudo apt-get install python3-dev python3-pip git
pip3 install git+https://github.com/arthaud/python3-pwntools.git

2017年10月15日 星期日

[筆記]Triple DES EEE mode with 2 keys

這學期修了一門課,名為「電腦與網路安全概論」。第二次作業希望我們解釋「為什麼Triple DES(三重資料加密演算法)要使用K1-K2-K1的方式來進行加密」,原文和附圖如下:

Why do we choose Triple-DES with two keys like that (the first and third enc with K1 & the second with K2, and K1 and K2 are chosen independently)


2017年8月3日 星期四

[C#]使用DateTime.TryParse()取代Convert.DateTime()

  這篇文章是今天實習時,正職的同事希望我能夠了解在C#中使用DateTime.Parse()和Convert.DateTime()的差別,找到的其中一篇英文文章是在敘說使用DateTime.TryParse()替代包括Convert.DateTime()和DateTime.Parse()在內的其他方式。

  是不是一定要用某種方法我想是因情況而定啦... 不過文章有解釋關於DateTime.Parse()和Convert.DateTime()之間的關係,在閱讀時就順便將他翻譯成中文,以下是隨意翻譯的內容:

2017年8月2日 星期三

[SSRS]匯出Excel時,會有隱藏欄和隱藏列的問題

  以下解法前段時間在公司實習時,碰到關於SSRS匯出EXCEL時會產生隱藏欄或行的問題,參考網路得到的解決辦法,不一定能夠解決所有人的問題,但是可以試試看。

2017年7月15日 星期六

[手札]偶爾看到不錯的部落格,總是會讓人浮起自己也來寫的感覺

再次開始廢文-前言

  想寫部落格不是一次兩次的事情,用過各種部落格、或是自己架站,每次版面都布置得差不多了,但是經常不知道要寫什麼內容就中斷,自己也覺得很可惜。會有想寫文章的感覺,都是偶爾查資料時看到寫得不錯的文章,在看得期間就回萌生「能把自己經歷的事情記錄下來真的不錯」的感覺。

2017年6月29日 星期四

[羽球]國際羽球賽程英文解釋

這是兩年半來,看Youtube比賽的英文標題、BWF官方賽程表和一些中、英文資料的理解和整理。