2023年4月10日 星期一

從Excel呼叫命令提示字元或批次檔的方法

1.在EXCEL中新增空白活頁簿

2.按 Alt + F11 開啟 Visual Basic Editor (VBE).

3.按 F5 執行巨集--巨集名稱輸入Call_CMD--建立

4.在 Module 的編輯頁面的 Sub Call_CMD() 與 End Sub 中間輸入 Call Shell("cmd.exe /S /K")

5.再按一次 F5 執行巨集

6.此時就會跳出命令提示字元

7.如果是要執行批次檔,則使用底下的巨集

Sub RunBatch()

    Call Shell(("cmd.exe /S /K") & "C:\目錄\批次檔.bat", vbNormalFocus)

End Sub



2021年9月23日 星期四

調整日期時間使其不自動同步的方法

 1.開始--按滑鼠右鍵--Windows Powershell(系統管理員)


2.將底下的指令複製並貼上

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters -Name "Type" -Value "NoSync"


3.將底下的指令複製並貼上

New-NetFirewallRule -DisplayName "Block Sync Time Port" `

                    -Direction Inbound `

                    -LocalPort 123 `

                    -Protocol UDP `

                    -Action Block


4.變更日期時間(格式為 mm/dd/yyyy hh:mm 例如 09/23/2021 12:00)

set-date -date "09/23/2021 12:00"


ps.如欲恢復原先設定則先變更回原來的日期時間,並複製並貼上底下兩行指令

Remove-NetFirewallRule -DisplayName "Block Sync Time Port"

Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters" -Name "Type"

2021年7月12日 星期一

如何在 Window 11 21H2(OS Build 22000.65) 讓多個使用者使用遠端桌面連線

 Windows 系統的遠端桌面係由 "C:\Windows\System32\termsvr.dll" 這個檔案來控制,所以只要修改檔案的內容,就可以解除封印,讓多人同時使用遠端桌面的方式來連入 Windows 系統,同時操作一部電腦。

截至目前為止(2021/07/12),雖然 Windows 11 尚未正式發表,不過網路上流傳的 Windows 11 測試版本仍然可以透過修改 termsvr.dll 的方式來讓多人同時使用遠端桌面。底下簡短的說明主要的步驟:

1.變更 termsvr.dll 檔案的安全性,讓擁有者變更為本機的 administrators 群組,並授予 administrators 群組修改的權限

2.使用16進位HEX編輯器(個人習慣使用 HxD Hex Editor,https://www.mh-nexus.de ) 尋找十六進位數值『39 81 3C 06 00 00 0F 84 4F 68 01 00』,並將其取代為『B8 00 01 00 00 89 81 38 06 00 00 90』,然後儲存檔案

3.變更 termsvr.dll 檔案的安全性,讓擁有者改回原本的 TrustedInstaller (NT Service\TrustedInstaller)

4.新增 Windows 的使用者帳號,並設定密碼(如果有多人需要使用遠端桌面,則要建立多組帳號密碼)

5.執行 Windows 的『設定』> 『遠端桌面』開啟遠端桌面功能,並選取可以遠端存取此電腦的人員

6.從其他台電腦執行 mstsc /v:提供遠端桌面電腦的 IP  (例如 mstsc /v:192.168.2.123),點選連線後,輸入步驟 4 的帳號密碼,就可以多人同時連入使用遠端桌面




2020年10月30日 星期五

遲來的證書----Comptia CSSS

看證書上寫著 2003/01/06 就取得資格,但是到 2020/10/30 才收到 email 通知。時隔這麼久才知道自己有這張證照,值得記錄一下 😄




2019年11月25日 星期一

如何避免 SKYPE 接收相同名稱之案時,舊檔案會被覆寫


如何避免 SKYPE 接收相同名稱之案時,舊檔案會被覆寫

早期 SKYPE 接收相同名稱之檔案時,會自動在檔名後面增加 (1)(2)、、、,但是不知道從哪一個版本之後,這個功能就被取消了,相同名稱之檔案會被自動覆寫,這會造成一些困擾。例如:A傳送了一個叫做「XYZ.TXT」的檔案給BB立即把這個檔案傳送給C。過一會兒後A修改了「XYZ.TXT」的內容,並從SKYPE中移除先前的檔案再重新傳送;此時B並不會發現「XYZ.TXT」檔案的內容已經變更了,所以也不會再重新傳送給C。如此一來,就會發生有二個不同版本的「XYZ.TXT」,AB的檔案內容是修改過的,而C的檔案內容卻是舊的。

要如何避免上述的情形發生?在SKYPE還沒有修正此一情形之前,只能設法讓SKYPE在接收的檔案時,不能是相同名稱。底下將說明該如何設定,才能讓SKYPE無法接收相同檔名的檔案。

這個方法是利用修改資料夾的權限來達成。首先請先設定一個資料夾(在這個範例中,我們設定成D:\SKDN),用來專門接收SKYPE傳送的檔案。然後變更SKYPE的設定,將收到的檔案儲存到該資料夾。



接著我們在D:\SKDN資料夾按滑鼠右鍵內容安全性進階,然後點選『停用繼承』,並選擇『將繼承的權限轉換成此物件中的明確權限』,再點選確定。


接著要變更三個主體的權限,分別是AdministratorsSYSTEMAuthenticated Users。先點選Administrators在點選編輯,然後在基本權限中點選『顯示進階權限』,接著依照底下圖片的內容勾選項目,再點選確定:


SYSTEM主體的權限設定如下:


Authenticated Users主體的權限設定如下:


全部的權限設定完成之後,套用並確定結束資料夾權限的變更。之後這個資料夾只允許新增檔案,不允許變更或刪除檔案。經過以上的設定之後,當A第二次傳送相同檔名的檔案給B時,B會無法接收,只能請A變更檔案名稱後再傳送,如此一來,就可以避免相同檔名會有不同內容的情形發生。

2019年1月11日 星期五

Excel奇進偶捨(四捨六入五成雙)進位的計算方法

最近因為工作的關係,必須在 EXCEL 的表格中使用奇進偶捨的進位方式。從小到大我只知道四捨五入,現在才知道原來四捨六入五成雙在統計上是比四捨五入更加精確。

上網查詢在 EXCEL 中該如何計算此進位法?看到一個網頁有提供一個 VBA 非常簡單好用,在此跟大家分享這個方法。

首先在 EXCEL 工作表按 Alt-F11 二個鍵,此時會出現 VBA 活頁簿,接著在 VBA 活頁簿的上方選單點選「插入」--「模組」,並將底下的文字貼到模組中,然後就可以關閉 VBA 活頁簿

Function BankerRound(rng As Double, sig As Integer) As Double
    BankerRound = Round(rng, sig)
End Function

使用時在儲存格輸入『=BankerRound(值,小數位數)』就可以得到四捨六入五成雙的進位結果了

修正:使用此VBA時,如果BankerRound的括弧裡面是公式,很可能會計算錯誤,所以建議當值是公式時不要使用。改用底下的計算方法:

=IF(AND(ISEVEN(值*10^小數位數),MOD(值*10^小數位數,1)<=0.5),ROUNDDOWN(值,小數位數),ROUND(值,小數位數))

參考資料:
https://stackoverflow.com/questions/44310679/bankers-rounding-function-in-excel