Date   
Re: 推薦附加元件

彥霖沈
 

. .要測市郵件也不要在這裡寫吧. .怎麼覺得哪裡怪怪的

從我的 iPhone 傳送

有聲書-林群冕 <sunfish6334@...> 於 2019年10月16日 下午1:55 寫道:

各位抱歉,這是一封測試信件,請勿回覆!謝謝喔!

-----Original Message-----
From: nvda-tw@groups.io [mailto:nvda-tw@groups.io] On Behalf Of 高生旺
Sent: Tuesday, October 15, 2019 10:56 AM
To: nvda-tw@groups.io
Subject: [nvda-tw] 推薦附加元件

這個NVDA附加元件可以幫您把任何外文即時翻譯成中文報讀給您聽。
從此瀏覽外國網站或閱讀外文文件再也無障礙。
啟用開關為 NVDA+SHIFT+CONTROL+T, 可以自己修改。
下在網址:http://www.mtyp.fr/nvda/translate-2019.09.3.nvda-addon





Re: 推薦附加元件

林群冕
 

各位抱歉,這是一封測試信件,請勿回覆!謝謝喔!

-----Original Message-----
From: nvda-tw@groups.io [mailto:nvda-tw@groups.io] On Behalf Of 高生旺
Sent: Tuesday, October 15, 2019 10:56 AM
To: nvda-tw@groups.io
Subject: [nvda-tw] 推薦附加元件

這個NVDA附加元件可以幫您把任何外文即時翻譯成中文報讀給您聽。
從此瀏覽外國網站或閱讀外文文件再也無障礙。
啟用開關為 NVDA+SHIFT+CONTROL+T, 可以自己修改。
下在網址:http://www.mtyp.fr/nvda/translate-2019.09.3.nvda-addon

Re: GBReader 簡體中文報讀機

嘯傲俠羽
 

我比較覽得用太縮時間閱讀電腦叔,能解決我的問題的就好,最好可以跟學生一起學,一分面培養他們,一方面解決我了問題,此外,我得看那個領域比較多視障者在談,我比較能看得懂的,逗會接觸!謝謝!我想我該等電腦換到
win10 了!

在 2019/10/15,高生旺 <coscell@...> 撰寫:

我覺得你學 AutoIt3 比較會有成就感。

On Tue, 15 Oct 2019, 嘯傲俠羽 wrote:

Date: Tue, 15 Oct 2019 07:26:58 +0800
From: 嘯傲俠羽 <crazy@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

謝謝你!我自己在實際操作看看!遇到問題再請指教!

在 2019/10/15,Sponge Jhan via Groups.Io
<school510587=yahoo.com.tw@groups.io> 撰寫:
Hi 嘯傲俠羽 & all,

import 跟 from 有何不同?
import speech 表示把整個 speech 模組載入以後用 speech.XXX 來存取該模組下的函數、變數等
from speech import speakText 的話,就只能使用 speakText 這個名稱來操作 speech 模組的
speakText

二者還有一個關鍵性的差異,會影響這次高老師要做的 patch
from 的寫法,執行完後自己拿到一個 speakText 變數,代表 speech 模組的 speakText 函數
此時,對 speakText 變數的修改,只改變了它的內容,對於 speech 模組內部毫無影響
import speech 執行完後,自己得到一個變數 speech 代表整個 speech 模組
此時對 speech.speakText 認何修改,等同進入該模組去竄改它的內容了
而且因為被改的是模組本身,這個修改將會影響其他使用 speech.speakText 的執行

然而,這種修補方式,萬一遇到有別的 code 可能來自 NVDA 或者附加元件都好
在高老師的附加元件抽換 speech.speakText 之前,做了 from speech import speakText
該處 code 所使用的 speakText 就是原版的 speakText 而非經過修改的版本
遇到的話,這個可能導致附加元件失效,而且可能難以用附加元件的方式來解決

以上是我目前的理解,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月15日 星期二 上午4:40:56 [GMT+8], 嘯傲俠羽<crazy@...> 寫道:

可剖分享一下你語法:
import 跟 from 有何不同?
如果後面寫的指令搜一樣,
前面用 import 跟 from 引進檔案會有何不同或者效果差異嗎?
謝謝!

不好意思,我都一直還停留在初學街算!

在 2019/10/13,Sponge Jhan via Groups.Io
<school510587=yahoo.com.tw@groups.io>
撰寫:
  Hi 高老師:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:

import speech

注意不是 from speech import speakText
然後自己寫一個 speakText 如下:

old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)

為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText
已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText =
old_speakText 還原

請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan


      在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:

  我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!

On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw


















推薦附加元件

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

這個NVDA附加元件可以幫您把任何外文即時翻譯成中文報讀給您聽。
從此瀏覽外國網站或閱讀外文文件再也無障礙。
啟用開關為 NVDA+SHIFT+CONTROL+T, 可以自己修改。
下在網址:http://www.mtyp.fr/nvda/translate-2019.09.3.nvda-addon

Re: GBReader 簡體中文報讀機

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

我覺得你學 AutoIt3 比較會有成就感。

On Tue, 15 Oct 2019, 嘯傲俠羽 wrote:

Date: Tue, 15 Oct 2019 07:26:58 +0800
From: 嘯傲俠羽 <crazy@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機
謝謝你!我自己在實際操作看看!遇到問題再請指教!

在 2019/10/15,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io> 撰寫:
Hi 嘯傲俠羽 & all,

import 跟 from 有何不同?
import speech 表示把整個 speech 模組載入以後用 speech.XXX 來存取該模組下的函數、變數等
from speech import speakText 的話,就只能使用 speakText 這個名稱來操作 speech 模組的 speakText

二者還有一個關鍵性的差異,會影響這次高老師要做的 patch
from 的寫法,執行完後自己拿到一個 speakText 變數,代表 speech 模組的 speakText 函數
此時,對 speakText 變數的修改,只改變了它的內容,對於 speech 模組內部毫無影響
import speech 執行完後,自己得到一個變數 speech 代表整個 speech 模組
此時對 speech.speakText 認何修改,等同進入該模組去竄改它的內容了
而且因為被改的是模組本身,這個修改將會影響其他使用 speech.speakText 的執行

然而,這種修補方式,萬一遇到有別的 code 可能來自 NVDA 或者附加元件都好
在高老師的附加元件抽換 speech.speakText 之前,做了 from speech import speakText
該處 code 所使用的 speakText 就是原版的 speakText 而非經過修改的版本
遇到的話,這個可能導致附加元件失效,而且可能難以用附加元件的方式來解決

以上是我目前的理解,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月15日 星期二 上午4:40:56 [GMT+8], 嘯傲俠羽<crazy@...> 寫道:

可剖分享一下你語法:
import 跟 from 有何不同?
如果後面寫的指令搜一樣,
前面用 import 跟 from 引進檔案會有何不同或者效果差異嗎?
謝謝!

不好意思,我都一直還停留在初學街算!

在 2019/10/13,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io>
撰寫:
  Hi 高老師:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:

import speech

注意不是 from speech import speakText
然後自己寫一個 speakText 如下:

old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)

為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText
已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText =
old_speakText 還原

請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan


      在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:

  我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!

On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw















Re: GBReader 簡體中文報讀機

嘯傲俠羽
 

謝謝你!我自己在實際操作看看!遇到問題再請指教!

在 2019/10/15,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io> 撰寫:

Hi 嘯傲俠羽 & all,

import 跟 from 有何不同?
import speech 表示把整個 speech 模組載入以後用 speech.XXX 來存取該模組下的函數、變數等
from speech import speakText 的話,就只能使用 speakText 這個名稱來操作 speech 模組的 speakText

二者還有一個關鍵性的差異,會影響這次高老師要做的 patch
from 的寫法,執行完後自己拿到一個 speakText 變數,代表 speech 模組的 speakText 函數
此時,對 speakText 變數的修改,只改變了它的內容,對於 speech 模組內部毫無影響
import speech 執行完後,自己得到一個變數 speech 代表整個 speech 模組
此時對 speech.speakText 認何修改,等同進入該模組去竄改它的內容了
而且因為被改的是模組本身,這個修改將會影響其他使用 speech.speakText 的執行

然而,這種修補方式,萬一遇到有別的 code 可能來自 NVDA 或者附加元件都好
在高老師的附加元件抽換 speech.speakText 之前,做了 from speech import speakText
該處 code 所使用的 speakText 就是原版的 speakText 而非經過修改的版本
遇到的話,這個可能導致附加元件失效,而且可能難以用附加元件的方式來解決

以上是我目前的理解,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月15日 星期二 上午4:40:56 [GMT+8], 嘯傲俠羽<crazy@...> 寫道:

可剖分享一下你語法:
import 跟 from 有何不同?
如果後面寫的指令搜一樣,
前面用 import 跟 from 引進檔案會有何不同或者效果差異嗎?
謝謝!

不好意思,我都一直還停留在初學街算!

在 2019/10/13,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io>
撰寫:
  Hi 高老師:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:

import speech

注意不是 from speech import speakText
然後自己寫一個 speakText 如下:

old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)

為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText
已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText =
old_speakText 還原

請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan


      在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:

  我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!

On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw















Re: GBReader 簡體中文報讀機

Sponge Jhan
 

Hi 嘯傲俠羽 & all,

> import 跟 from 有何不同?
import speech 表示把整個 speech 模組載入以後用 speech.XXX 來存取該模組下的函數、變數等
from speech import speakText 的話,就只能使用 speakText 這個名稱來操作 speech 模組的 speakText

二者還有一個關鍵性的差異,會影響這次高老師要做的 patch
from 的寫法,執行完後自己拿到一個 speakText 變數,代表 speech 模組的 speakText 函數
此時,對 speakText 變數的修改,只改變了它的內容,對於 speech 模組內部毫無影響
import speech 執行完後,自己得到一個變數 speech 代表整個 speech 模組
此時對 speech.speakText 認何修改,等同進入該模組去竄改它的內容了
而且因為被改的是模組本身,這個修改將會影響其他使用 speech.speakText 的執行

然而,這種修補方式,萬一遇到有別的 code 可能來自 NVDA 或者附加元件都好
在高老師的附加元件抽換 speech.speakText 之前,做了 from speech import speakText
該處 code 所使用的 speakText 就是原版的 speakText 而非經過修改的版本
遇到的話,這個可能導致附加元件失效,而且可能難以用附加元件的方式來解決

以上是我目前的理解,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月15日 星期二 上午4:40:56 [GMT+8], 嘯傲俠羽<crazy@...> 寫道:


可剖分享一下你語法:
import 跟 from 有何不同?
如果後面寫的指令搜一樣,
前面用 import 跟 from 引進檔案會有何不同或者效果差異嗎?
謝謝!

不好意思,我都一直還停留在初學街算!

在 2019/10/13,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io> 撰寫:
>  Hi 高老師:
>
>> 我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
> 是 speech 模組下的 speakText 嗎?
> 可以先載入該模組:
>
> import speech
>
> 注意不是 from speech import speakText
> 然後自己寫一個 speakText 如下:
>
> old_speakText = speech.speakText # 先把原本的 speakText 保留下來
> def my_speakText(text, *args, **kwargs):
>   # 自己的前處理
>   return old_speakText(text, *args, **kwargs)
>
> 為了保留排版,我上面用了全形空白,請留意
> 以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
> 注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText
> 已經變成自己的實作
> 之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText =
> old_speakText 還原
>
> 請參考看看,thanks.
>
>   sincerely yours
>    Bo-cheng Jhan
>
>
>      在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:
>
>  我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
> 感謝!
>
> On Sun, 13 Oct 2019, Larry Wang wrote:
>
>> Date: Sun, 13 Oct 2019 17:44:35 +0800
>> From: Larry Wang <larry.wang.801@...>
>> Reply-To: nvda-tw@groups.io
>> To: nvda-tw@groups.io
>> Subject: Re: [nvda-tw] GBReader 簡體中文報讀機
>>
>> 有些两岸不同的名词可以考虑用zhconv这个库转换
>> 不过这样就需要给朗读函数添加补丁来完成了
>>
>> https://pypi.org/project/zhconv/
>>
>> On 2019/10/13 11:19, 高生旺 wrote:
>>> 在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
>>> 不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
>>> 只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
>>> 有需要的人可以多加利用,下在網址:
>>> http://nvda.gaga.tw
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
>
>
>
>
>



Re: GBReader 簡體中文報讀機

嘯傲俠羽
 

可剖分享一下你語法:
import 跟 from 有何不同?
如果後面寫的指令搜一樣,
前面用 import 跟 from 引進檔案會有何不同或者效果差異嗎?
謝謝!

不好意思,我都一直還停留在初學街算!

在 2019/10/13,Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io> 撰寫:

Hi 高老師:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:

import speech

注意不是 from speech import speakText
然後自己寫一個 speakText 如下:

old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)

為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText
已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText =
old_speakText 還原

請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!

On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw










python 中的 decorator(裝飾器)

woody tseng
 

Hello,

這裡經典的作法是使用 decorator (裝飾器)的設計模式來處理,以下是之前帶人時整理的資料再微調過

# 裝飾器
裝飾器是一種可以做到重複利用前後的設計模式,主要基於 python 的 function 是一等公民的特性,所以只要該與言的 function 是一等公民就可以實現這樣的設計模式
註:一等公民即表示其可以作为函数参数,可以作为函数返回值,也可以赋值给变量

## 核心概念
一、定義可接受一個 function 的 function(我們估且稱為 decorator)
二、在 decorator 內再定義一個可接受任意參數的 function(我們估且稱為 wrapper)
三、在 wrapper 內就像三明治一樣有執行前處理、呼叫最外層傳入的 function、執行後處理三塊
四、將呼叫最外層傳入的 function 得到的結果存起來,在 wrapper 最後要回傳 此結果
五、在 decorator 回傳 wrapper
六、在要裝飾的原先 function 上使用
 1. func = decorator(func)
 2. 由於此類模式太常見, python 提供了語法糖「@」修飾符,使得在定義時就使用既有的 decorator 來裝飾
@decorator
def func():
 pass

def decorator(func):
 # 使用星號讓新的函數能夠接受任意參數,換句話說能讓裝飾器裝飾任意函數
 def wrapper(*args, **kwargs):
  """
  function 執行前處理
  """
  result = func(*args, **kwargs) # 呼叫原本的函數時也使用星號來進行參數拆解
  """
  function 執行後處理
  """
  return result
 return wrapper

## 優點:
可以將相同的前後處理邏輯寫在一個 decorator 內達到重複使用的目的。

## 適用情境:
當想在既有 function 執行前後處理一些事情時,想像 decorator 就像三明治一樣將既有 function 邏輯夾在中間, decorator 的邏輯則在前後。

## 舉個經典例子:費氏數列計算+記憶+計算時間
from functools import wraps
import time

def clock(func):
 @wraps(func)
 def wrapper(*args, **kwargs):
  """裝飾過的函數"""
  start = time.time()
  result = func(*args, **kwargs)
  end = time.time()
  elapsed = end - start

  # 印出 call 資訊
  name = func.__name__
  arg_strs = [repr(arg) for arg in args]
  kwarg_strs = ['{}={}'.format(key, value) for key, value in kwargs.items()]
  argstr = ','.join(arg_strs + kwarg_strs)
  print('Run {}({}): {}'.format(name, argstr, elapsed))
  return result
 return wrapper

def memorize(func):
 memory = {}
 @wraps(func)
 def wrapper(value, *args, **kwargs):
  if value in memory:
   result = memory[value]
  else:
   result = func(value, *args, **kwargs)
   memory[value] = result
  return result
 return wrapper

@clock
@memorize
def fibonacci(n):
 """求取費氏數列的第n項"""
 if n < 2:
  return n
 return fibonacci(n-1) + fibonacci(n-2)


@clock
def fibonacci_not_memory(n):
 """求取費氏數列的第n項"""
 if n < 2:
  return n
 return fibonacci_not_memory(n-1) + fibonacci_not_memory(n-2)

if __name__ == '__main__':
 print(fibonacci_not_memory(18))
 print(fibonacci(18))

PS1:自製的 memorize decorator 可以用內建的 functools.lru_cache 來取代,此處為了講解故自行設計來練習
PS2:同樣使用「 」全形空白來縮排

另外亦可參考之前寫的 CustomLouisTables 亦是基於 decorator 程式碼
https://raw.githubusercontent.com/tsengwoody/CustomLouisTables/master/addon/globalPlugins/CustomLouisTables/__init__.py
https://raw.githubusercontent.com/tsengwoody/CustomLouisTables/master/addon/globalPlugins/CustomLouisTables/decorator.py

### 延申閱讀:
一等公民:https://www.cnblogs.com/fundebug/p/javascript-first-class-function.html
二、Don't Reinvent Sandwich: Decorator:http://dokelung.me/category/python/dont-reinvent-sandwich/

Woody

Re: GBReader 簡體中文報讀機

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

非常感謝!夠我花一段時間研究的了。

On Sun, 13 Oct 2019, Sponge Jhan via Groups.Io wrote:

Date: Sun, 13 Oct 2019 15:30:50 +0000 (UTC)
From: Sponge Jhan via Groups.Io <school510587=yahoo.com.tw@groups.io>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機
Hi 高老師:

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:
import speech
注意不是 from speech import speakText
然後自己寫一個 speakText 如下:
old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)
為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText 已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText = old_speakText 還原
請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan
在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:
我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!
On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw




Re: GBReader 簡體中文報讀機

Sponge Jhan
 

Hi 高老師:

> 我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
是 speech 模組下的 speakText 嗎?
可以先載入該模組:

import speech

注意不是 from speech import speakText
然後自己寫一個 speakText 如下:

old_speakText = speech.speakText # 先把原本的 speakText 保留下來
def my_speakText(text, *args, **kwargs):
  # 自己的前處理
  return old_speakText(text, *args, **kwargs)

為了保留排版,我上面用了全形空白,請留意
以上的 *args, **kwargs 是預留彈性,為避免 NVDA 日後增加新參數導致附加元件失效
注意 return 使用的是 old_speakText 而非 speech.speakText, 因為 speech.speakText 已經變成自己的實作
之後,可以用 speech.speakText = my_speakText 覆蓋原本的實作,也可以用 speech.speakText = old_speakText 還原

請參考看看,thanks.

  sincerely yours
   Bo-cheng Jhan


在 2019年10月13日 星期日 下午5:51:49 [GMT+8], 高生旺<coscell@...> 寫道:


我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!


On Sun, 13 Oct 2019, Larry Wang wrote:

> Date: Sun, 13 Oct 2019 17:44:35 +0800
> From: Larry Wang <larry.wang.801@...>
> Reply-To: nvda-tw@groups.io
> To: nvda-tw@groups.io
> Subject: Re: [nvda-tw] GBReader 簡體中文報讀機
>
> 有些两岸不同的名词可以考虑用zhconv这个库转换
> 不过这样就需要给朗读函数添加补丁来完成了
>
> https://pypi.org/project/zhconv/
>
> On 2019/10/13 11:19, 高生旺 wrote:
>> 在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
>> 不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
>> 只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
>> 有需要的人可以多加利用,下在網址:
>> http://nvda.gaga.tw
>>
>>
>>
>
>
>
>



Re: 使用 NVDA 操作 Google Keep

楠特巡迴 黃偉豪
 

這個應該是 google 日曆的通知,
要取消可參閱以下連結

嘯傲俠羽 <crazy@...> 於 2019年10月13日 週日 上午10:51寫道:

想請問黃老師個問題:
為什麼我每天都會收到「今天您沒有安排一定的活動。」這砰信?
想把它設定為垃圾郵件也不行?
那是做啥用的?
可以排除調嗎?
謝謝!

在 2019/10/13,楠特巡迴 黃偉豪 <hurt.nzsmr@...> 撰寫:
> 以下筆記同步紀錄於   http://class.kh.edu.tw/19061/bulletin/msg_view/341
>
> 說明
>
> Google Keep 是由 Google 提供的雲端備忘錄服務,可以跨平台跨裝置同步內容,本篇筆記介紹如何使用 NVDA 操作 Google
> Keep 。
> 操作
>
> 登入 Google 帳戶後,用瀏覽器到 https://keep.google.com/ 即可開始使用; android 和 iOS 的使用者則可安裝
> Google Keep 的 app 。
>
>    - Android 的 Google Keep
>    <https://play.google.com/store/apps/details?id=com.google.android.keep>
>    - iOS 的 Google Keep
>
> <https://apps.apple.com/tw/app/google-keep-%E7%AD%86%E8%A8%98%E5%92%8C%E6%B8%85%E5%96%AE/id1029207872>
>
> 進入頁面後,按 E 兩次到「新增記事」編輯區 ,在焦點模式下即可開始輸入備忘內容。
>
> 要進行相關操作,按 ESC 將焦點移出「新增記事」區塊,再按 NVDA + 空白鍵切換為焦點模式,即可使用以下快速鍵操作:
> 內容跳轉
>
>    - 瀏覽下一個記事 J
>    - 瀏覽上一個記事 K
>
> 找到想瀏覽或編輯的記事,按下 Enter 即可開始編輯,按 ESC 即可退出編輯,每進行一個編輯動作均會在雲端儲存,不需另外做存檔動作。
>
>    - 將記事移至下一個位置 Shift + J
>    - 將記事移至上一個位置 Shift + K
>
> 原則上記事會以建立的時間先後排序,越晚建立的會在越上面,但可利用快速鍵改變其位置。
> 應用程式
>
>    - 撰寫新記事 C
>    - 撰寫新清單 L
>
> 備忘內容有兩種,一為「記事」,是空白的頁面能輸入文字,另一是「清單」,可以把待辦事項條列其中。
>
>    - 搜尋記事 /
>    - 選取所有記事 Control + A
>    - 開啟鍵盤快速鍵說明 ?
>    - 提供意見 @
>
> 記事動作
>
>    - 封存記事 E
>    - 將記事丟進垃圾桶 #
>    - 固定或取消固定記事 F
>    - 選取記事 X
>    - 在清單和格狀檢視之間切換 Control + G
>
> 編輯器
>
>    - 完成編輯 Esc
>    - 完成編輯 Control + Enter
>
>
>
> --
> *高雄市立楠梓特殊學校 <http://www.nzsmr.kh.edu.tw/>*
> Kaohsiung Municipal Nanzih Special School
> *國中啟明巡迴輔導教師 <http://tinyurl.com/hurt-vi-note>*
> Itinerant Teacher of the Visually Impaired
> 黃偉豪 Wei-hao Huang
> 0933637427
> *視覺障礙輔助科技筆記本* <https://www.facebook.com/vi.tech.tw/>
> [image: NVDA Certified Expert]
> <https://certification.nvaccess.org/>
>
>
>
>





--
Kaohsiung Municipal Nanzih Special School
Itinerant Teacher of the Visually Impaired
黃偉豪 Wei-hao Huang
0933637427
NVDA Certified Expert

Re: GBReader 簡體中文報讀機

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

我正需要攔截 speaktext() 的 text 來先做處理在還給它,請問有沒有實做的城市馬可以給我觀摩?
感謝!

On Sun, 13 Oct 2019, Larry Wang wrote:

Date: Sun, 13 Oct 2019 17:44:35 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] GBReader 簡體中文報讀機
有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw

Re: GBReader 簡體中文報讀機

Larry Wang
 

有些两岸不同的名词可以考虑用zhconv这个库转换
不过这样就需要给朗读函数添加补丁来完成了

https://pypi.org/project/zhconv/

On 2019/10/13 11:19, 高生旺 wrote:
在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw

GBReader 簡體中文報讀機

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

在 line 群組看過好幾位夥伴提出報讀簡體中文的需求,於是寫了這個附加元件。
不論是閱讀電子書、玩大陸的遊戲,甚至安裝大陸軟體,
只要螢幕上出現簡體中文讓您聽不懂,都可以按個按鍵來解決,還可以隨身攜帶。
有需要的人可以多加利用,下在網址:
http://nvda.gaga.tw

Re: 使用 NVDA 操作 Google Keep

嘯傲俠羽
 

想請問黃老師個問題:
為什麼我每天都會收到「今天您沒有安排一定的活動。」這砰信?
想把它設定為垃圾郵件也不行?
那是做啥用的?
可以排除調嗎?
謝謝!

在 2019/10/13,楠特巡迴 黃偉豪 <hurt.nzsmr@...> 撰寫:

以下筆記同步紀錄於 http://class.kh.edu.tw/19061/bulletin/msg_view/341

說明

Google Keep 是由 Google 提供的雲端備忘錄服務,可以跨平台跨裝置同步內容,本篇筆記介紹如何使用 NVDA 操作 Google
Keep 。
操作

登入 Google 帳戶後,用瀏覽器到 https://keep.google.com/ 即可開始使用; android 和 iOS 的使用者則可安裝
Google Keep 的 app 。

- Android 的 Google Keep
<https://play.google.com/store/apps/details?id=com.google.android.keep>
- iOS 的 Google Keep

<https://apps.apple.com/tw/app/google-keep-%E7%AD%86%E8%A8%98%E5%92%8C%E6%B8%85%E5%96%AE/id1029207872>

進入頁面後,按 E 兩次到「新增記事」編輯區 ,在焦點模式下即可開始輸入備忘內容。

要進行相關操作,按 ESC 將焦點移出「新增記事」區塊,再按 NVDA + 空白鍵切換為焦點模式,即可使用以下快速鍵操作:
內容跳轉

- 瀏覽下一個記事 J
- 瀏覽上一個記事 K

找到想瀏覽或編輯的記事,按下 Enter 即可開始編輯,按 ESC 即可退出編輯,每進行一個編輯動作均會在雲端儲存,不需另外做存檔動作。

- 將記事移至下一個位置 Shift + J
- 將記事移至上一個位置 Shift + K

原則上記事會以建立的時間先後排序,越晚建立的會在越上面,但可利用快速鍵改變其位置。
應用程式

- 撰寫新記事 C
- 撰寫新清單 L

備忘內容有兩種,一為「記事」,是空白的頁面能輸入文字,另一是「清單」,可以把待辦事項條列其中。

- 搜尋記事 /
- 選取所有記事 Control + A
- 開啟鍵盤快速鍵說明 ?
- 提供意見 @

記事動作

- 封存記事 E
- 將記事丟進垃圾桶 #
- 固定或取消固定記事 F
- 選取記事 X
- 在清單和格狀檢視之間切換 Control + G

編輯器

- 完成編輯 Esc
- 完成編輯 Control + Enter



--
*高雄市立楠梓特殊學校 <http://www.nzsmr.kh.edu.tw/>*
Kaohsiung Municipal Nanzih Special School
*國中啟明巡迴輔導教師 <http://tinyurl.com/hurt-vi-note>*
Itinerant Teacher of the Visually Impaired
黃偉豪 Wei-hao Huang
0933637427
*視覺障礙輔助科技筆記本* <https://www.facebook.com/vi.tech.tw/>
[image: NVDA Certified Expert]
<https://certification.nvaccess.org/>



使用 NVDA 操作 Google Keep

楠特巡迴 黃偉豪
 

以下筆記同步紀錄於   http://class.kh.edu.tw/19061/bulletin/msg_view/341

說明

Google Keep 是由 Google 提供的雲端備忘錄服務,可以跨平台跨裝置同步內容,本篇筆記介紹如何使用 NVDA 操作 Google Keep 。

操作

登入 Google 帳戶後,用瀏覽器到 https://keep.google.com/ 即可開始使用; android 和 iOS 的使用者則可安裝 Google Keep 的 app 。

進入頁面後,按 E 兩次到「新增記事」編輯區 ,在焦點模式下即可開始輸入備忘內容。

要進行相關操作,按 ESC 將焦點移出「新增記事」區塊,再按 NVDA + 空白鍵切換為焦點模式,即可使用以下快速鍵操作:

內容跳轉

  • 瀏覽下一個記事 J 
  • 瀏覽上一個記事 K

找到想瀏覽或編輯的記事,按下 Enter 即可開始編輯,按 ESC 即可退出編輯,每進行一個編輯動作均會在雲端儲存,不需另外做存檔動作。

  • 將記事移至下一個位置 Shift + J
  • 將記事移至上一個位置 Shift + K

原則上記事會以建立的時間先後排序,越晚建立的會在越上面,但可利用快速鍵改變其位置。

應用程式

  • 撰寫新記事 C
  • 撰寫新清單 L

備忘內容有兩種,一為「記事」,是空白的頁面能輸入文字,另一是「清單」,可以把待辦事項條列其中。

  • 搜尋記事 /
  • 選取所有記事 Control + A
  • 開啟鍵盤快速鍵說明 ?
  • 提供意見 @

記事動作

  • 封存記事 E
  • 將記事丟進垃圾桶 #
  • 固定或取消固定記事 F
  • 選取記事 X
  • 在清單和格狀檢視之間切換 Control + G

編輯器

  • 完成編輯 Esc
  • 完成編輯 Control + Enter


--
Kaohsiung Municipal Nanzih Special School
Itinerant Teacher of the Visually Impaired
黃偉豪 Wei-hao Huang
0933637427
NVDA Certified Expert

Release zh-tw.ctb 2019-09 #點字 #點字轉譯表

Sponge Jhan
 

Dear all,

Sorry, 由於 U+4E00-U+9FEF 基本的國字區段即將審查完成,因此我堅持到全部看完才發布,拖到現在
往後,國字部份會相對穩定,應該不會再出現調整很多個常用字的狀況
可能會再調整 U+3400-U+4DB5 這個擴充區,但是這些小調整對一般用戶而言就不太重要,只是我希望它更符合 UniHan 資料庫這個開放資源提供的讀音

到這次為止 zh-tw.ctb, zh-tw-new.ctb, zh-tw.yaml, CJK.txt 用途都同之前所述
由於接下來修訂重點朝向表情符號等 U+10000 以上的字元,檔案的命名與用法將會改變
在此預告,下次之後預設的測試環境就會變成 NVDA alpha 即 Python 3 版本
不過,對於 U+10000 以下的符號若有修改,仍可將檔案重新命名做些調整,使適用於 Python 2 版本的 NVDA
針對以上的內容,細節將在下次公佈

Thanks!

此次的版本包含兩個修訂:

1. 增加二個符號,恰為一對角括號
‹ 126
› 345
其外觀就像 < > 又常被用作指示方向用途,因此先使用一樣的點位來表達
註:與數學用的角括號不同內碼,點位也不同
此項感謝特種兵的回報

2. 國字增修,僅列出常用字如下,其他增修部分參見 CJK.txt
裳 12-1346-2 根據 Microsoft HanHan 發因修訂 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000032187
踱 145-25-5 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000009464
踮 145-2345-5 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000008869
鐐 14-246-2 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000014404
螫 1-2346-3 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000029493
蟄 1-156-2 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000029074
蓿 15-34-5 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000039052
鈾 234-5 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000041556
銻 124-16-5 http://dict.revised.moe.edu.tw/cgi-bin/cbdic/gsweb.cgi?o=dcbdic&searchid=W00000002657
繆 134-234-5 ㄇㄧㄡˋ在所有讀音裡使用情境最廣 http://dict.concised.moe.edu.tw/cgi-bin/jbdic/gsweb.cgi?o=djbdic&searchid=W00000004590

  sincerely yours
   Bo-cheng Jhan

Re: Win10桌面問題

嘯傲俠羽
 

那為蛇個桌面捷徑變成英文

在 2019/9/24,高生旺 <coscell@...> 撰寫:

F2

On Tue, 24 Sep 2019, 趙婉媃 wrote:

Date: Tue, 24 Sep 2019 15:34:56 +0800
From: 趙婉媃 <wan0820@...>
Reply-To: nvda-tw@groups.io
To: Nvda論壇 <nvda-tw@groups.io>
Subject: Re: [nvda-tw] Win10桌面問

謝謝高老師,還有一個問題,本機裡面的桌面捷徑變成英文了,要怎麼改回來?謝謝

高生旺 <coscell@...> 於 2019年9月24日 週二 上午11:16寫道:
是的

On Tue, 24 Sep 2019, 趙婉媃 wrote:

> Date: Tue, 24 Sep 2019 10:04:39 +0800
> From: 趙婉媃 <wan0820@...>
> Reply-To: nvda-tw@groups.io
> To: Nvda論壇 <nvda-tw@groups.io>
> Subject: Re: [nvda-tw] Win10桌面問??????
>
> 請問,講座是Nvda從入門到精通嗎?
>
> 高生旺 <coscell@...> 於 2019年9月23日 週一 下午4:40寫道:
>       可以,一個辦法事先加上數字在排序,令一個辦法請打開手機的語音隨身助理收聽我的講座。
>
>       On Mon, 23 Sep 2019, 趙婉媃 wrote:
>
>       > Date: Mon, 23 Sep 2019 15:19:39 +0800
>       > From: 趙婉媃 <wan0820@...>
>       > Reply-To: nvda-tw@groups.io
>       > To: Nvda論壇 <nvda-tw@groups.io>
>       > Subject: [nvda-tw] Win10桌面問題
>       >
>       > 想請問各位在不使用滑鼠的情況下有辦法調整桌名上捷徑的位置嗎?
>       > 謝謝
>       >
>       >
>       >
>
>
>
>
>
>







Re: Win10桌面問題

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

F2

On Tue, 24 Sep 2019, 趙婉媃 wrote:

Date: Tue, 24 Sep 2019 15:34:56 +0800
From: 趙婉媃 <wan0820@...>
Reply-To: nvda-tw@groups.io
To: Nvda論壇 <nvda-tw@groups.io>
Subject: Re: [nvda-tw] Win10桌面問
謝謝高老師,還有一個問題,本機裡面的桌面捷徑變成英文了,要怎麼改回來?謝謝
高生旺 <coscell@...> 於 2019年9月24日 週二 上午11:16寫道:
是的

On Tue, 24 Sep 2019, 趙婉媃 wrote:

> Date: Tue, 24 Sep 2019 10:04:39 +0800
> From: 趙婉媃 <wan0820@...>
> Reply-To: nvda-tw@groups.io
> To: Nvda論壇 <nvda-tw@groups.io>
> Subject: Re: [nvda-tw] Win10桌面問??????
>
> 請問,講座是Nvda從入門到精通嗎?
>
> 高生旺 <coscell@...> 於 2019年9月23日 週一 下午4:40寫道:
>       可以,一個辦法事先加上數字在排序,令一個辦法請打開手機的語音隨身助理收聽我的講座。
>
>       On Mon, 23 Sep 2019, 趙婉媃 wrote:
>
>       > Date: Mon, 23 Sep 2019 15:19:39 +0800
>       > From: 趙婉媃 <wan0820@...>
>       > Reply-To: nvda-tw@groups.io
>       > To: Nvda論壇 <nvda-tw@groups.io>
>       > Subject: [nvda-tw] Win10桌面問題
>       >
>       > 想請問各位在不使用滑鼠的情況下有辦法調整桌名上捷徑的位置嗎?
>       > 謝謝
>       >
>       >
>       >
>
>
>
>
>
>