[問題] 改用64bit win7後原vba程式出現錯誤

作者: writeman (小莊)   2014-06-12 14:56:02
之前在xp office2003上寫了一個excel VBA
可以使用ie去點連結後另存新檔
在另存新檔的畫面可以去改檔名
部份程式如下
hcombox32 = FindWindowEx(hWnd, 0, "ComboBoxEx32", vbNullString)
hcombox = FindWindowEx(hcombox32, 0, "ComboBox", "")
hedit = FindWindowEx(hcombox, 0, "Edit", "")
SendMessageByString hedit, WM_SETTEXT, Len(fname), fname
hbtn = FindWindowEx(hWnd, 0, vbNullString, "儲存(&S)")
而現在改用win7 64bit office 2010後
程式執行到這段程式就會出錯
hcombox32 = FindWindowEx(hWnd, 0, "ComboBoxEx32", vbNullString)
請高手們指點一下
謝謝
作者: soyoso (我是耀宗)   2014-06-12 15:19:00
上面是否也有寫Private Declare Function FindWindowEx再Declare和Function中間加PtrSafe試試
作者: writeman (小莊)   2014-06-14 11:50:00
@soyoso 有改過宣告,執行時也沒有出現錯誤訊息,但FindWindowEx就是抓不到資料,傳回值hcombox32是0
作者: soyoso (我是耀宗)   2014-06-14 18:40:00
將hcombox32,hcombox用FindWindowEx(hwnd, 0, "Address Band Root", vbNullString)來取代再將取得的hwnd帶入FindWindowEx(hwnd, 0, "Edit", "")試試,到hedit有取到值,但不知是否是原po要的
作者: writeman (小莊)   2014-06-15 23:58:00
請教soyoso大大,那個 Address Band Root 是什麼意思?
作者: soyoso (我是耀宗)   2014-06-16 01:20:00
網址列,請看連結 http://goo.gl/5yQI3l

Links booklink

Contact Us: admin [ a t ] ucptt.com