2021年9月12日 星期日

Netflix 截圖黑畫面 如何截圖

Netflix 截圖黑畫面 如何截圖

從結論上來講並不是因為智慧財產權的問題防止盜錄,單純只是硬體加入導致的問題。到設定裡面把硬體加速關閉就好了。






羅技G604 GHUB軟體 巨集詳細操作邏輯介紹

羅技G604 GHUB軟體 巨集詳細操作邏輯介紹

tags: 部落格文章

提到GHUB不得不說真的是罵聲一片,到處都可以看到幹很少看到讚的。確實我第一次使用也是如此,但是相較於其他軟體我覺得已經算好了。

邏輯最大的問題在於非常反直覺,功能是齊全的這才是萬幸,其他家的缺功能真的很哭。反直覺的部分是有些根本沒說明怎麼用,根本就壓根不會想到,原來是這樣操作的阿。

最近因為要提高工作效盡可能的自動化操作買了G604,這顆的按鍵配置不得不說覺得是辦公必備的滑鼠。

巨集

在進入前先來談一下巨集的差異,先說能真正實現編程的硬件巨集滑鼠只有X7,真正需要編程等級的巨集沒別的選擇了。

軟體巨集對我來說並不能算得上巨集滑鼠,單純只是電腦上的軟件跑出來的,遇到沒有管理員權限的電腦,基本就作廢了。

羅技只不過能實現硬件上的簡單巨集而已,需要複雜功能的還是會有點勉強。

硬件巨集與軟件巨集差異

他們之間最簡單的差異在於,把設定好的滑鼠直接拔去插別的電腦,是否還能保有原本的巨集功能

所謂的軟件巨集就是依靠驅動程式附帶的程序來實現的,本身是靠電腦跑出來的而不是滑鼠的訊號送出去的。


如何分辨羅技目前是跑在軟件巨集還是硬件巨集可以從這個頁面設定

進來之後兩張圖分別是

GHUB接管中可實現高級宏

GHUB沒有接管只能實現簡單宏

休眠喚醒的延遲
休眠狀態喚醒到被GHUB接管是有延遲的。如果你兩邊的設定不同步,可能會有零點幾秒的時間設置會不一樣。舉個例子來說內建記憶體的DPI設置1000,軟體設置是2000,那你喚醒的時候會有1秒左右滑鼠很慢然後突然加速。(解決辦法同步內建記憶體設定就好。)

高級巨集與簡單巨集差異

羅技我覺得很賊的一點是他是混合的,滑鼠本身硬體只支持簡單宏,但軟體支持高級宏,這會直接導致你設定的高級宏在移動到別台電腦上會失效,比如說滑鼠的左右鍵就是高級宏。

這是一個買巨集滑鼠結果,巨集不包含左右鍵的故事。想實現雙擊都做不成...

高級宏還包含羅技巨集裡的,在按住時重複、切換、序列,這些通通都無法在硬體巨集上實現,也就是說你插到別台電腦上,那台沒裝驅動就按不出來。

文字和表情也是高級宏

對於想自動輸入帳號或密碼的人來說,取代方法很簡單跟剛剛的雙擊一樣,用簡單宏一個一個按實現就好。

以上的高級宏在沒有GHUB的電腦上都會失效。高級宏還有很多就不一一列舉了,無重複裡面,有些按鍵也是高級宏的範疇,要是沒反應就只能認命了。

巨集設定

按下建立巨集之後就4個給你選,個別是什麼意思可以看上面的說明。接下來要說的是操作邏輯,這個是最反人類的地方了,第一次用應該都會很幹。

在新增按鍵紀錄裡面

  • 刪除中間某個按鍵,可以點一下選取之後再按下鍵盤的del即可刪除
  • 從中間插入新的按鍵,不好意思認命從頭來一次(很哭)
  • 在最尾端加入延遲,從那個+裡面按一下可以新增
  • 統一按鍵延遲可以從右上角打勾標準延遲,標準延遲最低25ms(想低於25秒只能自己手動一個一個慢慢點設置)

操作邏輯很爛,被罵成這樣真的是罪有應得。

如何上傳設定檔案到滑鼠

再來說一個最不直覺的直覺的,這個也是導致被罵成這樣的主因。

滑鼠本身是具有記憶體可以儲存設定的,但是上傳的操作邏輯很奇怪,這邊一步一步說怎麼完整的上傳。

先點擊右上角的設定

然後點一下關閉

然後我的滑鼠可以儲存5個設定檔案,選一個點一下,會出現讓你選擇設定檔案

自己選一個點選之後就上傳了
左邊的原點是目前滑鼠是讀取哪個設定檔案

設定完畢之後記得在按一下開啟,不然你使用內建記憶體設定中,GHUB介面會鎖起來什麼都不能操作。

這個跟DPI一樣可以設定循環,藉此利用按鈕來切換不同的設定檔

有需要切換再自己指定按鍵。

好啦這個就是最大的雷了,還有什麼問題可以在底下發問。知道這個邏輯之後,雖然使用上還是很難用,但至少不會那個滿頭問號了。

2021年9月9日 星期四

HTML5 CSS Google的卷軸樣式

CSS Google的卷軸與按鈕樣式

tags: 部落格文章

紀錄一下樣式,我是從google的網頁裡面複製出來的,現在比較主流好看的蠻多長這個樣子的,用這個當基底去調整就好。

參考的是肺炎的感染人數的頁面
https://news.google.com/covid19/map?hl=zh-TW&mid=%2Fm%2F03_3d&gl=TW&ceid=TW%3Azh-Hant

卷軸

/* Scrollbar のデザイン */
 ::-webkit-scrollbar {
    background: transparent;
    height: 16px
}

 ::-webkit-scrollbar-thumb {
    background: rgba(128, 134, 139, 0.2);
    background-clip: padding-box;
    border: 4px solid transparent;
    border-radius: 10px;
    box-sizing: border-box
}

 ::-webkit-scrollbar:hover {
    background: rgba(128, 134, 139, 0.102);
    border-radius: 16px;
    height: 16px
}

 ::-webkit-scrollbar-track:hover {
    background: transparent
}

 ::-webkit-scrollbar-thumb:hover {
    background: rgba(128, 134, 139, 0.4);
    background-clip: padding-box;
    border: 4px solid transparent;
    border-radius: 16px;
    box-sizing: border-box;
    cursor: pointer
}

 ::-webkit-scrollbar-corner {
    background: transparent
}

按鈕

自己修了幾版的樣式,這邊貼我最後選的簡化版本,剩下測試的可以參考這,
https://github.com/hunandy14/CSS_BottomStyle

/* ボタンのデザイン */
input[type="button"] {
    color: #3c4043;
    border: solid 1px #dadce0;
    -webkit-box-shadow: none;
    box-shadow: none;
    /*     height: 1px; */
    /*     min-height: 2rem; */
    min-width: 2rem;
    /*     padding-left: 9px; */
    /*     padding-right: 9px; */
    -webkit-border-radius: 0.1rem;
    border-radius: 0.1rem;
    font-family: 'Google Sans', sans-serif;
    color: inherit;
    /*     font-size: 0.875rem; */
    background: transparent;
    transition: box-shadow 0.25s ease-in-out;
}

input[type="button"]:active {
    -webkit-box-shadow: 0 1px 4px rgba(189, 193, 198, 1);
    box-shadow: 0 1px 4px rgba(189, 193, 198, 1);
    border: solid 1px rgba(120, 120, 120, 0.6);
    background: rgba(60, 64, 67, 0.039);
}

input[type="button"]:hover {
    background: rgba(60, 64, 67, 0.039);
    -webkit-box-shadow: none;
    box-shadow: none;
}

input[type="button"]:disabled,
input[type="button"][disabled] {
    -webkit-box-shadow: none;
    box-shadow: none;
    background: transparent;
    color: #cccccc;
}

外框線

漂亮的外圍框線

.pym81b { 
  padding: 16px; 
  border: 1px solid #dadce0; 
  -webkit-border-radius: 8px; 
  border-radius: 8px; 
  margin-bottom: 32px; 
  background: #ffffff; 
}

2021年8月29日 星期日

VSCode gcc 執行時中文亂碼解決

vscode gcc 執行 C++ 中文亂碼解決

tags: 部落格文章

亂碼原因

其實就只是出在編碼的轉亂過程中沒有正確的被設置而已,這邊還會引申出另一個問題「許功蓋問題」都是相同原因導致的。

導致亂碼的原因

其實最主要的是中間隔了一層gcc,很多人沒注意到gcc是可以決定輸入的編碼和輸出編碼的。

這邊先順一下總共有4層,每一層編碼都要一致才能正確地顯示。

  1. 檔案編碼 (預設big5)
  2. gcc輸入設置 (預設utf8)
  3. gcc輸出設置 (預設utf8)
  4. windows編碼設置 (繁體系統-預設big5)

檔案編碼

檔案編碼是最好解的,直接從VS的右下角可以看到當前是什麼


點擊一下可以看到兩個選項


  1. 當你打開一份big5的檔案,但是VS卻錯誤判斷成utf8開啟,就會發生亂碼,這時候只要[重新以big5開啟]即可
  2. 當你打開一份big5的檔案,想把檔案編碼轉換成utf8的時候,這時候[以utf8編碼儲存]即可

用哪個編碼都可以沒有好壞,考慮到繁體Windwos預設就是big5,國內環境直接使用big5會帶來很大的便利性。
但是如果你的客戶包含海外用戶,那使用big5就會帶來災難了。所以網頁代碼一律用utf8才是最省事的。

ggc設置

其實這才是卡到大家bug亂碼的根源,關鍵在於它的預設值是utf8導致災難。

這個設置還不只是有一個輸出輸入各一個,所謂的許功蓋問題就從這裡的,檔案是big5但是gcc預設用utf8讀,這編碼不匹配就出問題了。

不知道為什麼早期的文章沒人意識到其實有選項可以調,所以結論就變成必須得用uft8了。

這邊提供一下選項,有兩個一個是讀取,一個執行。

# 設置原始程式檔案之編碼為 big5 (忽略不打預設是utf8)
-finput-charset=big5
# 設定執行時之編碼方式為 big5 (忽略不打預設是utf8)
-fexec-charset=big5

這邊選項1依據你的文檔是什麼格式做調整就好,如果是utf8格式的文檔直接刪除即可,預設就用utf8讀取。

下面兩個範例

# 原始檔編碼為utf8 (預設就是utf8直接省略)
gcc a.cpp -fexec-charset=big5

# 原始檔編碼為big5
gcc a.cpp -finput-charset=big5 -fexec-charset=big5

「設定執行之編碼方式」只能是 big5 這個別想了沒得改,這裡的編碼並不是網路上寫的終端機的編碼,是系統內部的。

windows編碼設置

這個其實網路上很多文章有寫要調整powershell或cmd的編碼,其實跟那邊無關。

真正的設定值在這裡



但是我不建議改動這裡,到時候會變成你打開別的程式是亂碼。只要這裡不改上面的指令2就一定得打

為什麼玩日文遊戲要特別用第三方程式轉換問題也是出在這裡,光是改系統語言並不會改變編碼。

【解決方法2】現在win10也解決這個問題了,編碼那裏點進去有個實驗功能,「使用UTF8提供全球語言支持」把他打勾之後,直接什麼什麼煩惱都沒有,就能正確顯示中文了。只是會有什麼代價還不清楚,我是沒打算這樣改就是了。


最後回到vscode

好啦關鍵那兩個指令拉,把他加入你的joson檔案裡gcc指令後面就可以解決了。

參考

http://kailotus.blogspot.com/2018/10/c06c-vscode-cvscode.html

2021年8月15日 星期日

新注音快速輸入標點符號

新注音快速輸入標點符號

其實早期舊版Win10的新注音有提供用多選項可以讓我們選,其中有一個比較好用的不知道為什麼新版的拿掉了,找半天找不到最後是還原舊版才找到的。趕緊記錄一下,這功能覺得蠻實用的之後要找可能會找不到。

切舊版

新版似乎不是拿掉這個功能,而是沒把這個功能的選項給做出來直接隱藏掉了,如果要開啟只能先切到舊版的開完之後再切回來。


進來之後滾到最下面



免確認快速輸入標點符號

一般我們打標點符號有幾種辦法,最常見的應該是按 波浪+句號 這樣他就會自動出來的,不過有個缺點是按完之後會進入選字模式還要自己再按一次enter才能輸入。

還有一個辦法是按  CTRL+句號 ,哪個好用自己按習慣就好,我個人是覺得按CTRL比較快速,但是就是不能像波浪見一樣分開按小小的缺點。


有個選項可以直接輸出不用再多按一次,配合這個做法其實如果是打字打到斷句的時候,直接輸出一個句號可以省下按下一次enter的次數。

那個選項在這個地方


怎麼來的直接在右下角的輸入法圖標按右鍵內容就有。新版的直接整合成跟Win10的UI一樣的介面,這個介面是按不出這個設定選項的。




取消 Ctrl+標點符號 的輸入方式

這個是我一直很想搞掉的,因為輸入法劫持了 CTRL+[ 的快捷鍵,導致在很多編輯器上要按這個快捷鍵都按不出來,只能切別的輸入法才能按。

其實也可以進那個階選項裡面關掉


只是可惜的是,不給活路呀!關是能關掉了確實按 CTRL+[ 也沒有輸出標點符號了,但是還是一樣沒辦法驅動快捷鍵,看來這個關閉只有做半套就是單純沒有輸出而已,但是還是有偵測輸入導致快捷被劫持了,只能放棄了。

2021年8月8日 星期日

Powershell 利用正則表達式 去除雙引號

Powershell 利用正則表達式 去除雙引號

tags: 部落格文章

這幾天遇到一個問題是CSS檔案裏面存在著大量的錯誤與法,顏色的代碼前後被上雙引號了,網頁差不多是15年前的產物了吧,那時候IE還沒這麼嚴苛或是標準還沒訂這麼細是能過得。

Powershell中使用正則表達式

有幾種方式最常見的是 -match 這只能回傳 bool 數值並不是這次要的這次是用了 -replace

還有一個問題是,Powershell 系統內建是 5.1 版,這個版本可不能處理非系統 encoding 和無 BOM的UTF8 這部分怎麼處理可以看之前的文章。簡單說就是升級到 7.1 就完事了。

[PowerShell 如何輸出 不帶BOM的 UTF-8 檔案](https://charlottehong.blogspot.com/2021/04/powershell-bom-utf-8.html

-replace

替代這個真的很好用。廢話不多說直接上代碼演示

$Text = "Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。"
$Text -replace "Microsoft", "CHG"

直接就把原本內文中的 Microsoft 替換成 CHG 了。就大概這麼個用法。

其中有一個比較特別的用法是 $1 這個會回傳你的正則條件搜到的東西,就比如說這次的目標是要找到顏色代碼,但是我事先並不知道代碼是多少,我只能寫條件找到代碼,然後代碼要留著我要替除的是前後的引號。比如以下的示範

$ct = '#head_top{color: "#FFFFFF"};'
$dstStr = $ct -replace '"#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"', '#$1';
$dstStr

如此一來就可以把雙引號給去除了,剩下的工作就是把檔案讀取進來還有寫入。檔案讀取的時候如果需要過濾清單可以參考底下另一個用法。




-match

另外補充一下這個語法,最常見的是用來判斷文本裡面是否有目標字串,結果只會返回 True 跟 False 比如底下這樣的寫法。

# 文本
$Text = "Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。"
# 搜尋是否有 Microsoft
$Text -match "Microsoft"

後面的地方是可以寫正則表達式的,有需要再自己嘗試一下。
然後正則搜到的什麼東西可以用 $matches[0] 來檢視

'#FFFFFF' -match '#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})'
$matches[0]

可以獲取顏色的代碼


獲取括號內的內容可以用這樣 (注意裡面的idx是用1)

'#head_top{color: (Abc123$#@%)};' -match '\((.*?)\)'
$matches[1]





進階應用

除了可以用來搜之外,其實還有一個特別的用法,可以用來剔除陣列中的東西

比如說我要排除特定檔名 txt 剩下的都保留,下面是檔案清單。先自己照著創各種不同類型的副檔名,直接創txt然後改副檔名就好。

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          2021/8/8  下午 01:33              0 main.cpp
-a----          2021/8/8  下午 01:33              0 note.txt
-a----          2021/8/8  下午 01:33              0 README.md

實際上的代碼

$FileItem = Get-ChildItem
$FileItem = $FileItem -notmatch ".txt$"
$FileItem

這樣就自動剔除 txt 結尾的副檔名了。
可以注意到我是用反過的帶有 no 的語法,如果反過來想指定白名單的話是這樣

$FileItem = Get-ChildItem
$FileItem = $FileItem -match ".cpp$|.md$"
$FileItem

可能有人會想到,不對呀 Get-ChildItem 本身就有過濾的 -filter 指令幹嘛還自己寫。雖然結果是一樣的,但其實兩者效能上有一點點區別。

還有最大的一點是能過濾資料夾!本身自帶的過濾器只能過濾附檔名是不能過濾資料夾的,比如說我讀取一個多層資料夾,裡面有一個 “.git” 文件我不想讀,這時候 -nomatch 就很好用了。這東西是用正則去判斷路徑的字串,自由度就非常高了。