很多時候,我們會需要與 RS232 通訊,這時我們就需要 com 通訊元件。
通訊元件有很多第三方元件及微軟的 mscomm32,
本例是在Wwindows8.1下取得 mscomm32 與手動安裝元件。
下載 mscomm32.ocx
http://originaldll.com/file/mscomm32.ocx/7698.html
上圖右下角按鈕,兩個都可以,按下後輸入隨機碼下載。
解壓縮可得到一個元件,只有一個。
mscomm32.ocx
接著是安裝 mscomm32 元件到 Windows8.1
1.複製 mscomm32.ocx
開檔案總管,複製 mscomm32.ocx 到 C:\Windows\SysWOW64
2.安裝 mscomm32.ocx
在視窗中,開啟目錄 C:\Windows\SysWOW64
找到 cmd.exe ,右鍵,以管理員身分執行,
一定要用管理員身分,否則權限不夠,會失敗。
執行下列命令
cd C:\Windows\SysWOW64
先移除註冊
regsvr32 /u MSCOMM32.OCX
再註冊
regsvr32 MSCOMM32.OCX
完成,試一下,OK
Dropbox 下載 mscomm32.ocx
2016-03-07
2016-02-13
BCB6 EditorLineEnds.ttr issue
今天看到一個不錯的小程式範例 ColorFormat,可以查顏色代碼,很方便,哪裡知道,windows8.1很不給力,BCB一直出問題,最後,終於解決了,雖不滿意,尚可接受。
上面附上已完成的 ColorFormat,調好顏色,按下按鈕,就會把顏色代碼複製到剪貼簿,然後按 Ctrl + v就可以叫出來貼上,也可以右邊 Numeric 數值輸入,0-255,真的很方便。
My Question
好了,推完這支程式之後,來說說我遭遇到甚麼困難,搞了一整天。
我先安裝 BCB 在 Win8.1,完成之後,開個專案,關掉 BCB,要再開啟時,悲劇了,一直錯誤,無法開啟,跳出如下對話。
重新開機又可執行一次 BCB,經過 Google 查詢,發現很多人都有這問題,指向微軟更新包的錯誤,而且到現在還沒改善。
BCB執行時會建立一個檔 EditorLineEnds.ttr,在 windows temp 目錄中,奇怪的是,它會被 System 開啟,然後就不放手,以至於 BCB 要再次執行時,無法再建立該檔,就一直產生錯誤,刪也刪不掉,因為 INUSE。
這很可惡,總不能執行一次就重開機一次吧,後來繼續找解決方案,發現大家的解法就是改檔名,但仍然刪不掉,不過卻可以執行 BCB 而不用重開機了。
國外有人是寫成批次檔來改檔名,也有寫成執行檔供人下載,但我試過,改檔名部分有一些日期會產生非法字元" / "會失敗,所以繼續研究一下,在批次檔中如何改檔名可以不重複,還是要取日期+時間,到分鐘就好,改寫如下,它主要就是把那個作怪的檔
C:\Users\myCon\AppData\Local\Temp\EditorLineEnds.ttr
改檔名
EditorLineEnds2016-2-13.4.33.ttr
然後做一個目錄,全部集中丟裏頭,這樣 BCB 就可以重複執行了,就是執行前,先執行這個批次檔,處理掉這個作怪的檔,然後再執行 BCB。
批次檔 bcb.bat 請自行存成 bcb.bat,並用最高權限執行
說明:
SET /A yy=%date:~0,4%
SET /A mm=%date:~5,2%
SET /A dd=%date:~8,2%
SET dt=%yy%-%mm%-%dd%
@echo %date% = %dt%
這是取系統日期,然後改成合法字元組合
/A 表示數值,這樣可以解決空白問題
date = 2016/02/13 週六
經過重新組合後,會變成
2016-2-13
接著是時間
SET /A Hou=%time:~0,2%
SET /A Min=%time:~3,2%
SET /A Sec=%time:~6,2%
SET /A Ms=%time:~9,2%*10
SET tt=%Hou%.%Min%
@echo 時間 %time% = %tt%
time = 5:40:29.85
經過重新組合後,會變成
5.40
再把這兩個合起來
SET dttt=%dt%.%tt%
2016-2-13.5.40
然後改檔名
EditorLineEnds.ttr
EditorLineEnds2016-2-13.5.40.ttr
接著檢查存放目錄是否存在?不存在就做一個
然後搬移進去,這樣就完成了。
不過,還是刪不掉,不曉得要怎麼把 inuse 解除,如果你知道的話,請留言告訴我怎麼做,謝謝!
可愛的小程式 ColorFormat (click to see source code)
上面附上已完成的 ColorFormat,調好顏色,按下按鈕,就會把顏色代碼複製到剪貼簿,然後按 Ctrl + v就可以叫出來貼上,也可以右邊 Numeric 數值輸入,0-255,真的很方便。
My Question
好了,推完這支程式之後,來說說我遭遇到甚麼困難,搞了一整天。
我先安裝 BCB 在 Win8.1,完成之後,開個專案,關掉 BCB,要再開啟時,悲劇了,一直錯誤,無法開啟,跳出如下對話。
重新開機又可執行一次 BCB,經過 Google 查詢,發現很多人都有這問題,指向微軟更新包的錯誤,而且到現在還沒改善。
BCB執行時會建立一個檔 EditorLineEnds.ttr,在 windows temp 目錄中,奇怪的是,它會被 System 開啟,然後就不放手,以至於 BCB 要再次執行時,無法再建立該檔,就一直產生錯誤,刪也刪不掉,因為 INUSE。
這很可惡,總不能執行一次就重開機一次吧,後來繼續找解決方案,發現大家的解法就是改檔名,但仍然刪不掉,不過卻可以執行 BCB 而不用重開機了。
國外有人是寫成批次檔來改檔名,也有寫成執行檔供人下載,但我試過,改檔名部分有一些日期會產生非法字元" / "會失敗,所以繼續研究一下,在批次檔中如何改檔名可以不重複,還是要取日期+時間,到分鐘就好,改寫如下,它主要就是把那個作怪的檔
C:\Users\myCon\AppData\Local\Temp\EditorLineEnds.ttr
改檔名
EditorLineEnds2016-2-13.4.33.ttr
然後做一個目錄,全部集中丟裏頭,這樣 BCB 就可以重複執行了,就是執行前,先執行這個批次檔,處理掉這個作怪的檔,然後再執行 BCB。
批次檔 bcb.bat 請自行存成 bcb.bat,並用最高權限執行
SET /A yy=%date:~0,4%
SET /A mm=%date:~5,2%
SET /A dd=%date:~8,2%
SET dt=%yy%-%mm%-%dd%
@echo %date% = %dt%
SET /A Hou=%time:~0,2%
SET /A Min=%time:~3,2%
SET /A Sec=%time:~6,2%
SET /A Ms=%time:~9,2%*10
SET tt=%Hou%.%Min%
@echo 時間 %time% = %tt%
SET dttt=%dt%.%tt%
@echo 日期+時間 %dttt%
C:
cd %Temp%
if exist "EditorLineEnds.ttr" (
ren EditorLineEnds.ttr EditorLineEnds%dttt%.ttr
) else (
goto runbcb
)
if exist "dzEditorLineEndsFix" (
MOVE "EditorLineEnds%dttt%.ttr" "dzEditorLineEndsFix"
) else (
md "dzEditorLineEndsFix"
MOVE "EditorLineEnds%dttt%.ttr" "dzEditorLineEndsFix"
)
:runbcb
mshta "javascript:alert('SUCCESS MOVE EditorLineEnds.ttr that you can run BCB fine.');close()"
這是在 Win8.1環境下測試,其他板沒測過。
說明:
SET /A yy=%date:~0,4%
SET /A mm=%date:~5,2%
SET /A dd=%date:~8,2%
SET dt=%yy%-%mm%-%dd%
@echo %date% = %dt%
這是取系統日期,然後改成合法字元組合
/A 表示數值,這樣可以解決空白問題
date = 2016/02/13 週六
經過重新組合後,會變成
2016-2-13
接著是時間
SET /A Hou=%time:~0,2%
SET /A Min=%time:~3,2%
SET /A Sec=%time:~6,2%
SET /A Ms=%time:~9,2%*10
SET tt=%Hou%.%Min%
@echo 時間 %time% = %tt%
time = 5:40:29.85
經過重新組合後,會變成
5.40
再把這兩個合起來
SET dttt=%dt%.%tt%
2016-2-13.5.40
然後改檔名
EditorLineEnds.ttr
EditorLineEnds2016-2-13.5.40.ttr
接著檢查存放目錄是否存在?不存在就做一個
然後搬移進去,這樣就完成了。
不過,還是刪不掉,不曉得要怎麼把 inuse 解除,如果你知道的話,請留言告訴我怎麼做,謝謝!
訂閱:
文章 (Atom)











