|
リストボックスの、あるファイルにフォーカスを当てる時 ファイル数が多くなり、ファイルがウィンドウの可視内に収まらなくなると うまくいかなくなります。(ちなみに XPは、CLK_TREEVIEW で、できます)
p= "C:\UWSC" f= "xxx.uws"
id= exec("Explorer.exe "+ p) clkitem(id, f, CLK_LEFTCLK)
|
No.1071 2021/01/12(Tue) 06:42:22
|
☆ Re: Explorer について / Rayna |
|
|
|
>>1071 Roppy さん
// ・explorer は Exec しても 開いたウインドウが id として獲得できない場合があります // ・操作によってはOS毎に方法を変える必要性があります(UIの操作は特に)
// XP -> Vista で新しいデスクトップの描写システムが追加され(DWM, Aeroとか) // 7 -> 8 はそこまでUWSCの挙動は変わらないですが DWM が強制されたりと仕様が変わっているので厳密なことをする場合は注意が必要です // 8.1 -> 10 はUIが一新されたので 同じスクリプトでも動作の違いが顕著になります
// 体感ですが | を 設計や仕様変更を考慮する壁 だとすると // 2000, XP || Vista, 7 | 8, 8.1 || 10 // こんなかんじだと思います
///////////////////////////////// // UWSC(Free版) のディレクトリから explorer を使って Readme.txt を開くスクリプト
Dim f = "Readme.txt" Dim p, id
Select KindOfOs() Case 13 // Windows XP // Test OSBuild:2600 p = Trim(DosCmd("Echo %UserProfile%\デスクトップ\UWSCF\5.302")) id = Exec("Explorer.exe <#DBL>" + p + "<#DBL>") // -1 // ID取れてない id = GetId(GET_ACTIVE_WIN) // とりあえず↑で開かれたアクティブウインドウから獲得
Print ClkItem(id, f, CLK_LISTVIEW) // True Case 30 // Windows 10 // Test OSBuild:19042 p = "C:\Program File\UWSCF" //id = Exec("Explorer.exe <#DBL>" + p + "<#DBL>") // IDは取れているけどExecで開いたウインドウではない // ファイル見えてない問題を解決するために explorer の /select オプションを使ってみる id = Exec("Explorer.exe /select,<#DBL>" + p + "\" + f + "<#DBL>") // -1 // ID取れてない id = GetId(GET_ACTIVE_WIN) // とりあえず↑で開かれたアクティブウインドウから獲得
Print ClkItem(id, f, CLK_LIST Or CLK_DBLCLK) // True SelEnd /////////////////////////////////
// 蛇足 http://codepad.org/tXBtFz7b
|
No.1073 2021/01/12(Tue) 13:18:35
|
|