无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: slore
打印 上一主题 下一主题

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

    [复制链接]
841#
发表于 2021-7-2 11:30:55 | 只看该作者
本帖最后由 junyee 于 2021-7-2 11:51 编辑
slore 发表于 2021-7-2 11:18
我之前直接lua53.dll放到外面,第三方的dll可以使用。
不用编译不连接lua53.lib的WinXShell.exe外置版。 ...

lua53.dll 丢在 winxshell 目录上,一直是可以工作的。

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

gcc静态编译的,可以在 lua53.exe 中 工作,winxshell中不可以。 且体积较大(345KB)。

gcc/tcc动态编译的,则必须复制lua53.dll到工作目录, lua53.exe和 winxshell 都 可以工作。


代码很简单。



  1. ##file:test.c
  2. //......
  3. int __declspec(dllexport)  luaopen_test(lua_State *L) {
  4.         
  5.         lua_newtable(L);

  6.     lua_pushliteral(L, "VERSION");
  7.     lua_pushstring(L, "this_is_version_section.");
  8.     lua_settable(L, -3);
  9.    
  10.         return 1;
  11. }


  12. ##test.lua

  13. a=require('test')
  14. app:print( a.VERSION )
  15. --print( a.VERSION )

复制代码

换一下。test.lua

  1. app=app or _G
  2. app.print( 'aaa' )

  3. yk=require('yk')
  4. app.print( yk.VERSION );

  5. os.execute('pause')
复制代码



点评

WinXShell中引用了 luajson, winapi, 提供了 app 和 wxs 对象,一个文件直接使用最好,直接静态链接了lua53.lib,不考虑出外置dll的版本。 你上面的test.c我使用 tcc 编译,生成是 2KB。 开源的功能很多的的wi  详情 回复 发表于 2021-7-9 00:03
回复

使用道具 举报

842#
发表于 2021-7-3 18:26:55 | 只看该作者
hi slore,

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

点评

Yes, you can change the winxshell.jcfg for that.  详情 回复 发表于 2021-7-8 23:59
回复

使用道具 举报

843#
发表于 2021-7-8 15:03:39 | 只看该作者
谢谢!
Thanks♪(・ω・)ノ
回复

使用道具 举报

844#
发表于 2021-7-8 15:04:42 | 只看该作者
谢谢
回复

使用道具 举报

845#
 楼主| 发表于 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.   },
复制代码
回复

使用道具 举报

846#
 楼主| 发表于 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
回复

使用道具 举报

847#
发表于 2021-7-9 08:17:26 | 只看该作者
slore 发表于 2020-4-5 01:56
## WinXShell RC4.3 (2020.04.04)

   0
回复

使用道具 举报

848#
发表于 2021-7-9 10:12:32 | 只看该作者
本帖最后由 junyee 于 2021-7-9 10:18 编辑
slore 发表于 2021-7-9 00:03
WinXShell中引用了 luajson, winapi, 提供了 app 和 wxs 对象,一个文件直接使用最好,直接静态链接了lua ...

luajson 还像不如 jsonc 好用。

我就是因为 https://github.com/stevedonovan/winapi 中带的 api 函数还不够用,才想着自己写的。

既然不考虑,我就只好外挂 lu53.dll 了。
----
tcc/gcc 动态编译都是kb级别,
而静态编译出来就要几百KB,这么一来还不如外挂个官方的 lua53.dll 了呢。

----
论坛很多人强迫症喜欢单文件,这样看着轻爽,但是带了内存和存储的额外消耗。
现在的安卓APP ,随便揪一个APK 都有可能有这两个大家伙 libchromium / libffmpeg,好像我们手机存储不要钱似的(虽然可以给开发带来便利)。



回复

使用道具 举报

849#
发表于 2021-7-25 22:46:25 | 只看该作者
下载不到啊

点评

https://lanzoux.com/b00z5zy6b  详情 回复 发表于 2021-7-26 21:57
回复

使用道具 举报

850#
 楼主| 发表于 2021-7-26 21:57:54 | 只看该作者
回复

使用道具 举报

851#
发表于 2021-7-31 08:57:53 | 只看该作者
感谢分享
回复

使用道具 举报

852#
发表于 2021-8-6 14:17:09 | 只看该作者
请问 WinXShell 的授权模式? 因为GITHUB查不到GLP3.0?
回复

使用道具 举报

853#
 楼主| 发表于 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)
回复

使用道具 举报

854#
发表于 2021-8-7 15:52:24 | 只看该作者
终于不用为了制作pe疯狂找explorer文件了!感谢楼主分享!
回复

使用道具 举报

855#
发表于 2021-8-18 14:04:13 | 只看该作者
win7 pe能用吗
回复

使用道具 举报

856#
发表于 2021-9-12 09:42:07 | 只看该作者
请问怎么在PE启动时调用?
回复

使用道具 举报

857#
发表于 2021-9-27 22:17:47 | 只看该作者


在测试论坛里 “又更新啦Win11PEx64.22458.1000 体验:中秋福利,2021-09-23! ” 的 wn11pe 时, 该 PE 用到了 slore 的 WinXShell 来添加右键功能“屏幕分辨率设置”.

在进行“屏幕分辨率设置”时我想要“更改文本、应用等项目的大小”为300%. 这个如何操作?

我的laptop屏幕的物理分辨率为3840x2400, 放大到 300% 最舒服, 所以才有此需求.

谢谢各位技术达人!

回复

使用道具 举报

858#
 楼主| 发表于 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。



回复

使用道具 举报

859#
发表于 2021-9-28 09:40:13 | 只看该作者
slore 发表于 2021-9-27 23:05
① UI_Settings.zip\main.xml 界面 添加 300% 的选项。
② UI_Settings.zip\main.lua 补充新选项对应的 ...

谢谢 slore 同学的帮忙, 问题基本解决了! 下面是测试反馈:

测试机器1
屏幕物理分辨率 1920 x 1080 (CPU: intel i7 10700k) 可以实际上通过点击鼠标起效果的“更改文本、应用等项目的大小”选项有: 100%, 125%, 150%, 175%; 虽然点击200%, 225%, 250%后好像生效了, 但系统实际是用的175%. 300%不起任何作用.

在PE启动到桌面后, 通过命令行运行 WinXShell.exe -code Screen:DPI(200) (200可以换成225, 250, 300) 都不能起效果, 实际还是175%.

测试机器2
屏幕物理分辨率 3840 x 2400 (CPU: intel i7 1165G7) 可以实际上通过点击鼠标起效果的“更改文本、应用等项目的大小”选项有: 100%, 125%, 150%, 175%, 200%, 225%, 250%; 300%不起任何作用.

在PE启动到桌面后, 通过命令行运行 WinXShell.exe -code Screen:DPI(300) 让300%生效. 怪不怪? 点击鼠标不行, 但运行命令后可以.

P.S. 不宜开机自动设为300%, 因为PE要在多台PC上运行.
回复

使用道具 举报

860#
 楼主| 发表于 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下是有效的。

回复

使用道具 举报

861#
发表于 2021-9-28 13:41:39 | 只看该作者
slore 发表于 2021-9-28 11:43
谢谢反馈。

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



os: win10 10.0.19043.928
该机器只有核显. 上面的图为正常 windows 10 下的截图, 非PE.
回复

使用道具 举报

862#
发表于 2021-9-28 13:58:07 | 只看该作者
slore 发表于 2021-9-28 11:43
谢谢反馈。

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



为了节约您的时间, 提供了上面的简单的计算。
回复

使用道具 举报

863#
发表于 2021-10-30 17:30:02 | 只看该作者
大佬帮我看看,我这么简单的一个壁纸被难住了。

"::JS_DESKTOP":
  {
    "::第3方文件管理器打开参数":"\"%s\"",
    "::多级菜单":
    "::bkcolor":[199,237,204],
    "::wallpaperstyle":0,
     "::wallpaper":"##{JVAR_MODULEPATH}\\img0.jpg"
  },

壁纸和winxshell 在同一目录,可是PE显示是黑的。 如果拿掉这部分,就变成浅绿色。。
回复

使用道具 举报

864#
发表于 2021-10-31 16:19:15 | 只看该作者
bitfire 发表于 2021-10-30 17:30
大佬帮我看看,我这么简单的一个壁纸被难住了。

"::JS_DESKTOP":

老大,我改成这样 还是无法显示壁纸, pecmd.ini logo 定义的壁纸之前是显示的。 winxshell 启动以后就消失了。

  "::桌面":
  {
    "::桌面图标大小":32,
    "背景色注释":"绿豆沙色",
    "::桌面背景色":[0,123,189],
    "显示样式注释":"0-拉伸(默认值);1-平铺;2-居中",
    "::桌面壁纸显示样式":0,
    "壁纸注释":"设置为空,或者不设置,将使用系统设置",
    "::桌面壁纸":"X:\\Windows\\Web\\Wallpaper\\Windows\\winpe.jpg"
  },

另外, 我想禁用xshell 的启动菜单。请教该怎么处理??
回复

使用道具 举报

865#
发表于 2021-11-2 14:35:07 | 只看该作者
bitfire 发表于 2021-10-30 17:30
大佬帮我看看,我这么简单的一个壁纸被难住了。

"::JS_DESKTOP":

我直接用 winxshell -code app:call('Desktop:setwallpaper',"X:\\windows\\winpe.jpg") 都无法设置壁纸。
你开发包里的示范代码却可以在关机界面下读出我设置的壁纸。

彻底迷茫了。
回复

使用道具 举报

866#
发表于 2021-11-6 11:56:52 | 只看该作者
在不使用explorer的情况下winxshell能自定义任务栏吗
回复

使用道具 举报

867#
 楼主| 发表于 2021-11-6 13:18:11 | 只看该作者
bitfire 发表于 2021-11-2 14:35
我直接用 winxshell -code app:call('Desktop:setwallpaper',"X:\\windows\\winpe.jpg") 都无法设置壁纸 ...

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

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

使用道具 举报

868#
发表于 2021-11-6 14:24:46 | 只看该作者
感觉winxshell的开始菜单风格有点违和感,能不能换个样式之类的
如果在PE里安装startisback后运行startscreen.exe可以呼出winxshell的开始菜单但没改变菜单的外观
话说S大不更新版本了吗
回复

使用道具 举报

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

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

2021.11.11会发布一次更新。
回复

使用道具 举报

870#
发表于 2021-11-6 14:34:56 | 只看该作者
slore 发表于 2021-11-6 14:31
开始菜单可以使用 ClassicShell,所以开始菜单没有修改。
随WimBuilder2是有更新的,不过对外壳影响不大 ...

哦!感谢!
正好前天有搞Classicshell可以派上用场了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-25 22:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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