浮雲札記

關於電腦上的知識, 如 Linux, Perl, C/C++, C# …

2010年11月13日 星期六

自動載入「悠閒農夫」小工具

※「悠閒農夫」 可說是一個優質的軟體,
它的優點,相信用過的人都知道,
因為本文不是特別介紹「悠閒農夫」,所以就不再贅述了。

不過「悠 閒農夫」在使用時,
由於不知名的原因,在常期使用時,偶而會發生當掉的情況,
這會使得一些農夫因而錯過了農作物的採收。

※ 下面舉二個當掉的畫面,

一、
http://yfrog.com/2hleisurelyplantererror01p

二、
http://yfrog.com/jvleisurelyplantererror02p


※ 由於目前尚未發現有解決的方法,

只能由人工手動將「悠 閒農夫」重新啟動,
為此,小弟使用 AutoIt v3 寫了一個小工具,
可以在
悠閒農夫」當掉時,
自動載入「悠 閒農夫」。

※ 功能:

※使用方法:

一、先確定您的帳號設定
記得要勾選「保存登入密碼」,不然就不能達到自動的目的囉!
確認後,要先結束「悠 閒農夫」。
http://yfrog.com/2qleisurelyplanter02p

二、將「AutoLaunchtPlanter.exe」 或「AutoLaunchtPlanter.au3」和「LeisurelyPlanter.exe」放在同一個資料夾中。
由於只能載入第一個帳號,所以有多個帳號的朋友,請將不同帳號分別放到不同的資料夾中。
http://yfrog.com/muautolaunchtplanter01p

三、執行 「AutoLaunchtPlanter.exe」或「AutoLaunchtPlanter.au3」後,
會自動執行「LeisurelyPlanter.exe」,並開始監控「LeisurelyPlanter.exe」是否當掉了
http://yfrog.com/muautolaunchtplanter01p


本程式是以 AutoIt v3 開發
的小工具:
可以到
下面網址下載,(請優先從載點一下載)
  • 載點一:http://www.fileserve.com/list/PfXpaWN
    • 請不要使用 proxy,以免下載失敗
    • 點選您要下載的檔案
    • 點擊「免費帳戶」→「普通下載」
    • 輸入驗証碼,再點擊「普通下載」
    • 出現倒數計時,結束後再點擊「普通下載」
    • 正式開始下載
  • 載點二:http://www.easy-share.com/f/1325991040/AutoIt
    • 請不要使用 proxy,以免下載失敗
    • 點選您要下載的檔案
    • 出現倒數計時
    • 點擊「Regular Download」
    • 出現倒數計時
    • 輸入驗証碼後按下「Enter」鍵
    • 正式開始下載
  • 如果還是無法下載的朋友,請留下您的 e-mail,我在寄給您。
注意事項:
  • AutoLaunchtPlanter.au3(原始程式,安裝 AutoIt v3 後就可以直接執行
  • AutoLaunchtPlanter.exe(執行檔)
  • 請儘量下載較新的版本
擔心有病毒或惡意程式的人,可先下載、安裝 AutoIt v3 後,
再直接執行原始程式
AutoLaunchtPlanter.au3,就可以安心使用了。

※如何修改原始程式:
  • 先安裝 AutoIt v3,才能直接執行原始程式
  • 在檔案總管中,於「AutoLaunchtPlanter_x.xx.au3」上按滑鼠右鍵(x.xx為版本號碼)
  • 在跳出選單中,點選「Edit Script」
  • 這時系統會用「SciTE 編輯軟體」開啟「AutoLaunchtPlanter_x.xx.au3」
  • 開始進行修改
  • 修改完記得存檔

※特 殊用法(記得修改後要執行「原始程式」,才會生效哦):
  • 應該能避開「1029:has been forbidden!」(適用 v0.14 beta 之後版本)
    • 原理:檢查「悠閒農夫」在一定時間內(30秒),是否做了太多次的動作(10次),如果是則強制結束「悠閒農夫」,休息一段時間(如1分鐘)後再重新啟動。
    • 開啟 AutoLaunchtPlanter.au3 準備修改
    • 找尋「$ForbiddenCheck_InSeconds = 30」、「$ForbiddenCheck_MaxItemCount = 10」、「$ForbiddenCheck_RestingPeriod = 1 * 60 * 1000」。
    • 修改為適合的數值(目前我用上述設定,跑了一段時間沒有被封鎖),如再被封鎖則請再變更數值(0代表不做上面的檢查動作)
    • 修改完記得要存檔
  • 也許能避開「1029:has been forbidden!」(適用 v0.2 以後版本)
    • 原理:每工作一小段時間(如1分鐘),則強制結束「悠閒農夫」, 再隔一段時間(如2分鐘)後再重新啟動。
    • 開啟 AutoLaunchtPlanter.au3 準備修改
    • 找尋「$MaxWorkTime = xxxx」,此為每次可以工作的最久時間,其中的「xxxx」代表數字。
    • 修改為「$MaxWorkTime = 60 * 1000」,單位為千分之一秒,如再被封鎖則請再縮小數值
    • 找尋(在 Func Main() 之中)「
      If $StartWorkTime Then
      If TimerDiff($StartWorkTime) > $MaxWorkTime Then
      NormalEnd()
      $StartWorkTime = 0
      $restTime = 5 * 60 * 1000
      EndIf

    • 把「$restTime = 5 * 60 * 1000」→「$restTime = 2 * 60 * 1000」,或修改成您要休息的時間
    • 修改完記得要存檔
  • 多個小號使用,減少 CPU 使用量(適用 v0.2 以後版本)
    • 原理:每工作一小段時間(如1.5分鐘應可處理完自己的農場),則強制結束「悠閒農夫」, 再隔一段時間(如1小時)後再重新啟動。
    • 開啟 AutoLaunchtPlanter.au3 準備修改
    • 找尋「$MaxWorkTime = xxxx」,此為每次可以工作的最久時間,其中的「xxxx」代表數字。
    • 修改為「$MaxWorkTime = 1.5 * 60 * 1000」,單位為千分之一秒,如沒有處理完自己的農場請再更改數值
    • 找尋(在 Func Main() 之中)「
      If $StartWorkTime Then
      If TimerDiff($StartWorkTime) > $MaxWorkTime Then
      NormalEnd()
      $StartWorkTime = 0
      $restTime = 5 * 60 * 1000
      EndIf

    • 把「$restTime = 5 * 60 * 1000」→「$restTime = 60 * 60 * 1000」,或修改成您要休息的時間
    • 修改完記得要存檔
  • 將檢查「悠閒農夫」當掉的邏輯獨立出來,適用使用多個 AutoLaunchtPlanter 的使用者(適用全部版本)
    • 功用:節省 CPU 使用率
    • 開啟 AutoLaunchtPlanter.au3 準備修改
    • 找尋 Func Init() 中包含有「"CheckCrash"」的那一行,然後將這行刪除
    • 修改完記得要存檔
    • 另外下載「CheckPlanterCrash_x.x.zip」,其中 x.x 為版本號碼
    • 執行壓縮檔中的「CheckPlanterCrash_x.x.exe」及修改完的「AutoLaunchtPlanter.au3」

※ 版本修改記錄:
  • 2011/03/22 v0.18:
    • 新增幾個檢查「悠閒農夫」的訊息的對應動作,如:
    • 修改一個「悠閒農夫」訊息的對應動作:
      • 發現被封鎖時 → 重開「悠閒農夫」(因有時候是「悠閒農夫」判斷錯誤,重開後就可正常使用)
    • 可自訂巡視農場後的休息間隔
      • 請修改「$CheckFarmRestingPeriod」變數
      • 其值小於或等於 0 時,將使用「悠閒農夫」原本的休息間隔
    • 點擊滑鼠主鍵→點擊滑鼠左鍵(避免滑鼠左右鍵對調使用時會出錯)
    • 登入後可自動隱藏「悠閒農夫」的主畫面
      • 請修改「$CloseLeisurelyPlanterMainWindow」變數(其值為 TrueFalse
      • 預設為 False
    • 新增可顯示出程式執行到哪一行
      • 請修改「$Debug」變數(其值為 TrueFalse
      • 預設為 False
    • 新增執行原始程式(au3)也可以顯示小圖示(icon),而不是用 AutoIt 的圖示
      • 如想變更顯示的小圖示,可自行用其它小圖示取代「AutoLaunchtPlanter.ico」
  • 2011/01/27 v0.17:
    • 新增幾個檢查「悠閒農夫」的訊息的對應動作,如:
      • missing URL → 重開「悠閒農夫
      • 不明錯誤 → 停止工作,再重新工作
      • 溝通失敗 → 重開「悠閒農夫
    • 新增被封鎖時將「悠閒農夫」的訊息記錄下來
    • 不想記錄被封鎖時的訊息,可以找尋「$ForbiddenCheck_Log = True」,然後修改為「$ForbiddenCheck_Log = False
  • 2011/01/21 v0.16:
    • 新增檢查網路是否連線,確定連線後才載入「悠閒農夫」,檢查方式為 ping www.facebook.com 是否成功(感謝網友小芊的 idea)
    • 不想檢查網路是否連線的人,可以找尋「$WaittingNetwork = True」,然後修改為「$WaittingNetwork = False
  • 2011/01/17 v0.15:
    • 新增檢查工作中「帳號被鎖定」的事件,發現時,會每隔一分鐘自動重新工作
    • 取消 0.14 beta1、0.14 beta2 的功能(想用的人仍然可修改後使用)
    • 不想將悠閒農夫最小化的人,可以找尋「$MinimalLeisurelyPlanter = True」,然後修改為「$MinimalLeisurelyPlanter = False
  • 2011/01/08 v0.14 beta2:
    • 目前是設定為 90秒內做超過 80個動作,然後休息1分鐘後才重新啟動
    • 動作包含:
      • 幫農友澆水、除草、殺蟲(失敗也算一次)
      • 偷農作物、生產型動物(失敗也算一次)
      • 對自己農田施肥、澆水、除草、殺蟲(失敗也算一次)
      • 收獲自己農田、動物
      • 鏟田
      • 在自己農田種農作物
      • 餵自己的動物
      • 買物品(肥料、飼料)
      • 挖磺
  • 2011/01/06 v0.14 beta1:
    • 新增檢查在一定時間內做了太多的動作會先結束「悠閒農夫」(目前是設定為 30秒內做超過 35個動作),然後休息2分鐘後才重新啟動
    • 動作包含:
      • 幫農友澆水、除草、殺蟲(失敗也算一次)
      • 偷農作物、生產型動物(成功才算一次)
      • 對自己農田澆水、除草、殺蟲(失敗也算一次)
      • 收獲自己農田、動物
      • 鏟田
      • 在自己農田種農作物
      • 餵自己的動物
  • 2011/01/06 v0.13:
    • 新增一種偵測「LeisurelyPlanter.exe」當掉的判斷(感謝網友 dermin 提供)。
    • 修改定時器的寫法。
  • 2011/01/03 v0.12:
    • 新增二種偵測「LeisurelyPlanter.exe」錯誤視窗的判斷(感謝網友 dermin 提供)。
      • 其中一個是遇到『載入農場資料失敗!(1029:has been forbidden!)是否要重試?』時,會隔兩分鐘再重試。
    • 新增一種偵測「LeisurelyPlanter.exe」當掉的判斷(感謝網友 dermin 提供)。
  • 2011/01/03 v0.11:
    • 新增一種偵測「LeisurelyPlanter.exe」當掉的判斷(感謝網友 prefessor 提供)。
    • 更改定時器的寫法。
      • 原本的寫法,在遇到「悠閒農夫」無回應時,也會導至本程式無回應。
  • 2010/12/31 v0.10:
    • 新增在 Win 7 偵測「LeisurelyPlanter.exe」當掉的判斷(感謝網友 listeria 提供)。
  • 2010/12/28 v0.9:
    • 去掉自動修改為全部不偷的設定。
    • 新增一種偵測「LeisurelyPlanter.exe」當掉的判斷。
  • 2010/11/19 v0.8:修改偵測無回應的判斷邏輯

2010年2月5日 星期五

開心農場滑鼠連點小工具

有鑑於有人因為玩開心農場太努力而導至手受傷,
所以提供滑鼠連點的程式,玩遊戲就是要玩的開心嘛!

以後玩開心農場時,就可以大大地減少點擊滑鼠的次數了。

一、使用畫面:
除草時:(有人可以點這麼快嗎?)
http://img16.yfrog.com/i/weeding.png/

收成時:
http://img41.yfrog.com/i/noharvest.png/

二、適用範圍:
  • 農地多要除草
  • 農地多要除蟲
  • 農地多要播種
  • 農地多要施肥
  • 農地多要翻地
  • 農地多要收成
三、本程式是以 AutoIt v3 開發的小工具:
可以到
這裡 http://www.fileserve.com/list/PfXpaWN 下載,(如何下載:請參考這裡
  • MouseClick.au3(原始程式)
  • MouseClick.exe(執行檔)
擔心有病毒或惡意程式的人,可先下載、安裝 AutoIt v3 後,
再直接執行原始程式
MouseClick.au3,就可以安心了。

0.1版程式碼:
Dim $interval = 200 ;點擊滑鼠,時間間隔
Dim $isLoop = 0

HotKeySet("{F5}", "StartClick")
HotKeySet("{F6}", "EndClick")
HotKeySet("{F10}", "Terminate")

While 1
Sleep(60000)
WEnd

Func Terminate()
Exit 0
EndFunc

Func StartClick()
$isLoop = 1
While $isLoop
MouseClick("main")
Sleep($interval)
WEnd
EndFunc

Func EndClick()
$isLoop = 0
EndFunc


四、使用方式:
  • 執行程式(若要執行原始程式,則需先安裝 AutoIt v3
  • 按F7開始滑鼠自動連續點擊,並移動滑鼠到農地上要除草(施肥、播種…)的地方
  • 按F8停止滑鼠自動連續點擊
  • 按F10結束程式
五、注意事項:
  • 請小心使用,可能會有以下副作用:
    • 只想灑一次肥料,結果變成二次
    • 只想幫朋友除草,結果變成偷作物(新版的才會)
  • 如有因為使用本程式而造成損失,請自行負責

六、版本歷史:
  • 0.2(2010/02/06)
    • 變更熱鍵,由於為F5為網頁更新之用,容易誤用
    • 修正不必要的滑鼠拖拉,當滑鼠移動時,由於快速的點擊會造成些許的滑鼠拖拉動作
    • 同一定點不會重覆點擊(必須移動一個距離後,才會有滑鼠點擊發生)
  • 0.1(2010/02/05)
    • 滑鼠自動連續點擊最初版

2009年11月22日 星期日

請問如何 批次執行 Notepad的資料修改?

問題來源:

問題內容:
因為工作需要. 每月須要執行45個相同格式的.txt檔(即45次)

檔案由別單位按月提供, 格式為文字檔, 第1列為欄名, 第2列起為資料列約300~500列(不固定列數, 但所有資料皆依時間由小至大排列),

每個檔案每次需要做以下動作
* 保留第1列, 以及檔案最後4列(最近4期資料), 其他列刪除.
* 另存該檔案

請問一下批次檔如何寫? (假設原始檔案 file01.txt, file02.txt, ..., file45.txt)
請教高手..

問題答案:
擔心複製後貼上會出錯?可以直接下載已寫好的檔案,這裡下載,(如何下載:請參考這裡

使用方法:
NextMonth    c:\2009-11   c:\2009-12


[NextMonth.cmd]
@echo off
setLocal ENABLEEXTENSIONS

if $%1$ == $$ goto showUsage
if $%2$ == $$ goto showUsage
if not exist %1 (
dir /b %1
echo.
goto showUsage
)

if not exist %2 md %2

for %%F in (%1\*.txt) do (
head -1 %%F > %2\%%~nxF
tail -4 %%F >> %2\%%~nxF
)

goto end

:showUsage
echo Create Next Month Report
echo =====================================================================================
echo Usage:
echo.
echo %0 [drive:]this_month_report_path [drive:]next_month_report_path
echo.

:end
endlocal

補充說明:
「head.exe」、「tail.exe」原本是 unix 上的指令,現在有善心人士把它們移植到 Windows 平台上,您可以在「NextMonth.zip」中找到,或者到這下載:http://sourceforge.net/projects/unxutils/


LinkWithin

Blog Widget by LinkWithin