With the following code ist works in OpenSave-Dialogs for Windows7-dialogs and XP-dialogs.
Code:
FavMenu_IsOpenSave(dlg)
{
global FavMenu_dlgInput, FavMenu_dlgType, FavMenu_msctls_progress32, bread
FavMenu_dlgType =
toolbar := FavMenu_FindWindowExID(dlg, "ToolbarWindow32", 0x440) ;windows XP
if (toolbar = "0")
toolbar := FavMenu_FindWindowExID(dlg, "ToolbarWindow32", 0x001) ;windows 2k
; Windows 7 OpenSave
rebar := FavMenu_FindWindowExID(dlg, "WorkerW", 0)
rebar := FavMenu_FindWindowExID(rebar, "ReBarWindow32", 0)
rebar := FavMenu_FindWindowExID(rebar, "Address Band Root", 0)
rebar := FavMenu_FindWindowExID(rebar, "msctls_progress32", 0)
FavMenu_msctls_progress32 := rebar
rebar := FavMenu_FindWindowExID(rebar, "Breadcrumb Parent", 0)
bread := rebar
rebar := FavMenu_FindWindowExID(rebar, "ToolbarWindow32", 0)
combo := FavMenu_FindWindowExID(dlg, "ComboBoxEx32", 0x47C) ; comboboxex field
button := FavMenu_FindWindowExID(dlg, "Button", 0x001) ; second button
edit := FavMenu_FindWindowExID(dlg, "Edit", 0x480) ; edit field
if ((rebar || (toolbar && (combo || edit))) && button)
{
FavMenu_dlgInput := combo + edit
if rebar
FavMenu_dlgInput := rebar
FavMenu_dlgType := "OpenSave"
return 1
}
return FavMenu_IsOffice03(dlg)
}
Code:
FavMenu_DialogSetPath_OS(path)
{
local d_text, d_f
WinWaitActive ahk_id %FavMenu_dlgHWND%
ControlGetFocus d_f, ahk_id %FavMenu_dlgHWND%
ControlFocus, , ahk_id %FavMenu_dlgInput%
Sleep 20
if FavMenu_msctls_progress32
{
ControlSend, ,{Space}, ahk_id %FavMenu_dlgInput%
Sleep 20
rebar := FavMenu_FindWindowExID(FavMenu_msctls_progress32, "ComboBoxEx32", 0)
rebar := FavMenu_FindWindowExID(rebar, "ComboBox", 0)
rebar := FavMenu_FindWindowExID(rebar, "Edit", 0)
if rebar
{
Sleep 20
ControlSetText, , %path%, ahk_id %rebar%
ControlSend, ,{ENTER}, ahk_id %rebar%
}
}
else
{
ControlGetText d_text, ,ahk_id %FavMenu_dlgInput%
ControlSetText, , %path%, ahk_id %FavMenu_dlgInput%
ControlSend, ,{ENTER}, ahk_id %FavMenu_dlgInput%
}
Sleep 20
if (FavMenu_dlgType = "Office03")
ControlFocus %d_f%, ahk_id %FavMenu_dlgHWND%
}
For the Explorer similar changes have to be done in subroutine FavMenu_GetExplorerInput()