VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

OPEN EXCEL FILE

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
aforangel



註冊時間: 2010-05-24
文章: 117


第 1 樓

發表發表於: 星期三 四月 15, 2015 4:46 pm    文章主題: OPEN EXCEL FILE 引言回覆

上司有一個EXCEL 2013 FILE, 之前設定了密碼, 但忘了, 公司說叫我去買一個破解EXCEL密碼的程式回來試破解, 我忽然想, 可否用VFP試試寫一個程式去做

問題一:
先假設密碼是由A-z, 0-9組合而成, 字數為1-8位數, 個迴圈應該怎去寫

問題二:
lreturn = eole.Workbooks.Open(〃c:\temp\lock.xls〃)
嘗試的密碼要放在那裡, lreturn又會傳回什麼代表開啟成功
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 2 樓

發表發表於: 星期三 四月 15, 2015 5:30 pm    文章主題: 引言回覆

http://vfp.sunyear.com.tw/viewtopic.php?t=6502&sid=55a0158c5c3fabfbce993af012a7086f
參考這個

至於迴圈,可以把A-Z,a-z,0-9全部加起來成為一個字串,再依序加起來成為你想要的
至於密碼長度就看自己的決定了
回頂端
檢視會員個人資料 發送私人訊息
aforangel



註冊時間: 2010-05-24
文章: 117


第 3 樓

發表發表於: 星期四 四月 16, 2015 9:43 am    文章主題: 引言回覆

迴圈那裡有點亂, 可以詳細一點說明嗎?
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 4 樓

發表發表於: 星期四 四月 16, 2015 11:46 am    文章主題: 引言回覆

密碼設定者慢慢試比一個一個猜要有效率,我建議不要用程式去猜, 很花時間,我用ipad 字打起來很辛苦,
以三碼爲例,
Mkey="ABCDEFGHI....abc deft....012..." && total 62 Chris
For a1=1 to 62
Fro a2=1 to 62
Fro a3=1 to 62
Mpass=substr(mkey,a1,1)+substr(mkey,a2,1)+substr(mkey,a3,1)
***password guest here. Do guest with mpass
Next a3
Next a2
Next a1


bx1166 在 星期四 四月 16, 2015 2:02 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
aforangel



註冊時間: 2010-05-24
文章: 117


第 5 樓

發表發表於: 星期四 四月 16, 2015 12:17 pm    文章主題: 引言回覆

我本來想說, 如果這個程式試驗成功, 將來就算任何一個excel檔案忘了密碼也可以拿來用, 現在雖然說上司還在, 可以去憑記憶嘗試, 但如果是一個已離職同事的檔案有設密碼, 就要在毫無頭緒下去用程式破解了, 但想一想....

密碼1個位: 62個可能性
密碼2個位: 62x62 = 3844可能性
密碼3個位: 62x62x62 = 238328可能性
密碼4個位: 62x62x62x62 = 14776336可能性
密碼5個位: 62x62x62x62x62 = 916132832可能性
密碼6個位: 62x62x62x62x62x62 = ....天文數字了, 莫說7個位或8個位, 而且還只是假設密碼只用上0-9,A-Z,a-z...如果還有標點附號...
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 6 樓

發表發表於: 星期四 四月 16, 2015 2:03 pm    文章主題: 引言回覆

萬一是九或十碼呢?
回頂端
檢視會員個人資料 發送私人訊息
aforangel



註冊時間: 2010-05-24
文章: 117


第 7 樓

發表發表於: 星期四 四月 16, 2015 4:34 pm    文章主題: 引言回覆

xx=GETOBJECT("","Excel.Application")
sh=xx.application
lpassword = "abc123"
nK = sh.Workbooks.Open(alltrim(.text17.value),.f.,.f., ,lpassword)
sh.activeworkbook.saved=.t. &&放棄存檔
sh.workbooks.close &&關閉檔案
sh.quit &&結束excel


nK = sh.Workbooks.Open(alltrim(.text17.value),.f.,.f., ,lpassword)
如果lpassword正確, EXCEL檔案順利開啟, 就正常地RUN下去,
但如果lpassword錯了, EXCEL檔案開不到, 就出現錯誤, 停在這行, 有辦法就算開啟失敗也繼續下一行放棄存檔嗎? 另nK這個變數, 會在成功開啟或失敗時分別傳回什麼值?
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 8 樓

發表發表於: 星期四 四月 16, 2015 6:25 pm    文章主題: 引言回覆

加個

? nk
wait

看看nk 等於多少
回頂端
檢視會員個人資料 發送私人訊息
perry



註冊時間: 2014-07-20
文章: 203


第 9 樓

發表發表於: 星期四 四月 16, 2015 9:35 pm    文章主題: 引言回覆

當您確定程式沒問題,再加就好!!
我都用這個來避免版本不同,部份excel指令不相容.

on error do errpass
.
.
.
sh.quit &&結束excel
on error

proc errpass
**return by pass error line and run next line
retu
回頂端
檢視會員個人資料 發送私人訊息
aforangel



註冊時間: 2010-05-24
文章: 117


第 10 樓

發表發表於: 星期五 四月 17, 2015 10:06 am    文章主題: 引言回覆

[quote="perry"]當您確定程式沒問題,再加就好!!
我都用這個來避免版本不同,部份excel指令不相容.

on error do errpass
.
.
.
sh.quit &&結束excel
on error

proc errpass
**return by pass error line and run next line
retu[/quote]
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 11 樓

發表發表於: 星期三 四月 22, 2015 10:02 am    文章主題: 引言回覆

*function chk_rload
*lpara screen_caption
declare integer FindWindow in Win32API string class_name, string window_title
if FindWindow(null,screen_caption)>0
messagebox(" 此程式已在執行中 ",0+16+0,"警告 重複執行")
quit
endif

* r = FindWindowLike(hWnds(),0,"*","*"、 Null)
* 傳回: 所有可用的視窗。
* r = FindWindowLike(hWnds(),0,"* Excel *","*"、 Null)
* 傳回: 所有的視窗 「 excel 」 中的視窗文字。
* r = FindWindowLike(hWnds(),0,「 Microsoft Excel *","XLMAIN"Null)

* 傳回: 視窗文字的所有視窗的都開始與 「 Microsoft Excel],而且其中包含的類別名稱"XLMAIN"
* r = FindWindowLike(hWnds(),Form1.Hwnd,"*","*","& HA1")

* 傳回: Id 為十六進位 A1 的 [Form1] 視窗的子視窗。
* r = FindWindowLike(hWnds(),Form1.Hwnd,"*","*",2)

* 傳回: Id 為 2 的 [Form1] 視窗的子視窗。
*return .t.
*endfunc

您參考一下, 找出視窗控制碼, 就可以關閉視窗了
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 389


第 12 樓

發表發表於: 星期三 四月 22, 2015 11:24 am    文章主題: 引言回覆

VFP8 可用下面方法判斷是否開啟成功
引言回覆:

先用
TRY
xApp.WorkBooks.open(檔案) && 可能沒設密碼
*開啟成功
CATCH
*開啟失敗
ENDTRY


失敗時,再用各種密碼組合測試
TRY
xApp.WorkBooks.open(檔案,,,,密碼)
*開啟成功
CATCH
*開啟失敗
ENDTRY
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作