아래와 같이 하면 되긴하는데 정상적으로 되는지는 잘모르겠습니다...
스크립트를 통해 정상적으로 접근하는 방식이 아닌 원도우 핸들을 가지고 메시지를 보내는 식으로 접근하는 방식입니다...
방법이 복잡하고 깔금하지 않지만 이런식으로라도 접근해야 한다면 해볼만 하네요...^^
--------------------------------------------------------------
global useCache = true -- switch this variable
global prefsDialog_hwnd = undefined
global WM_COMMAND = 0x111 -- Windows Message: Command
global BN_CLICKED = 0
global BM_SETCHECK = 241 -- checkbutton toggle message ID
fn checkDialog = (
local hwnd = dialogMonitorOps.getWindowHandle()
local dialogTitle = uiAccessor.getWindowText hwnd
if (dialogTitle == "Preference Settings") then (
prefsDialog_hwnd = hwnd
local dialogChildren = windows.getChildrenHWND hwnd
local btn_chooseDriver = undefined
for dialogChild in dialogChildren do (
if (dialogChild[5] == "Configure Driver...") then (
btn_chooseDriver = dialogChild
exit
)
)
local btn_chooseDriver_hwnd = btn_chooseDriver[1]
UIAccessor.pressButton btn_chooseDriver_hwnd
)
if (dialogTitle == "Configure Direct3D") then (
local dialogChildren = windows.getChildrenHWND hwnd -- 자식 원도우 핸들 알아내기
local chk_cache = undefined
local btn1 = undefined, btn2 = undefined
for dialogChild in dialogChildren do (
if (dialogChild[5] == "Use Cached D3DXMeshes") then (
chk_cache = dialogChild
)
if dialogChild[5] == "256" do
(
btn1 = dialogChild
format "%\n" dialogChild
)
if dialogChild[5] == "512" do
(
btn2 = dialogChild
format "%\n" dialogChild
)
)
local chk_cache_hwnd = chk_cache[1]
local chk_cache_id = UIAccessor.GetWindowResourceID chk_cache_hwnd
windows.sendMessage chk_cache_hwnd BM_SETCHECK (if (useCache) then ( 1 ) else ( 0 )) 0
windows.sendMessage hwnd WM_COMMAND ((bit.shift BN_CLICKED 16) + chk_cache_id) chk_cache_hwnd
windows.sendMessage btn1[1] BM_SETCHECK 0 0 -- "256" 해제
windows.sendMessage btn2[1] BM_SETCHECK 1 0 -- "512" 클릭
UIAccessor.pressButtonByName hwnd "OK"
UIAccessor.pressButtonByName prefsDialog_hwnd "OK"
)
true
)
fn setUseCache state = (
useCache = state
dialogMonitorOps.enabled = true
dialogMonitorOps.interactive = false
dialogMonitorOps.unregisterNotification id:#setD3DCache
dialogMonitorOps.registerNotification checkDialog id:#setD3DCache
max file preferences
dialogMonitorOps.unregisterNotification id:#setD3DCache
dialogMonitorOps.enabled = false
)
setUseCache true
첫댓글 와우 정말 보구만 따라하는 저로썬 ... 항상 놀라고 가네요... 감사합니다...
잘되나 했었는데 계속해보니 적용이 되었나 안되었다 하는거 같은데요..
혹시...128 256 512버튼은 background textured size에도 있고, Download Texture Size에도 있어서 그거에 따라서 오동작하는거 일까요?
적용이 잘안되면 Map in Viewport 버튼 껐다가 켰다가 눌러보세요...
앗 네에~ 정말정말 감사합니다~~~
@.@ 뭔 내용인지 봐도 모르겠네요 ...