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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

 荐  火... [复制链接]
发表于 2025-11-6 12:34:58 | 显示全部楼层
527104427 发表于 2025-11-6 12:29
你没发现你把一个括号改丢了吗?

丢不丢都一样了 因为错不在这 前面都截胡了
快去请掌管代码的神@mdyblog
回复

使用道具 举报

发表于 2025-11-6 12:45:17 | 显示全部楼层
Zap 发表于 2025-11-6 12:13
你咋不一次改成  我这今天才研究出来,大前天还不会

你第一次给的C++源码,我都帮你翻译完了。而且你代码里的逻辑不对,我也帮你改了。  还要咋样呀。。。我都不知道你代码的原理

点评

Zap
PECMD太难了  详情 回复 发表于 2025-11-6 18:02
回复

使用道具 举报

发表于 2025-11-6 18:02:43 | 显示全部楼层
红毛樱木 发表于 2025-11-6 12:45
你第一次给的C++源码,我都帮你翻译完了。而且你代码里的逻辑不对,我也帮你改了。  还要咋样呀。。。我 ...

PECMD太难了

点评

想翻译成PECMD,自己研究的代码要用C语言,不能用C++,不然不好翻译的。 PECMD我感觉是类似C风格的  详情 回复 发表于 2025-11-6 19:59
回复

使用道具 举报

发表于 2025-11-6 19:59:58 | 显示全部楼层

想翻译成PECMD,自己研究的代码要用C语言,不能用C++,不然不好翻译的。 PECMD我感觉是类似C风格的

点评

Zap
呼叫古希腊掌管代码的神  详情 回复 发表于 2025-11-7 13:03
回复

使用道具 举报

发表于 2025-11-6 20:11:54 | 显示全部楼层
感谢分享。
回复

使用道具 举报

发表于 2025-11-7 13:03:17 | 显示全部楼层
本帖最后由 Zap 于 2025-11-7 13:04 编辑
红毛樱木 发表于 2025-11-6 19:59
想翻译成PECMD,自己研究的代码要用C语言,不能用C++,不然不好翻译的。 PECMD我感觉是类似C风格的

呼叫古希腊掌管代码的神
  1. //返回程序第一个图标名
  2. #include <windows.h>
  3. #include <shlwapi.h>
  4. #include <wchar.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <io.h>      // 用于_setmode
  8. #include <fcntl.h>   // 用于_O_U16TEXT

  9. #pragma comment(lib, "shlwapi.lib")

  10. // 全局资源名称数组及计数
  11. wchar_t** g_resourceNames = NULL;
  12. int g_resourceCount = 0;

  13. // 资源枚举回调函数:正确处理整数ID和字符串名称
  14. BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCWSTR lpszType, LPWSTR lpszName, LONG_PTR lParam) {
  15.     wchar_t* resName = NULL;
  16.     if (IS_INTRESOURCE(lpszName)) {
  17.         // 处理整数ID(资源ID是16位无符号整数)
  18.         WORD id = (WORD)(UINT_PTR)lpszName;  // 正确转换资源ID
  19.         resName = (wchar_t*)malloc(64 * sizeof(wchar_t));  // 扩大缓冲区避免溢出
  20.         if (!resName) return FALSE;  // 检查内存分配失败
  21.         // 格式化整数ID为 "#数字"(例如#1000)
  22.         if (swprintf_s(resName, 64, L"#%u", id) < 0) {  // 使用%u匹配WORD(无符号)
  23.             free(resName);
  24.             return FALSE;
  25.         }
  26.     } else {
  27.         // 处理字符串名称(例如ICO_MYCOMPUTER)
  28.         size_t nameLen = wcslen(lpszName);
  29.         resName = (wchar_t*)malloc((nameLen + 1) * sizeof(wchar_t));
  30.         if (!resName) return FALSE;  // 检查内存分配失败
  31.         wcscpy_s(resName, nameLen + 1, lpszName);
  32.     }

  33.     // 扩展资源名称数组
  34.     wchar_t** newArray = (wchar_t**)realloc(g_resourceNames, (g_resourceCount + 1) * sizeof(wchar_t*));
  35.     if (!newArray) {
  36.         free(resName);
  37.         return FALSE;
  38.     }
  39.     g_resourceNames = newArray;
  40.     g_resourceNames[g_resourceCount++] = resName;
  41.     return TRUE;
  42. }

  43. // 释放资源名称数组内存
  44. void FreeResourceNames() {
  45.     for (int i = 0; i < g_resourceCount; i++) {
  46.         if (g_resourceNames[i]) free(g_resourceNames[i]);
  47.     }
  48.     free(g_resourceNames);
  49.     g_resourceNames = NULL;
  50.     g_resourceCount = 0;
  51. }

  52. // 显示帮助信息
  53. void ShowHelp(const wchar_t* programName) {
  54.     wprintf(L"用法: %ls <目标程序路径>\n", programName);
  55.     wprintf(L"示例: %ls C:\\Windows\\explorer.exe\n", programName);
  56. }

  57. int wmain(int argc, wchar_t* argv[]) {
  58.     // 设置控制台宽字符模式(确保中文和宽字符正常显示)
  59.     _setmode(_fileno(stdout), _O_U16TEXT);
  60.     _setmode(_fileno(stderr), _O_U16TEXT);

  61.     // 参数检查
  62.     if (argc != 2) {
  63.         ShowHelp(argv[0]);
  64.         return -1;
  65.     }

  66.     wchar_t targetPath[MAX_PATH];
  67.     wcscpy_s(targetPath, MAX_PATH, argv[1]);

  68.     // 检查目标文件是否存在
  69.     if (!PathFileExistsW(targetPath)) {
  70.         fwprintf(stderr, L"错误: 文件不存在 - %ls\n", argv[1]);
  71.         return -2;
  72.     }

  73.     // 加载目标程序作为资源文件(仅读取资源,不执行代码)
  74.     HMODULE hModule = LoadLibraryExW(targetPath, NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE);
  75.     if (!hModule) {
  76.         fwprintf(stderr, L"错误: 无法加载文件资源 (错误码: %d)\n", GetLastError());
  77.         return -3;
  78.     }

  79.     // 枚举所有图标组资源(RT_GROUP_ICON是图标组的资源类型)
  80.     FreeResourceNames();
  81.     if (!EnumResourceNamesW(hModule, RT_GROUP_ICON, EnumResNameProc, 0)) {
  82.         fwprintf(stderr, L"错误: 枚举图标资源失败 (错误码: %d)\n", GetLastError());
  83.         FreeLibrary(hModule);
  84.         FreeResourceNames();
  85.         return -3;
  86.     }

  87.     // 输出第一个图标组名称(修复格式符错误)
  88.     if (g_resourceCount > 0 && g_resourceNames[0]) {
  89.         // 修复:用%ls打印宽字符字符串(wchar_t*),而非%s
  90.         wprintf(L"%ls\n", g_resourceNames[0]);
  91.     } else {
  92.         fwprintf(stderr, L"错误: 未找到图标组资源\n");
  93.         FreeLibrary(hModule);
  94.         FreeResourceNames();
  95.         return -3;
  96.     }

  97.     // 清理资源
  98.     FreeLibrary(hModule);
  99.     FreeResourceNames();
  100.     return 0;
  101. }
复制代码

点评

PECMD有回调函数支持, 在 ENVI 命令说明书的最后面: ※绑定回调函数: ENVI^ WndProc[1|2|3][C][,指针变量] //C为C调用。 --------------------------- 举例说明。 你的代码中有 EnumResourceNamesW 这个API  详情 回复 发表于 2025-11-12 14:00
牛逼,你要双休吗  详情 回复 发表于 2025-11-7 13:37
回复

使用道具 举报

发表于 2025-11-7 13:37:51 来自手机 | 显示全部楼层
Zap 发表于 2025-11-7 13:03
呼叫古希腊掌管代码的神

牛逼,你要双休吗
回复

使用道具 举报

发表于 2025-11-12 14:00:27 | 显示全部楼层
Zap 发表于 2025-11-7 13:03
呼叫古希腊掌管代码的神

PECMD有回调函数支持, 在 ENVI 命令说明书的最后面:
※绑定回调函数: ENVI^ WndProc[1|2|3][C][,指针变量]  //C为C调用。
---------------------------
举例说明。
你的代码中有 EnumResourceNamesW 这个API调用

WINBASEAPI
BOOL
WINAPI
EnumResourceNamesW(
    _In_opt_ HMODULE hModule,
    _In_ LPCWSTR lpType,
    _In_ ENUMRESNAMEPROCW lpEnumFunc,
    _In_ LONG_PTR lParam
    );

第三个是回调函数,就是你代码中的 EnumResNameProc
翻译到PECMD里是这样用:
ENVI^ WndProc1,&WndProc1Addr  //这个%&WndProc1Addr% 就是回调函数的地址了。
然后,CALL$ 调用 EnumResourceNamesW 这个API,第三个参数就可以直接用 #%&WndProc1Addr% 了。
最后,你写个 _SUB 函数,比如:
_SUB OnWndProc1
  // 这里写你的代码等。 获取到的信息就是 %~1 %~2..... 这些了。
_END
------------------------
ENVI^ WndProc1  这里的数字 1 与 OnWndProc1 里的数字 1 是对应的。 PECMD最多支持3个回调,固定格式。(另外注意:绑定到当前执行栈)
------------------------
示例   目录中的  Test7Zip.wcs  有详细的回调函数代码,可以参考。


回复

使用道具 举报

发表于 2025-11-20 16:53:50 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-11-20 16:54:05 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-11-20 16:54:19 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-11-20 16:54:31 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-11-20 16:54:44 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-11-26 12:07:23 | 显示全部楼层
感谢楼主分享,感谢!!!!
回复

使用道具 举报

发表于 2025-12-4 21:04:29 | 显示全部楼层
用PECMD怎么调用CMD把INI文件打包成EXE,具体用什么参数命令,哪个版本才有这个功能。哪位大婶指点指点。
回复

使用道具 举报

发表于 2025-12-6 19:44:52 | 显示全部楼层
写了个软件安装管理器,根据列表文件list.ini文件里的内容自动创建复选框,软件数量不固定,预设的swin太大滚动条下面会空很多,swin太小会放不下,代码如下:

  1. _SUB MainWindow,W300H360,软件列表选择,,%windir%\system32\shell32.dll#316,15,,-top -disminb
  2.     SWIN SWIN1:Page11:-SWINMAIN,L10T33W273H240,,0x140
  3.     ENVI @SWINMAIN:SWIN1.ID=?&Swin1_Wid   //画框ID
  4.     ENVI @SWINMAIN.ID=?&SWINMAIN_Wid    //与Page11窗口ID相同%&Page1_WID%
  5.     LABE TitleLabel,L10T10W200H20,请选择要安装的软件:
  6.     ITEM OKButton,L120T280W60H30,安装,CALL OnOK
  7. _END

  8. _SUB Page11,W600H240,,,,:0xFFFFFF
  9.     ENVI &YPos=10
  10.     ENVI &Index=0
  11.     ENVI &inList=0
  12.     ENVI AllList=
  13.     SET$ NL=0D 0A

  14.     READ list.ini,*,&&AllContent

  15.     FORX *NL &AllContent,&&line,
  16.     {
  17.         mstr * &line1=1,1,&line
  18.         find $%&line1%=[,
  19.         {
  20.             find $%&line%=[softlist], ENVI &inList=1!ENVI &inList=0
  21.         }!
  22.         {
  23.             IFEX $%&inList%=1,
  24.             {
  25.                 FIND $%&line%=, exit -

  26.                 // 解析软件名称、路径、默认是否选中
  27.                 MSTR * -delims:| SoftName,SoftPath,SoftStatus=<1><2><3>&line

  28.                 CHEK Checkbox_%&Index%,L40T%&YPos%W250H20,%SoftName%
  29.                 IFEX $%SoftStatus%=0,ENVI @Checkbox_%&Index%.Check=1
  30.                 IFEX $%SoftStatus%=2,team ENVI @Checkbox_%&Index%.Check=1|ENVI @Checkbox_%&Index%.Enable=0

  31.                 ENVI &Checkbox_Name=Checkbox_%&Index%
  32.                 ENVI &Checkbox_Name_Path=%SoftPath%
  33.                 ENVI Checkbox_Name_Status=%SoftStatus%

  34.                 CALC &YPos=%&YPos% + 25
  35.                 CALC &Index=%&Index% + 1

  36.                 ENVI AllList=%Checkbox_Name_Path%%NL%%AllList%
  37.                 //mess %&AllList%
  38.                 //mess %Checkbox_Name%:%&SoftName%:%&Checkbox_Name_Path%:%Checkbox_Name_Status%
  39.             }
  40.         }
  41.     }

  42.     ENVI TotalCount=%&Index%

  43.     //MESS %TotalCount%
  44.     IFEX #%TotalCount%>=9,TEAM  MESS %H%|CALC H=(%TotalCount%-9)*35+%H%| MESS %H%|ENVI @@POS=%&SWIN1_Wid%::::%H%

  45. _END

  46. _SUB OnOK
  47. ENVI &AllList=%AllList%
  48. ENVI &InstPath=
  49. ENVI &Index=0

  50.     LOOP #%&Index% <= %TotalCount%,
  51.     {
  52.         READ  -*,%&Index%,&InstPath,&AllList
  53.         Find $%Checkbox_%&Index%.Check%=1,mess Checkbox_%&Index%选中\n%&InstPath%
  54.         CALC &Index=%&Index% + 1
  55.     }
  56. _END

  57. CALL @MainWindow
复制代码



代码运行后,swin不能实现滚动效果,参考官方实例搞不定,官方实例中主要起作用是这一句:ENVI @@POS=%&SWIN1_Wid%::::%H

但我看这样改变的是画布大小?

求教,谢谢

点评

swin有层级、滚动条可以通过代码滚动到指定位置。 这两个在 示例代码 文件夹里都有示例代码  详情 回复 发表于 2025-12-6 20:09
回复

使用道具 举报

发表于 2025-12-6 20:09:37 来自手机 | 显示全部楼层
dhwc 发表于 2025-12-6 19:44
写了个软件安装管理器,根据列表文件list.ini文件里的内容自动创建复选框,软件数量不固定,预设的swin太大 ...

swin有层级、滚动条可以通过代码滚动到指定位置。  这两个在 示例代码  文件夹里都有示例代码
回复

使用道具 举报

发表于 2025-12-6 20:52:11 | 显示全部楼层
红毛樱木 发表于 2025-12-6 20:09
swin有层级、滚动条可以通过代码滚动到指定位置。  这两个在 示例代码  文件夹里都有示例代码

我看的示例代码,那个功能过于完善了我这个场景觉得不太需要,核心语句不就是ENVI @@POS=%&SWIN1_Wid%::::%H%嘛?为啥写了没用呢
回复

使用道具 举报

发表于 2025-12-10 20:12:21 来自手机 | 显示全部楼层
dhwc 发表于 2025-12-6 20:52
我看的示例代码,那个功能过于完善了我这个场景觉得不太需要,核心语句不就是ENVI @@POS=%&SWIN1_Wid%::: ...

这个问题搞定了,调整的时机不对,方法也不对,最后在主窗体中加了个time控件解决了,也不知道是不是邪门歪道。

现在有新的问题:

1、怎样实现主窗体透明,swim不透明?

2、主窗体添加了全选/全不选按钮,好像不能穿透到swim去操作复选框?

3、添加了全选/全不选按钮,程序运行后,安装按钮文字不可见,随便点下某个复选框才会显示出来?

点评

上代码。瞎猜么。。。。  详情 回复 发表于 2025-12-10 21:17
回复

使用道具 举报

发表于 2025-12-10 21:17:59 | 显示全部楼层
dhwc 发表于 2025-12-10 20:12
这个问题搞定了,调整的时机不对,方法也不对,最后在主窗体中加了个time控件解决了,也不知道是不是邪门 ...

上代码。瞎猜么。。。。
回复

使用道具 举报

发表于 2025-12-10 21:39:21 | 显示全部楼层

  1. //_SUB MainWindow,W300H360,软件列表选择,,%windir%\system32\shell32.dll#130,15,,-top -disminb
  2. SET &SB_VERT=1
  3. SET &SIF_RANGE=0x0001

  4. ENVI &TotalCount=0
  5. ENVI &AllList=
  6. ENVI &Checkbox_All=0

  7. _SUB MainWindow,W300H360,软件列表选择,,%windir%\system32\shell32.dll#316,15,,-top -disminb
  8.     SWIN SWIN1:Page11:-SWINMAIN,L10T33W273H240,,0x140
  9.     ENVI @SWINMAIN:SWIN1.ID=?&Swin1_Wid   //画框ID
  10.     ENVI @SWINMAIN.ID=?&SWINMAIN_Wid    //与Page11窗口ID相同%&Page1_WID%
  11. ENVI @SWINMAIN.bkcolor=#FFFFFF
  12.     LABE -trans TitleLabel,L10T10W200H20,请选择要安装的软件:
  13.     ITEM OKButton,L200T285W84H30,开始安装,CALL OnOK
  14.     TIME Timer1,300,call SetSwin
  15.     CHEK Checkbox_All,L11T290W250H20,全选/全不选,call CheckboxAllChanged,1
  16. _END


  17. _SUB Page11,W600H240,,,,:0xFFFFFF
  18. //ENVI @this.bkcolor=0x000000
  19.     ENVI &YPos=10
  20.     ENVI &Index=0
  21.     ENVI &inList=0
  22.     SET$ NL=0D 0A

  23.     READ list.ini,*,&&AllContent

  24.     FORX *NL &AllContent,&&line,
  25.     {
  26.         mstr * &line1=1,1,&line
  27.         find $%&line1%=[,
  28.         {
  29.             find $%&line%=[softlist], ENVI &inList=1!ENVI &inList=0
  30.         }!
  31.         {
  32.             IFEX $%&inList%=1,
  33.             {
  34.                 FIND $%&line%=, exit -
  35.                
  36.                 // 解析软件名称、路径、默认是否选中
  37.                 MSTR * -delims:| SoftName,SoftPath,SoftStatus=<1><2><3>&line
  38.                  
  39.                 CHEK Checkbox_%&Index%,L40T%&YPos%W180H20,%SoftName%
  40.                 IFEX $%SoftStatus%=0,ENVI @Checkbox_%&Index%.Check=1
  41.                 IFEX $%SoftStatus%=2,team ENVI @Checkbox_%&Index%.Check=1|ENVI @Checkbox_%&Index%.Enable=0
  42.                
  43.                 ENVI &Checkbox_Name=Checkbox_%&Index%
  44.                 ENVI &Checkbox_Name_Path=%SoftPath%
  45.                 ENVI Checkbox_Name_Status=%SoftStatus%

  46.                 CALC &YPos=%&YPos% + 25
  47.                 CALC &Index=%&Index% + 1
  48.                
  49.                 ENVI &AllList=%Checkbox_Name_Path%%NL%%&AllList%
  50.             }

  51.         }
  52.     }
  53.     ENVI &TotalCount=%&Index%

  54.     //Find $%Checkbox_All.Check%=1,mess 全选!mess 全不选
  55.    
  56. _END

  57. _SUB SetSwin *
  58.     ENVI @Timer1.*del=
  59.     CALC #Hv=%&TotalCount%*26
  60.     ENVI @@POS=%&SWINMAIN_Wid%::::%Hv%
  61.     @TEAM SET-int inf=%&SIF_RANGE%:4| SET-int inf=%Hv%:12
  62.     CALL $--qd user32.dll,SetScrollInfo,#%SWIN1_Wid%,#%SB_VERT%,*&inf
  63. _END


  64. _SUB CheckboxAllChanged
  65.     ENVI &i=0
  66.     Find $ENVI @%&Swin1_Wid%:Checkbox_%&i%.Check=1,
  67.     {
  68.      MESS %Checkbox_All.Check%:::%&TotalCount%
  69.         LOOP #%&i% < %&TotalCount%,
  70.         {
  71.              ENVI @Checkbox_%&i%.Check=1
  72.              CALC &i=%&i% + 1
  73.         }
  74.     EXIT _Sub
  75.     }
  76.     Find $ENVI @%&Swin1_Wid%:Checkbox_%&i%.Check=0,
  77.     {
  78.         LOOP #%&i% < %&TotalCount%,
  79.         {
  80.              ENVI @Checkbox_%&i%.Check=0
  81.              CALC &i=%&i% + 1
  82.         }
  83.      }
  84. _END

  85. _SUB OnOK
  86. ENVI &InstPath=
  87. ENVI &Index=0

  88.     LOOP #%&Index% <= %&TotalCount%,
  89.     {
  90.         READ  -*,%&Index%,&InstPath,&AllList
  91.         Find $%Checkbox_%&Index%.Check%=1,TEAM mess Checkbox_%&Index%选中\n%&InstPath%
  92.         CALC &Index=%&Index% + 1
  93.     }

  94. _END


  95. CALL @MainWindow
复制代码

点评

看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。 这个貌似PECMD 弄不了,因为默认就继承了。 另外两个问题,代码里没重现 不知道。  详情 回复 发表于 2025-12-11 14:29
回复

使用道具 举报

发表于 2025-12-11 14:29:33 | 显示全部楼层

看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。   这个貌似PECMD 弄不了,因为默认就继承了。     另外两个问题,代码里没重现 不知道。
回复

使用道具 举报

发表于 2025-12-11 15:02:43 | 显示全部楼层
本帖最后由 dhwc 于 2025-12-11 15:04 编辑
红毛樱木 发表于 2025-12-11 14:29
看下了“画布”的原理,是GDI+绘制的,不是单独的传统窗口空间类型,自动继承透明通道等信息。   这个貌 ...

全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:



看右下角按钮



点评

swin高度太高覆盖了吧  详情 回复 发表于 2025-12-11 17:07
全选太长了,搞短一点  详情 回复 发表于 2025-12-11 15:12
回复

使用道具 举报

发表于 2025-12-11 15:12:13 | 显示全部楼层
dhwc 发表于 2025-12-11 15:02
全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:

全选太长了,搞短一点
回复

使用道具 举报

发表于 2025-12-11 15:19:06 | 显示全部楼层
489432757 发表于 2025-12-11 15:12
全选太长了,搞短一点

靠,特妈的,在swin里随便复制的,还以为是显示问题,要刷新啥的呢,谢谢
回复

使用道具 举报

发表于 2025-12-11 17:07:02 来自手机 | 显示全部楼层
dhwc 发表于 2025-12-11 15:02
全选问题搞定了,还是用定时器控件。不能透明就算了。那个显示发虚的问题怎么解决?如图:



swin高度太高覆盖了吧
回复

使用道具 举报

发表于 2025-12-11 17:13:18 | 显示全部楼层
红毛樱木 发表于 2025-12-11 17:07
swin高度太高覆盖了吧

解决了,是全选那个复选框太长覆盖了
回复

使用道具 举报

发表于 2025-12-19 21:14:35 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2025-12-23 13:56:00 | 显示全部楼层
pecmd.exe放到什么位置
回复

使用道具 举报

发表于 2025-12-24 15:38:54 来自手机 | 显示全部楼层
本帖最后由 dhwc 于 2025-12-24 20:16 编辑

如果主窗体已经创建,怎样实时控制主窗体的透明度?     
CALL Main

_SUB Mainwindow,W300H360,窗口,,,15,,-top -disminb
ITEM OKButton,L200T285W84H30,调整透明度,CALL set
_END  

???

pecmd帮助里有ENVI @Mainwindow.trans=0x1,但是这个好像不能起作用,也不能指定具体的透明值
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-13 18:04

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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