PDA

Показать полную графическую версию : [решено] WinSetState, @SW_NORMAL - как сбросить "во весь экран"


semiono
18-08-2010, 19:20
ShellExecute(@ProgramFilesDir & "\WinHex\winhex.exe", $CmdLineRaw)
TraySetIcon("warning")
Sleep(100)

WinWait('[Class:WHXMDI0]')
WinMove('[Class:WHXMDI0]', '', 0, 24, @DesktopWidth, @DesktopHeight-52, 1)
WinMove('[Class:WHXMDI0]', '', 0, 24, @DesktopWidth, @DesktopHeight-52, 1) ; дублирование для усиления :-)
WinMove('[Class:WHXMDI0]', '', 0, 24, @DesktopWidth, @DesktopHeight-52, 1)
WinMove('[Class:WHXMDI0]', '', 0, 24, @DesktopWidth, @DesktopHeight-52, 1)

У меня проблема, думал достаточно будет выровнить окно, но прога установлена "во весь экран" по умолчанию,
а настройки храняться в WinHex Process.cfg в неимоверном формате.

Я пытался работать с WinSetState(), но в отличае от WinMove() который исполняется тихо, эта функция почему-то
открывает окно во весь экран, а потом уже востанваливает его обычно открытым, причём при каждом запуске.
Хотя я догадываюсь, видимо это настройка в "WinHex Process.cfg" не запоминается, хотя тоже не понятно почему,
аттрибут read only на файле не установлен.

И почему нету нормального @SW_NORMAL, так как смысл @SW_RESTORE до меня не очень доходит?

FlatX007
18-08-2010, 19:29
Есть ещё куча макро

@SW_SHOWMAXIMIZED
@SW_SHOWNORMAL
@SW_SHOWDEFAULT
@SW_SHOWNOACTIVATE
@SW_SHOWNA

и др ...




© OSzone.net 2001-2012