Код (Text): format PE GUI 5.0 include 'c:\a\apps\fasm\include\win32ax.inc' section '.code' code readable executable start: invoke ShellExecute,0,0,"rundll32.exe","Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:""%systemroot%\Resources\Themes\Blackbox.theme",0,0 invoke ExitProcess,0 .end start Пожалуйста помогите довести до ума. Как в фасме указать в данном случае %systemroot% И в этом коде ещё надоб кнопку "OK" нажать, тоже надо. Или альтернативный код если это можно более красиво написать?
Semiono Один может получить директорию с виндой используя функцию GetWindowsDirectory(buffer, BufferLength)... Существует ли документированный способ применить определённую тему?
У меня только скрипты есть для AutoIt и JavaScript движков Но захотелось это в асм посмотреть... хотяб masm32 код... имхо меньше коду будет наверное. Вообче написалбы ктнибудь консольный загрузчик тем, было бы полезно! Я то не потяну наверное. Зато благо что есть хоть консольный тулс изменять разрешение экрана, где-то я видел. Код (Text): Dim $var1 = '"' & @WindowsDir & '\' ;launch control panel applet to change desktop theme Run(@ComSpec & " /c " & 'rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:' & $var1 & 'resources\themes\windowsclassic.theme"', "", @SW_HIDE) ;wait for Disply Properties window to open, timeout after 3 sec WinWait("Display Properties", "",3) ;send Enter to open applet Send("{ENTER}") ;Exit application Exit Код (Text): // create shell object objShell = new ActiveXObject("WScript.Shell"); // start themes applet, load desired theme, and activate this window objShell.Run('rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"C:\\zzz\\Resources\\Themes\\Windows Classic.theme"',1); // wait for themes window WScript.Sleep(1600); // send the 'enter' key to accept this theme objShell.Sendkeys("{ENTER}");