在上一篇擷取螢幕畫面併存成圖檔的範例中有提到,該流程在執行後是會直接覆蓋掉存檔路徑中,
原本存在以執行當天的日期為檔名的圖片的,並沒有任何的防呆或是檢查!
所以有很高的機率會因為不小心按到執行,又讓流程跑完,然後原本要的圖檔就不見了…
(因為新的圖檔給取代掉了)
這時候,如果這圖檔非常重要,那麼如果有做備份就馬上找備分中的檔案回來以外,
就真的是沒招了!
所以這時候在流程設計之初,就要先想到這一點,並加入一個判斷流程,
讓電腦先確認指定的資料夾路徑(存檔路徑)中,到底有沒有當天的檔案存在,
如果沒有的話才直接存檔!(這點不只針對圖檔,也適用於各種類型的檔案)
而讓電腦確認指定的資料夾中有沒有指定檔名的檔案存在,其實是有好幾種方式的,
但這篇的範例主要是針對存檔時,要電腦先去做確認的流程喔。
其他的做法會等有機會的時候再來講解。
下面就來看看確認檔案是否存在的流程要怎麼製作吧!
首先先把"拍攝螢幕截去畫面"動作中設定的存檔路徑複製下來!
先在左側動作清單中找到"檔案"項目,
並展開清單後選取並將"如果檔案已存在"動作
然後把這動作拖曳到編輯區中"拍攝螢幕畫面"的上方!
在跳出的設定視窗中的"檔案路徑"欄位上貼上剛剛複製的路徑後點"儲存"
之後,在編輯區的流程中就會多一個"如果檔案已存在"和"End"的判斷式
在"如果檔案已存在"和"End"中間的區域就是設定判斷式的條件的位置
判斷式是什麼呢?
就是如果滿足了你設定的條件後,你要電腦去做什麼事情。
口語化點就是:如果怎樣,就這樣…
這部分和"條件"動作清單中的If是一樣的概念。
但"條件"清單中的動作主要是針對PAD中設定的"變數"去做判斷,
而檔案的"如果檔案已存在"這個動作,單純只針對"檔案"的存在與否去做判斷
※雖然"檔案已存在"這個動作名稱是"已存在",但在其設定視窗中,
"如果檔案"後面的下拉清單內,其實是可以切換"存在"或"不存在"的!
由於這篇還沒有說到"迴圈"(loop),所以這邊就單純的讓機器人在發現檔案已存在時,
直接跳出個通知視窗告知使用者檔案已存在了!
所以就到左邊動作區域,展開"訊息方塊"的清單
把"顯示訊息"給拖曳到右邊編輯區中,"如果檔案已存在"的下方
然後設定下"顯示訊息"的內容
主要設定"訊息方塊標題","要顯示的訊息"即可。
"訊息方塊圖示"的部分則可視需求調整(預設為"無")
設定完成後,點擊"儲存"即可。
這樣就能讓電腦自己先去判斷檔案存不存在了!
到此,目前的流程是下面這樣的:
但是如果只是這樣還是會有問題,因為剛剛的判斷式並不"完整"!!
因為如果照上面的流程來說,電腦只是單純地去檢查有沒有檔案,
如果有檔案的話,就跳個訊息通知告訴使用者而已。
然後電腦會繼續執行下一個動作,也就是"拍攝螢幕擷取畫面",然後擷取畫面並存成檔案。
也就是說,在這流程中,如果原本有檔案的話,還是會被取代掉的!
那也許有人會問:我不是已經加了一個判斷式了嗎?
答案是沒錯的。
我們上面是加了判斷式,而判斷式也能正常執行的,
只是我們要電腦做判斷的條件是:
"存檔路徑中有沒有檔案,有的話就跳個通知"罷了!
也就是說,我們並沒有在判斷式中告訴電腦,
"如果路徑中沒有檔案的時候,它要怎麼做"!!
也許還會有人問:下面一個動作就是"拍攝螢幕擷取畫面"了啊!?
這個答案也是正確的,不過問題就在於這動作的擺放位置上。
因為我們並不是把"拍攝螢幕擷取畫面"這個動作放在判斷式內,
而是要電腦判斷完之後才去執行"拍攝螢幕擷取畫面"這個動作,
也就是對於電腦來說,整個判斷式會視為"一個""連貫的動作",每一個步驟都是"一個單獨的動作"
(一個判斷式會對應一個End當作結束)
所以遇到判斷式時,電腦會將判斷式中的流程視為"一個動作",
因此電腦會執行完判斷式中的所有動作以後,才會繼續執行下個動作(第6步)
電腦執行順序:1→2→(3~5)→6
因為我們這個流程相對簡單,所以看不出來1→2→(3~5)→6和1→2→3→4→5→6的差異…
所以我們假設下,在第4步是呼叫一個有10個動作的子流程A,那麼執行順序會是什麼呢?
其實對這流程來說還是1→2→(3~5)→6,但實際上電腦做了1→2→(3→A(1~10)→5)→6
這邊也許我的表達不是很好,也有點難理解......
不過這邊就先記得:
"遇到判斷式時,電腦是會先把判斷式內的動作都執行完,接著才會執行下個動作"
的原則吧!
所以基於上述的原則,就來修改下判斷式吧!
首先在判斷式中加入一個Else的動作(在動作區域的條件清單中)
拖曳到到右邊編輯區中,"顯示訊息"的下方
Else是指和判斷式設定的條件相反時的意思。
口語化來說就是,如果怎樣,就這樣,不然就那樣。
所以在這判斷式中,放在這個Else下面的動作是在電腦判斷出檔案"不存在"時才被觸發!
所以接下來就是把"拍攝螢幕擷取畫面"這個動作給拉到Else下面:
完成後如下:
先將流程"儲存"之後,來執行兩次看看結果吧!
執行第一次:
結果正常,電腦直接跑完流程,並產生一個圖檔。
執行第二次:
跳出訊息通知視窗,告知檔案已存在。
並且不會取代原本的檔案!
如此一來,基本的防呆就完成啦!
※補充說明
判斷式:
基本上就是以前數學學過If x = 1, y = 0,然後怎樣怎樣的概念!
只是在電腦這邊還多了Else和Else If。
Else If是用在多條件的判斷式,但是在簡易的流程中,
其實可以用If判斷式中加入另一個If去做…
顯示訊息:
訊息方塊按鈕可以調整成常見的兩個按鈕(確認+取消)或其他。
都可以在設定視窗的"訊息方塊按鈕"旁的下拉式按鈕中調整!
預設按鈕也可以變更。
如果不想訊息視窗被其他軟體給蓋掉,則可以開啟"訊息方塊一律保持在最上方"
如果想要訊息視窗自動消失,也可以在開啟"自動關閉訊息方塊",並設定持續顯示的秒數