无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: slore
打印 上一主题 下一主题

[原创] [更新(2022/11/11) ModernUI回归] explorer再见,WinXShell你好!

    [复制链接]
211#
 楼主| 发表于 2020-12-23 19:56:57 | 显示全部楼层
本帖最后由 slore 于 2020-12-23 20:23 编辑
junyee 发表于 2020-12-23 12:39
s 大你好。
关注这个winxshell 很久了.

WinXShell 公开参数一览:

wxs-open:system | 打开我的电脑属性
wxs-open:printers | 打开打印机设置窗口
wxs-open:networkconnections | 打开网络连接设置窗口
wxs-open:devicesandprinters | 打开设备和打印机设置窗口
wxs-open:wifi | 打开无线网络连接界面
wxs-open:volume | 打开音量控制界面

ms-settings:taskbar | 打开任务栏设置界面
ms-settings:dateandtime | 打开时间和日期设置界面ms-settings:display | 打开显示设置界面
ms-settings:personalization | 打开个性化设置界面
ms-settings:network | 打开网络连接设置界面(高版本Windows有效)
-console | 调试窗口
-ui -jcfg XXXXX\YYYY\ZZZ.jcfg | 启动UI组件
-winpe      | Windows PE 环境标识
-code luacode | 执行单行lua代码
-file luafile | 执行lua脚本文件

WinXShell 公开对象一览(-code, -script 时使用):

app 程序对象。
app:info(opt)  | 获取程序信息
app:call(...)  | 调用WinXShell内置函数
app:jcfg(opt)  | 获取jcfg配置文件设定信息
app:print(str) | 打印信息到调试窗口

对象方法参数说明:
app:info(opt)  | 获取程序信息
opt可以指定以下值。
'cmdline'  | 命令行参数(字符串)
'winver'   | Windows版本号(字符串)
'langid’  | 系统语言编号(字符串)
'locale'   | 系统语言名称(字符串)
'path'     | 程序模块路径(字符串)

对象方法参数说明:
app:call(...)  | 调用WinXShell内置函数
... 可指定函数及参数如下。
'getresolutionlist' | 获取可用分辨率列表(字符串)
'cd', path                 | 切换当前工作目录到指定位置
'desktop::updatewallpaper'       | 刷新系统壁纸
'desktop::getwallpaper'          | 获取系统壁纸文件路径
'desktop::setwallpaper', file    | 更改系统壁纸
'volume::mute', 0or1             | 禁音/解除禁音
'volume::ismuted'                | 获取禁音状态
'volume::getlevel'               | 获取当前音量大小
'volume::setlevel', 0to100       | 更改当前音量大小
'volume::getname'                | 获取当前音频设备名称
'gettickcount'                   | 获取系统启动时间(秒单位)
'sleep', imsec                   | 等待imsec毫秒
'play', wavfile                  | 播放WAV格式音频文件
'putenv', var, val               | 设置环境变量
'envstr', str                    | 展开字符串中的环境变量(字符串)
'resstr', resstr                 | 展开字符串中的系统字符串资源
'run', file                      | 启动程序或者文件
'exitcode', code                 | 指定程序的退出码
'exit', code                     | 直接退出程序

--------------------------------------------------------
System 系统对象。
System:GetSettings(key) | 获取系统设定
System:SetSettings(key, val) | 更改系统设定
System:SysColorTheme(mode) | 更改系统颜色主题(mode = 'light' | 'dark')
System:AppsColorTheme(mode) | 更改应用颜色主题(mode = 'light' | 'dark')
System:Reboot() | 重启计算机
System:Shutdown() | 关闭计算机


对象方法参数说明:
System:GetSettings(key) | 获取系统设定
key可以指定以下值。
'AppsColorTheme' | 应用程序颜色主题
'SysColorTheme'  | 系统颜色主题
'ShellColorPrevalence'  | 外壳外观颜色
'WindowColorPrevalence' | 系统外观颜色
'Colors.Transparency'   | 使用透明色

System:SetSettings(key, val) | 更改系统设定
key可以指定以下值。
'ShellColorPrevalence'  | 外壳外观颜色
'WindowColorPrevalence' | 系统外观颜色
'Colors.Transparency'   | 使用透明色

--------------------------------------------------------
Screen 屏幕对象。
Screen:Get(...) | 获取屏幕信息
Screen:GetX() | 获取屏幕分辨率宽度
Screen:GetY() | 获取屏幕分辨率高度
Screen:GetRotation() | 获取屏幕旋转状态
Screen:Disp([w, h]) | 设置屏幕分辨率。不指定宽度和高度时,自动使用最大分辨率。
Screen:DispTest(arr) | 按照指定的分辨率列表逐个尝试设置屏幕分辨率,直到设置成功为止。

--------------------------------------------------------
Taskbar 任务栏对象。
Taskbar:IsReady(sec) | 指定sec秒内判断任务栏是否准备就绪(sec为-1时,直到任务栏准备好为止)
Taskbar:WaitForReady() | 等待任务栏加载完毕(内部调用Taskbar:IsReady(-1)方法)
Taskbar:GetSetting(key) | 获取任务栏设定
Taskbar:SetSetting(key, value, type) | 更改任务栏设定
Taskbar:CombineButtons(value[, update]) | 更改任务栏合并按钮选项(value ='always' | 'auto'), update为0时,不立即生效
Taskbar:UseSmallIcons(value[,update]) | 更改任务栏使用小图标选项(value ='always' | 'auto'), update为0时,不立即生效
Taskbar:AutoHide(value) | 更改任务栏自动隐藏选项(value = 0 | 1)。
Taskbar:Pin(target[, name[, param[, icon[, index[, showcmd]]]]]) | 固定命令到任务栏

--------------------------------------------------------
Startmenu 开始菜单对象。
Startmenu:Pin(target[, name[, param[, icon[, index[, showcmd]]]]]) | 固定命令到开始菜单

--------------------------------------------------------
FolderOptions 文件夹选项对象。
FolderOptions:Get(opt) | 获取文件夹选项。
FolderOptions:Set(opt, val) | 更改文件夹选项。

对象方法参数说明:
opt可以指定以下值。
'ShowAll'          | 显示隐藏文件
'ShowExt'          | 显示隐藏已知文件类型的扩展名
'ShowSuperHidden'  | 显示系统隐藏文件

WinXShell 可使用的库:

Lua5.4内置库: os, math, io等
https://www.lua.org/manual/5.4/

winapi 扩展库
https://github.com/stevedonovan/winapi

WinXShell 公开函数一览(-code, -script 时使用):

HideWindow(class, title) | 隐藏指定窗口。
CloseWindow(class, title) | 关闭指定窗口。
CloseShellWindow() | 关闭外壳窗口(外壳窗口不存在时,将等待外壳窗口出现后再关闭)。
os_ver_info() | 获取 ProductName, CSDVersion 信息(注册表)。
cpu_info() | 获取 CPU 信息(注册表)。
mem_info() | 获取系统可用内存(硬件以外),总内存大小,当前可用内存。
res_str(file, id) | 获取指定字符串资源。
win_copyright() | 获取 Windows 许可证说明。
call_dll(...) | 调用 dll 中的公开函数。
reg_read(key, values) | 读取注册表信息。
reg_write(key, name, value[, type]) | 写入注册表信息。未指定type时, 当作 REG_SZ 类型。
exec(option, cmd) | 执行命令。 option 可指定 /wait - 等待执行命令结束, /hide - 隐藏,/min - 最小化。
link(lnk, target, param, icon, index, showcmd) | 创建快捷方式。
wxsUI(ui[, jcfg[, opt[, app_path]]]) | 打开指定的UI组件。
PinToStartMenu(target[, name[, param[, icon[, index[, showcmd]]]]]) | 别名。固定命令到开始菜单。



点评

S大 有个问题 就是改分辨率后 任务栏位置不跟着刷新 有啥办法  详情 回复 发表于 2021-1-6 21:57
赞 ,不错 !  发表于 2021-1-6 21:55
感谢整理。 昨天我还费劲 枚举函数。。 ``` app:print('\r\n---------'); tb=""; function list(t) for k, v in pairs(t) do tb= tb .. '\n' .. tostring(k) .. "\ttype:" .. tostring(type(v));  详情 回复 发表于 2020-12-24 09:49
回复

使用道具 举报

212#
 楼主| 发表于 2021-1-6 21:58:45 | 显示全部楼层
23456 发表于 2021-1-6 21:57
S大  有个问题 就是改分辨率后 任务栏位置不跟着刷新  有啥办法

右键 显示设置,用WinXShell设置分辨率。或者-daemon模式启动WinXShell,自动调整桌面。

点评

[attachimg]472377[/attachimg] 右边的是我在用的 11月11随W2制作的 左边的是在你官网的蓝奏 下载的1月1日版本 有区别吗  详情 回复 发表于 2021-1-7 17:21
我用的是这Screen:DispTest 但是 有时候设置分辨率了 任务栏位置没有变  详情 回复 发表于 2021-1-7 14:21
回复

使用道具 举报

213#
 楼主| 发表于 2021-2-17 11:39:57 | 显示全部楼层
本帖最后由 slore 于 2021-2-17 11:42 编辑
yxc51 发表于 2021-2-16 23:09
具体怎么使用呢?比如我想用winxshell调整屏幕分辨率,桌面右键菜单调出调节界面,怎么操作呢?

方法1 接管系统本身菜单:
1.导入系统本身的右键桌面菜单的注册表。(如果没有  显示设置)

2.   启动WinXShell.exe -daemon

方法2 直接调用:
WinXShell.exe ms-settings:display
可以做成快捷方式,也可以做成热键命令,可以任意注册表菜单调用。
回复

使用道具 举报

214#
 楼主| 发表于 2021-2-17 11:44:43 | 显示全部楼层
本帖最后由 slore 于 2021-4-29 00:47 编辑
yxc51 发表于 2021-2-17 11:01
楼主能否发一个针对小白的winxshell使用说明?

我下次更新的时候,里面的UI_Test.bat和Lua_Test.bat写详细些。

#786 楼你可以看看。

RC4.4  (2020-10-10)
改善: lua_helper扩展。将winapi和lua扩展库编译到应用程序本身。
     减小程序体积,简化结构,仅应用程序就可支持运行lua代码。

强化: UI组件。
  UI_WIFI          支持连接隐藏网络
  UI_WIFI          支持多无线网卡进行网络连接
  UI_Calendar   支持显示农历信息
  UI_Settings    支持修改显示DPI

RC4.5  (2021-04-04)
新增: 任务栏窗口预览功能(thumbnail)。
改进: lua接口
  可使用Desktop对象,可通过此对象更改壁纸,实时改变桌面图标大小,
  布局等表示样式,可直接刷新桌面。
改进: UI组件
  UI_Settings   支持设置屏幕亮度
  UI_SystemInfo 支持读取OEM信息
  UI_SystemInfo 修复无法正确显示机器名的问题
  UI_SystemInfo 调整界面字体,布局等细节
  UI_WIFI       可直接输入回车键进行连接
  UI_WIFI      【网络和Internet 设置】可打开【网络连接】页面(更改适配器选项)
  UI_WIFI       修复启动窗口闪烁问题
  UI_WIFI       修复在外壳启动前运行时,弹出连接窗口会覆盖任务栏的问题
  UI_WIFI       WIFI列表按照信号强度显示

将支持的Lua函数和对象信息书写LUA_TEST.bat测试脚本(UTF8编码,中文说明)。



RC4.4 (2020-10-10)
Improved: the lua_helper extension.
    Compile winapi.dll and lua extension helpers into the application itself.
    Reduce the size of the program, simplify the structure, can support running Lua code with the single application file only.
Improved: UI components.
    UI_WIFI        supports connection to hidden network
                        supports multiple wireless network adapters for network connection
    UI_Calendar  supports lunar calendar for Chinese OS
    UI_Settings   supports DPI display setting

RC4.5 (2021-04-04)
Added: task thumbnail feature.
Improved: the lua interface.
    Add the Desktop object, through which you can change the wallpaper, change the size of the desktop icons, the layout and other presentation styles in real time,
    and refresh the desktop directly.
Improved: UI components
     UI_Settings    supports screen brightness setting
     UI_SystemInfo  supports reading OEM information
     UI_SystemInfo  fix the issue that the computer name cannot be displayed correctly
     UI_SystemInfo  adjust interface font, layout and other details
     UI_WIFI        add the enter key to connect
     UI_WIFI        [network and Internet settings] link will open [Network connection] control panel window(change adapter options)
     UI_WIFI        fix the flickering problem of the startup window
     UI_WIFI        fix the problem that the connection window will cover the taskbar when the this is running before the shell starts.
     UI_WIFI        show wifi ssid list by signal strength

Write the supported Lua functions and objects into the LUA_TEST.bat test script (UTF-8 encoding, in Chinese).


回复

使用道具 举报

215#
 楼主| 发表于 2021-3-7 14:03:08 | 显示全部楼层
sairen139 发表于 2021-3-7 10:13
请教slore大神,如果c盘程序文件夹下面有个bootice.exe,怎么在进桌pe面之前就用语句设置好给这个bootice.e ...

WinXShell.lua
中使用link命令直接用lua创建快捷方式,
function onfirstrun()
  ...

  link([[X:\Users\Default\Desktop\BOOTICE.lnk]], [[C:\bootice.exe]])
end

或者, 改成用exec('pecmd.exe load X:\\mytools.ini') 加载pecmd的外置配置。

点评

好的、感谢slore大神  详情 回复 发表于 2021-3-7 14:11
回复

使用道具 举报

216#
 楼主| 发表于 2021-5-7 19:44:55 | 显示全部楼层
lps4290 发表于 2021-5-7 19:35
function onclick_startmenu_reboot()
  -- restart computer directly
  System:Reboot()

System::Shutdown() 你多写了一个冒号,导致WinXShell.lua脚本解析错误,所以右键属性的系统接管失效了。

点评

大意了,这么明显我都没注意到改了之后舒畅了。 不过翻看了老大WimBuilder2中的WinXShell.lua,发现这个坑是祖传的,老大有空时改改吧?  详情 回复 发表于 2021-5-11 19:47
回复

使用道具 举报

217#
 楼主| 发表于 2021-5-11 21:45:14 | 显示全部楼层
ellx98 发表于 2021-5-11 18:04
求助    我想把UI_Shutdown中的关机和重启放到右键,但换了新版的WinXShell后,效果没了,弹不出菜单来,旧 ...

新版本做出了UI_Shutdown做成了压缩包。

方法1:解压UI_Shutdown.zip

方法2:直接调用zip包,会自动解压到临时目录(PE下使用,正常系统建议解压)
winxshell -ui -jcfg UI_Shutdown.zip\\main.jcfg

方法3:使用wxsUI函数调用,自己判断调用UI文件夹还是UI的ZIP包
winxshell -code wxsUI('UI_Shutdown')

点评

不是很懂,按你的方法改了,文件放到windows下,但还是不起作用,弹不出关机的画面来,一点反应都没有; 我的是windows10 20H2 x64系统,Winxshell我就喜欢这个关机功能,感觉特殊方便,麻烦你帮忙再看下,新版本不  详情 回复 发表于 2021-5-12 09:27
回复

使用道具 举报

218#
 楼主| 发表于 2021-5-12 21:44:07 | 显示全部楼层
ellx98 发表于 2021-5-12 09:27
不是很懂,按你的方法改了,文件放到windows下,但还是不起作用,弹不出关机的画面来,一点反应都没有;
...

winxshell -code wxsUI('UI_Shutdown') 没成功?

新版本是下面的路径,少了wxsUI。
WinXShell\wxsUI\
                UI_Shutdown.zip

winxshell -ui -jcfg wxsUI\UI_Shutdown.zip\main.jcfg

点评

谢谢,已经调试成功。  详情 回复 发表于 2021-5-13 14:41
回复

使用道具 举报

219#
 楼主| 发表于 2021-6-22 12:13:11 | 显示全部楼层
永恒心锁 发表于 2021-6-22 09:40
这个不开发更新了吗?

随WimBuilder2有更新,主要更新Lua脚本接口。
2021/06/06版本。外壳新增了任务栏预览显示。
改动不大。首页准备更新的时候,论坛出错编辑了更改历史没了,就懒的写了。

WimBuilder2的网盘有下载。

回头把更新历史写好了。再发布更新下页面。
回复

使用道具 举报

220#
 楼主| 发表于 2021-6-30 21:15:04 | 显示全部楼层
本帖最后由 slore 于 2021-6-30 21:16 编辑
junyee 发表于 2021-6-30 19:56
楼主你好。

是否可以考虑出一个 外挂 lua53.dll 的版本?

静态编译lua53.lib到你的c的lib,生成dll文件,放到

LuaLibs\

你就可以直接 require 引用你的C库。

-console -code "你的代码;app:sleep(50000)"就可以暂停,新版本考虑做一个输出log文件,用于调试和开发。

点评

当lua 脚本错误,不一定是语法错误。 如 a=require("a") 如果 a.dll 不存在或错误时,用 lua53.exe 执行是会报错的。 而用 winxshell -script 就是一闪而过,即使在 cmd.exe 中执行也是弹出另一个 console 一  详情 回复 发表于 2021-7-1 20:20
回复

使用道具 举报

221#
 楼主| 发表于 2021-7-1 21:55:18 | 显示全部楼层
本帖最后由 slore 于 2021-7-1 21:57 编辑
junyee 发表于 2021-7-1 20:20
当lua 脚本错误,不一定是语法错误。

如 a=require("a")

静态编译可以不要 lua53.dll,不过体积增大。

那就直接 lua53.dll 放到 WinXShell 目录就可以,官方的dll就直接能用。

WinXShell是Windows 程序不是 Console程序,所以脚本错误不好捕捉。直接的 print标准输出的信息没有的。
我自己是 luac53.exe测试lua代码,好了才放到 WinXShell中。

自己写lua脚本,C库扩展的人很少,这款没特别处理。

WinXShell也就是连接了lua53.lib,直接 loadfile,  dofile执行lua代码。没做什么干预。

点评

今天又测试了下, 用 gcc 编译的静态 test.dll ,在 winxshell 同样报错。 [attachimg]482686[/attachimg] 而用 gcc 编译的 lua53.exe 和 `https://sourceforge.net/projects/luabinaries/files/5.3/Tools%20Ex  详情 回复 发表于 2021-7-2 10:14
回复

使用道具 举报

222#
 楼主| 发表于 2021-7-2 11:18:42 | 显示全部楼层
junyee 发表于 2021-7-2 10:14
今天又测试了下,
用 gcc 编译的静态 test.dll ,在 winxshell 同样报错。

我之前直接lua53.dll放到外面,第三方的dll可以使用。
不用编译不连接lua53.lib的WinXShell.exe外置版。


你给个简单的test.dll的演示代码吧。

我用VS编译没有问题。简单的函数用TCC也编译过。
没用过gcc这种交叉编译环境。

点评

lua53.dll 丢在 winxshell 目录上,一直是可以工作的。 我是想不用 lua53.dll 节省这几百KB的体积。 gcc静态编译的,可以在 lua53.exe 中 工作,winxshell中不可以。 且体积较大(345KB)。 gcc/tcc动态编  详情 回复 发表于 2021-7-2 11:30
回复

使用道具 举报

223#
 楼主| 发表于 2021-7-2 11:20:45 | 显示全部楼层
小絔小小小 发表于 2021-7-2 04:48
请教一下楼主有方法获取当前dpi缩放为多少吗
自动缩放总是偏大 我就想写个调节缩放的脚本
可是没找到如何 ...

Screen:GetDPI() 可以获取当然DPI。SetDPI可以改。

LUA_Test.bat中有可用对象,函数方法说明。
回复

使用道具 举报

224#
 楼主| 发表于 2021-7-8 23:59:20 | 显示全部楼层
rancorx2 发表于 2021-7-3 18:26
hi slore,

is it possible to hide the minimize all windows button on taskbar?

Yes, you can change the winxshell.jcfg for that.

  1.   "::QL":
  2.   {
  3.     "maxiconsinrow":20,
  4.     "3rd_startup_arguments":"",
  5.     "hide_showdesktop":false,         <=== change this to true for hiding the button on QuickLanchbar
  6.     "hide_fileexplorer":false,
  7.     "hide_fixedsep":false,
  8.     "hide_usericons":false,
  9.     "folder":"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar"
  10.   },
  11.     "JS_NOTIFYAREA":
  12.   {
  13.     "hide_toggle_button":false,
  14.     "hide_showdesktop_button":false, <=== change this to true for hiding the button on the right of the taskbar
  15.     "#handle_system_network:true,
  16.     "#handle_system_volume:true
  17.   },
复制代码
回复

使用道具 举报

225#
 楼主| 发表于 2021-7-9 00:03:36 | 显示全部楼层
junyee 发表于 2021-7-2 11:30
lua53.dll 丢在 winxshell 目录上,一直是可以工作的。

我是想不用 lua53.dll 节省这几百KB的体积。

WinXShell中引用了 luajson, winapi, 提供了 app 和 wxs 对象,一个文件直接使用最好,直接静态链接了lua53.lib,不考虑出外置dll的版本。

你上面的test.c我使用 tcc 编译,生成是 2KB。

开源的功能很多的的winapi库,编译出来才34KB。
https://github.com/stevedonovan/winapi

点评

luajson 还像不如 jsonc 好用。 我就是因为 https://github.com/stevedonovan/winapi 中带的 api 函数还不够用,才想着自己写的。 既然不考虑,我就只好外挂 lu53.dll 了。 ---- tcc/gcc 动态编译都是kb  详情 回复 发表于 2021-7-9 10:12
回复

使用道具 举报

226#
 楼主| 发表于 2021-7-26 21:57:54 | 显示全部楼层
回复

使用道具 举报

227#
 楼主| 发表于 2021-8-6 20:41:49 | 显示全部楼层
本帖最后由 slore 于 2021-8-6 20:43 编辑
minmax 发表于 2021-8-6 14:17
请问 WinXShell 的授权模式? 因为GITHUB查不到GLP3.0?

外壳部分是PExplorer。

许可证是 LGPL2.1


License
GNU Lesser General Public License version 2.1(LGPL-2.1)
回复

使用道具 举报

228#
 楼主| 发表于 2021-9-27 23:05:15 | 显示全部楼层
fishsea 发表于 2021-9-27 22:17
在测试论坛里 “又更新啦Win11PEx64.22458.1000 体验:中秋福利,2021-09-23! ” 的 wn11pe 时, 该 PE ...

① UI_Settings.zip\main.xml 界面 添加 300% 的选项。
② UI_Settings.zip\main.lua 补充新选项对应的列表ID。


2 files changed, 4 insertions(+)

+++ b/wxsUI/UI_Settings/main.xml

                         <ListLabelElement text="150%" />
                         <ListLabelElement text="175%" />
                         <ListLabelElement text="200%" />
+                        <ListLabelElement text="225%" />
+                        <ListLabelElement text="250%" />
+                        <ListLabelElement text="300%" />
                     </Combo>
                     <Label text="<b>%{Resolution}</b>" showhtml="true" padding="0,10,0,0" />

+++ b/wxsUI/UI_Settings/main.lua

+dpi_list = {["100"] = 0, ["125"] = 1, ["150"] = 2, ["175"] = 3, ["200"] = 4, ["225"] = 5, ["250"] = 6, ["300"] = 7}


UI_Settings.zip (32.13 KB, 下载次数: 5)

觉得选项多的话,自己手动修改,附件是225%, 250%, 300% 都添加了的UI组件。


可以启动后运行:

  1. WinXShell.exe -code Screen:DPI(300)
复制代码


自动设置DPI。



点评

谢谢 slore 同学的帮忙, 问题基本解决了! 下面是测试反馈: 测试机器1 屏幕物理分辨率 1920 x 1080 (CPU: intel i7 10700k) 可以实际上通过点击鼠标起效果的“更改文本、应用等项目的大小”选项有: 100%, 125%, 1  详情 回复 发表于 2021-9-28 09:40
回复

使用道具 举报

229#
 楼主| 发表于 2021-9-28 11:43:43 | 显示全部楼层
本帖最后由 slore 于 2021-9-28 11:46 编辑
fishsea 发表于 2021-9-28 09:40
谢谢 slore 同学的帮忙, 问题基本解决了! 下面是测试反馈:

测试机器1

谢谢反馈。

是的,系统根据最高分辨率可以设置的DPI是有限制的。

比如笔记本最大1366x768的话,只有100%和125%。
最大分辨率到1920x1080的时候,可以设置到175%。
其他的无效。PE下就是临时用下,我图省事,没有根据分辨率觉得DPI列表项目。

我没有4K屏幕,所以后来的选项都没添加。你能否给下系统的设置截图?

菜单不可以设置300%是因为,少修改了一处,DPI选择对应的设置。

main.lua

  1.   elseif ctrl == "dpi_combo" then
  2.     local dpi_combo_index = dpi_combo.index
  3.     app:call('screen::set', 'dpi', (dpi_combo_index * 25) + 100) -- TODO: custom dpi
  4.     return
复制代码


这里默认根据 项目*25 +100 做的。

但是 225, 250, 直接就是 300了,300%对应的是7, 7*25+100= 275, 没有 275% 这个 DPI。

所以选择300%实际是 调用了 Screen:DPI(275),而 275% 系统是不存在的,所以就无效。

直接命令  Screen:DPI(300)在4K下是有效的。

点评

[attachimg]487639[/attachimg] 为了节约您的时间, 提供了上面的简单的计算。  详情 回复 发表于 2021-9-28 13:58
[attachimg]487638[/attachimg] os: win10 10.0.19043.928 该机器只有核显.  详情 回复 发表于 2021-9-28 13:41
回复

使用道具 举报

230#
 楼主| 发表于 2021-11-6 13:18:11 | 显示全部楼层
bitfire 发表于 2021-11-2 14:35
我直接用 winxshell -code app:call('Desktop:setwallpaper',"X:\\windows\\winpe.jpg") 都无法设置壁纸 ...

桌面壁纸依赖系统文件和注册表,你内核精简了?

关机画面,是自己画的一个窗口,可以加载图片。
回复

使用道具 举报

231#
 楼主| 发表于 2021-11-6 14:31:27 来自手机 | 显示全部楼层
F1ank 发表于 2021-11-6 14:24
感觉winxshell的开始菜单风格有点违和感,能不能换个样式之类的
如果在PE里安装startisback后运行startscr ...

开始菜单可以使用 ClassicShell,所以开始菜单没有修改。
随WimBuilder2是有更新的,不过对外壳影响不大。

2021.11.11会发布一次更新。

点评

哦!感谢! 正好前天有搞Classicshell可以派上用场了  详情 回复 发表于 2021-11-6 14:34
回复

使用道具 举报

232#
 楼主| 发表于 2021-11-9 23:39:05 | 显示全部楼层
ellx98 发表于 2021-11-9 14:32
请问怎么用winxshell 显示/隐藏所有文件  
"winxshell FolderOptions:Set(opt, 'ShowSuperHidden')"
"win ...

"winxshell -code FolderOptions:Set('ShowSuperHidden',1)"
"winxshell -code FolderOptions:Set('ShowAll',1)"


0,1表示这个选项是否有效, opt代表 选项。你复制错了啊。

点评

明白,另外如何才能做到把这二个功能合并到一个菜单去?即点一次显示,再点一次隐藏?  详情 回复 发表于 2021-11-10 10:55
回复

使用道具 举报

233#
 楼主| 发表于 2021-11-9 23:41:16 | 显示全部楼层
lll-winpe 发表于 2021-11-8 23:47
下载最新的WIN10 64位ADK,版本是WIN 2004,Boot.wim原版未动(在本机下的Hyper-V启动后测试,ver命令显示 ...

使用 WimBuilder2 ,外壳选择 WinXShell 构建一个PE看看。

提示找不到文件是, WinXShell.lua中有调用其他命令吧。

最好, WinXShell_x64.exe  -> 改名为 WinXShell.exe 使用。
回复

使用道具 举报

234#
 楼主| 发表于 2021-11-10 16:22:53 | 显示全部楼层
ellx98 发表于 2021-11-10 10:55
明白,另外如何才能做到把这二个功能合并到一个菜单去?即点一次显示,再点一次隐藏?

现在的版本写起来比较长:
WinXShell.exe -code FolderOptions:Set('ShowSuperHidden',FolderOptions:Get('ShowSuperHidden')-1)



下个更新添加一个 LUA 函数, 可以简单调用。  (自己也可以写到 WinXShell.lua 扩展)

WinXShell.exe -code FolderOptions:Toggle('ShowSuperHidden')



  1. function FolderOptions:Toggle(opt)
  2.   local val = FolderOptions:Get(opt)
  3.   FolderOptions:Set(opt, val - 1)
  4. end
复制代码

点评

多谢,经过大神的指点,终于可以实现想要功能了。  详情 回复 发表于 2021-11-10 17:40
回复

使用道具 举报

235#
 楼主| 发表于 2021-11-12 01:19:29 | 显示全部楼层
本帖最后由 slore 于 2022-9-18 19:25 编辑

## WinXShell 4.6 (2021.11.11)

MD5:48844d7a2ab16701d995b211c5818ffa ( https://www.lanzoux.com/b011xhbsh 密码: shell )


这是一个主要更新。添加和改善了以下内容:

* 修复 亮度调节功能占用256MB内存的问题。
* 改进 任务栏按钮显示风格。(适配Windows主题,解决Windows 11按钮高亮显示不自然的问题)
* 新增 任务栏程序快速关闭按钮(可通过配置文件进行设定)。
* 新增 UI组件
  * UI_LED          屏幕提示信息(可滚动)。
  * UI_TrayPanel  显示系统信息,日历,调度调节控件。
* 改进 UI组件
  * 当显示设置发生变化时,将调用 ondisplaychanged()函数,可用来调整窗口位置或更新数据。
  * UI_Settings   DPI设置新增225%, 250%, 275%, 300%选项。
  * UI_SystemInfo 适配Windows 11。
  * UI_Calendar   改善界面,新增亮度调节控件(可通过-brightness=true|false参数控制)。
* 改进 lua接口
  * 新增 app:info('FirmwareType') 方法
  * 新增 app:info('IsUEFIMode') 方法
  * 新增 sui:title(str) 方法
  * 新增 sui:info('rect') 方法
  * 新增 sui:info('wh') 方法
  * 新增 FolderOptions:Toggle(opt) 方法
* 其他细节更新


附件作废,有一个小问题修正,请从网盘下载最新版。 (附件编辑有点问题,看不到)

WinXShell_RC4.6.0.7z

2.59 MB, 下载次数: 254, 下载积分: 无忧币 -2

点评

slore老大,蓝奏网盘打开是WimBuilder2,不是winxshell  详情 回复 发表于 2022-9-18 10:10
无忧以前不这样,后来就这样了,解决方法:先随便上传个小文件(不上传看不到附件),然后把上传的小文件删除,附件删除重传或更新都可以  详情 回复 发表于 2022-1-23 15:37
回复

使用道具 举报

236#
 楼主| 发表于 2022-1-23 15:04:33 | 显示全部楼层
xman00 发表于 2022-1-23 13:36
请问怎么实现托盘时钟区点击显示日历呢?目前只知道“start %WINXSHELL% -ui -jcfg wxsUI%uI_Calendar.zip  ...

修改WinXShell_x64.exe为WinXShell.exe。

winxshell.jcfg中定义,点击托盘时间时调用的命令是WinXShell.exe,
自己改下试试。(改文件名,或者修改配置文件)


正常win10系统?系统不是自带了日历麽。

点评

好的,我试试,谢谢!  详情 回复 发表于 2022-1-23 15:06
回复

使用道具 举报

237#
 楼主| 发表于 2022-1-29 16:20:15 | 显示全部楼层
PowerConsole 发表于 2022-1-28 17:07
楼主你好,我试图在为Windows Server 2022核心安装添加一个可用的WinXshell时按照你所说在system32添加了 ...

这个是注册表是X盘,你是否改成了C盘。
另外,补充dll对应的mun,mui文件是否你也补充了。


2022正常系统环境我没测试,系统的打开对话框是否补充这些就可以。
这个文件列表是针对WIN10的。直接用 Explorer++ 之类的资源管理器会更方便。
回复

使用道具 举报

238#
 楼主| 发表于 2022-3-10 18:54:34 | 显示全部楼层
Win7MEMZ-BX 发表于 2022-3-5 13:30
“打开文件对话框”是放在哪里的?怎么用?

就是你打开任务管理器,新建,弹出的选择文件的对话框。
回复

使用道具 举报

239#
 楼主| 发表于 2022-3-18 18:20:45 | 显示全部楼层
This_is_not_for 发表于 2022-3-18 16:42
大佬,为啥启动脚本会被加.done后缀不执行呢。

set RunOnce=1 的启动脚本。
只做一次,避免切换用户重复执行。

回复

使用道具 举报

240#
 楼主| 发表于 2022-4-16 21:11:53 | 显示全部楼层
This_is_not_for 发表于 2022-4-16 20:30
大佬, WinXshell 有办法关闭它接管系统属性嘛,

; 原版属性

WinXShell.lua 中可以关闭。

handle_system_property = nil
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-1 04:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表