无忧启动论坛

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

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

    [复制链接]
6421#
发表于 2013-7-14 09:47:53 | 只看该作者
mdyblog 发表于 2013-7-14 09:38
envi a=12 3\n4 56
//SED a=99:0, ,\n,%a%   //UNIX换行
SED b=99:0, ,\r\n,%a%   //DOS换行

这样结果 是:   
12
3\n4
56


还有 上面的 BROW我在虚拟机下测试 也出错 系统 XPSP3 32b

点评

12 3\n4 56 不是你要的吗?  详情 回复 发表于 2013-7-14 09:55
回复

使用道具 举报

6422#
 楼主| 发表于 2013-7-14 09:55:37 | 只看该作者
diannao338 发表于 2013-7-14 09:47
这样结果 是:   
12
3\n4

12
3\n4
56
不是你要的吗?
回复

使用道具 举报

6423#
发表于 2013-7-14 10:02:56 | 只看该作者
本帖最后由 diannao338 于 2013-7-14 10:13 编辑

操作步骤
先安装adb pdf11.0并运行
重启系统
上面代码测试 出错
试了n个版本都这样,而 老4.0也一样 报同一个内存错误
看来 没办法解决了
只好使用时暂时把AcroRd32.exe重命名后再浏览了
使用中发现:
可能和这pdf软件运行机制有关  因为打开了这个A..exe文件,而这exe文件还可以重命名或者删除操作

更奇妙的是
先重命名这exe然后BROW浏览 *.pdf文件 后命名回去
之后不管重启电脑 下次在BROW时候都不会出问题了 也就是不会出现进程
回复

使用道具 举报

6424#
发表于 2013-7-14 10:05:53 | 只看该作者
mdyblog 发表于 2013-7-14 09:55
12
3\n4
56

我要的是
12
3
4
56
回复

使用道具 举报

6425#
 楼主| 发表于 2013-7-14 10:15:46 | 只看该作者
本帖最后由 mdyblog 于 2013-7-14 10:17 编辑
diannao338 发表于 2013-7-14 10:05
我要的是
12
3


envi a=12 3\n4 56
//SED a=99:0, ,\n,%a%   //UNIX换行
SED b=99:0, ,\r\n,%a%   //DOS换行
SED b=99:0,\\n,\r\n,%b%   //\n--》DOS换行
MESS. %b%
//HELP\ 下有个DOC文档
回复

使用道具 举报

6426#
发表于 2013-7-14 13:02:55 | 只看该作者
本帖最后由 2012qnmd 于 2013-7-14 13:05 编辑

-round 不能省, 否则,没有那个效果!

不停读硬盘,我也不知道, 就是两个版本差别部分代码引起的
回复

使用道具 举报

6427#
发表于 2013-7-14 17:00:53 | 只看该作者
mdyblog 发表于 2013-7-14 05:32
把 安装 驱动那段代码 贴出来看看。

就是最简单的UPNP -pnp啊。
要是看全码那就多了,很多其实跟PECMD也没关。
正常来说,就是下面几句:
PECMD.EXE DEVI $DRIVERS_NET.CAB
START /Wait x:\wxpe\system32\InfCacheBuild.exe %SystemRoot%
PECMD.EXE UPNP -pnp
……
全部的话:
@echo off
PUSHD %~dp0
PECMD ENVI
SET HK_ENV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
IF "%BootOS%"=="xp" ver|find /i " 5.2">nul &&SET BootOS=03
IF "%IniDrv%"=="" For /F "tokens=3" %%i In ('REG QUERY "%HK_ENV%" /V IniDrv^|find /I "IniDrv"') do SET IniDrv=%%i

IF "%1"=="NET" GOTO INST_NIC
IF /I "%1"=="WLAN" GOTO INST_NIC
IF /I "%1"=="DHCP" GOTO DHCP
IF /I "%1"=="PPPOE" GOTO PPPOE
EXIT

:INST_NIC
PECMD TIPS 正在驱动网卡,请稍候....,5000,1,%ProgramFiles%\tools\ico.DLL#18
IF /I "%1"=="WLAN" SET CM_NET=2

IF NOT EXIST %WinDir%\System32\PENetCfg.exe (
        ECHO 正在释放网络支持文件.......
        7z.exe x "NET_PART%BootOS%.7z" -y -aos -o"%WinDir%"
)
IF "%CM_NET%"=="2" (
        ECHO.
        ECHO 正在安装无线网卡驱动.......
        ECHO.
        PECMD TIPS 正在驱动网卡,正在安装无线网卡驱动....,5000,1,%ProgramFiles%\tools\ico.DLL#18
        PECMD.EXE DEVI $DRIVERS_NET_WIRELESS.CAB
        ECHO.>"%WinDir%\LD_NET_WAN.OK"
) ELSE (
        ECHO.
        ECHO 正在安装有线网卡驱动.......
        ECHO.
        PECMD TIPS 正在驱动网卡,正在安装有线网卡驱动....,5000,1,%ProgramFiles%\tools\ico.DLL#18
        PECMD.EXE DEVI $DRIVERS_NET.CAB
        ECHO.>"%WinDir%\LD_NET_LAN.OK"
        PECMD.EXE PXEFILE.INI
)       
START /Wait x:\wxpe\system32\InfCacheBuild.exe %SystemRoot%
PECMD.EXE UPNP -pnp

NET START EVENTLOG
if "%PXEFN%"=="" For /F "tokens=3" %%i In ('REG QUERY "%HK_ENV%" /V PXEFN^|find /I "PXEFN"') do SET PXEFN=%%i
if "%PXEFN%"=="" (PECMD.EXE UPNP -pnp -cn PEWS-* -wg WORKGROUP) ELSE PECMD.EXE UPNP -pnp -cn WINPE -wg WORKGROUP

PECMD.EXE UPNP -c p -i MS_TCPIP
PECMD.EXE UPNP -c c -i MS_MSCLIENT
PECMD.EXE UPNP -c s -i MS_SERVER

NET START TCPIP
NET START DHCP
NET START NLA
rem NET START LMHOSTS
SET K=HKLM\SYSTEM\CurrentControlSet\Services&&SET W=AutoShareServer&&SET S=AutoShareWks
REG ADD %K%\Lanmanserver\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\Lanmanserver\parameters /v %W% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %W% /t REG_DWORD /d 0 /f

IF "%CM_NET%"=="2" (
        PECMD.EXE UPNP -v -c p -i MS_NDISUIO
        PECMD.EXE UPNP -v -c s -i MS_WZCSVC
        NET START WZCSVC
)
NET START SERVER
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1

For /F "tokens=3" %%i In ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /V ComputerName') do SET ComputerName=%%i
REG ADD "%HK_ENV%" /v ComputerName /t REG_SZ /d "%Computername%" /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /va /f >nul
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /va /f >nul

IPCONFIG >nul
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&SET ShowIcon=1
IF #%ShowIcon%==#1 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" /f /v "{208D2C60-3AEA-1069-A2D7-08002B30309D}" /t REG_DWORD /d 0

NET USER Administrator tangope
NET USER Guest /active:yes
NET USER Guest /passwordreq:no

IF "%CM_NET%"=="2" GOTO LINK
IF "%HOSTIP%"=="" For /F "tokens=3" %%i In ('REG QUERY "%HK_ENV%" /V HOSTIP^|find /I "HOSTIP"') do SET HOSTIP=%%i
IF "%HOSTIP%"=="" GOTO SETIP_FROM_IPSET

REM 从注册表中取前面定义的IP地址
SET myIP=%HOSTIP%
SET myMASK=255.255.255.0
For /F "tokens=1,2,3 delims=." %%i In ("%HOSTIP%") do SET myGATEWAY=%%i.%%j.%%k.1
SET myDNS=%myGATEWAY%
GOTO SETIP

:SETIP_FROM_IPSET
IF NOT EXIST %IniDir%\IPSET.INI GOTO LINK
REM 从注册表中取前面定义的IP地址
PECMD TEXT 正在读取固定IP定义文件%IniDir%\IPSET.INI……#0xFF L200 T100 R600 B400 $18
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"IP地址^" %IniDir%\IPSET.INI') do SET myIP=%%i
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"子网掩码^" %IniDir%\IPSET.INI') do SET myMASK=%%i
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"默认网关^" %IniDir%\IPSET.INI') do SET myGATEWAY=%%i
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"DNS^" %IniDir%\IPSET.INI') do SET myDNS=%%i
PECMD TEXT 从文件%IniDir%\IPSET.INI读取的IP设置如下:\n\n  IP 地址=%myIP%\n  子网掩码=%myMASK%\n  默认网关=%myGATEWAY%\n  DNS=%myDNS% \n\n系统正在按上述值设置固定IP.....#0xFF L200 T100 R600 B400 $18

:SETIP
net stop dhcp 1>nul
rundll32 netshell.dll HrRenameConnection 1>nul
netsh add helper ifmon.dll 1>nul
netsh interface ip set address name="本地连接" source=static addr=%myIP% mask=%myMASK% 1>nul
netsh interface ip set address name="本地连接" gateway=%myGATEWAY% gwmetric=0 1>nul
netsh interface ip set dns name="本地连接" source=static addr=%myDNS% register=PRIMARY 1>nul
net start dhcp 1>nul

:LINK
PECMD TEXT
PECMD.EXE LINK %QuickLaunch%\PENETCFG 网络设置,%SystemRoot%\System32\PENETCFG.exe
PECMD.EXE LINK %USERPROFILE%\「开始」菜单\程序\系统设备\网络设置\网络设置 PENETCFG,%SystemRoot%\System32\PENETCFG.exe
PECMD.EXE LINK !%USERPROFILE%\「开始」菜单\程序\系统设备\网络设置\启用宽带连接,%CD%\START_NET.CMD,PPPOE,shell32.dll#17
PECMD.EXE LINK !%USERPROFILE%\「开始」菜单\程序\系统设备\网络设置\安装 HaneWin 网启服务,%CD%\START_NET.CMD,DHCP,shell32.dll#17
IF "%CM_NET%"=="2" GOTO END
IF "%PXEFN%"=="" GOTO END

:DHCP
REM 设置HAneWin DHCP-----------------
if "%PXEFN%"=="" For /F "tokens=3" %%i In ('REG QUERY "%HK_ENV%" /V PXEFN^|find /I "PXEFN"') do SET PXEFN=%%i
IF "%PXEFN%"=="" SET PXEFN=grldr
IF EXIST %IniDrv%\%PXEFN% goto FindBootFile
for %%i in (z y x w v u t s r q p o n m l k j i h g f e d c b a) do IF exist %%i:\%PXEFN% set IniDrv=%%i:&&GOTO FindBootFile
PECMD.EXE MESS 不存在网启文件:%IniDrv%\%PXEFN%,请准备好该文件后后再运行本程序!@提示:缺少网启文件 #OK *10000
GOTO END

:FindBootFile
IF NOT EXIST %WinDir%\System32\dhcpsrv.cpl 7z.exe x DHCP.7z -y -aos -o"%WinDir%\System32"
For /F "tokens=3" %%i In ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /V ComputerName') do SET ComputerName=%%i
setlocal
for /f "usebackq tokens=2 delims=[]" %%i in (`ping /n 1 %Computername%`) do set myip=%%i
for /f "tokens=1-3,4 delims=." %%i in ("%myip%") do set mynet=%%i.%%j.%%k
>%WinDir%\System32\DHCPsrv.ini echo.[License]
>>%WinDir%\System32\DHCPsrv.ini echo.Key=BBLZ26803UBBCAT9
>>%WinDir%\System32\DHCPsrv.ini echo.Name=Free User
>>%WinDir%\System32\DHCPsrv.ini echo.[DHCPsrv]
>>%WinDir%\System32\DHCPsrv.ini echo.Profile0=本地连接
>>%WinDir%\System32\DHCPsrv.ini echo.Include=%myip%
>>%WinDir%\System32\DHCPsrv.ini echo.TFTPDirectory=%IniDrv%\
>>%WinDir%\System32\DHCPsrv.ini echo.Multicast=0
>>%WinDir%\System32\DHCPsrv.ini echo.TestIP=1
>>%WinDir%\System32\DHCPsrv.ini echo.TFTPEnable=1
>>%WinDir%\System32\DHCPsrv.ini echo.TFTPMode=0
>>%WinDir%\System32\DHCPsrv.ini echo.Log=0
>>%WinDir%\System32\DHCPsrv.ini echo.TFTPWindowSize=1
>>%WinDir%\System32\DHCPsrv.ini echo.[本地连接]
>>%WinDir%\System32\DHCPsrv.ini echo.SubnetMask=255.255.255.0
>>%WinDir%\System32\DHCPsrv.ini echo.BaseIP=%mynet%.100
>>%WinDir%\System32\DHCPsrv.ini echo.Range=101
>>%WinDir%\System32\DHCPsrv.ini echo.NextIP=%myip%
>>%WinDir%\System32\DHCPsrv.ini echo.BootFile=%PXEFN%
>>%WinDir%\System32\DHCPsrv.ini echo.RootPath=
>>%WinDir%\System32\DHCPsrv.ini echo.UseOpt=0
>>%WinDir%\System32\DHCPsrv.ini echo.DNSUpdate=0
>>%WinDir%\System32\DHCPsrv.ini echo.InterfaceIP=%myip%
dhcp4nt.exe -install
endlocal
set ExtDrv=%IniDrv%
net share PEROOT /d >nul 2>nul
IF "%BootOS%"=="xp" (
        net share PEROOT=%ExtDrv%\ /unlimited
) ELSE net share PEROOT=%ExtDrv%\ /grant:Guest,full /unlimited
rem icacls %ExtDrv%\ /t /grant everyone:f
PECMD LINK %USERPROFILE%\「开始」菜单\程序\系统设备\网启服务器\HaneWin 网启服务端,dhcpsrv.cpl,,dhcp.ico
PECMD LINK %USERPROFILE%\「开始」菜单\程序\系统设备\网启服务器\中止 HaneWin 网启服务,dhcp4nt.exe,-remove,shell32.dll#2
PECMD LINK %USERPROFILE%\「开始」菜单\程序\系统设备\网启服务器\重启 HaneWin 网启服务,dhcp4nt.exe,-install,shell32.dll#9
START dhcpsrv.cpl
GOTO END

:PPPOE
IF NOT Exist "%SystemRoot%\SYSTEM32\RASPHONE.PBK" (
        ECHO 正在释放拨号组件.......
        7z.exe x PPPOE%BootOS%.7z -y -aos -o"%SystemRoot%\SYSTEM32"
)
PECMD.EXE UPNP -c p -i MS_L2TP
PECMD.EXE UPNP -c p -i MS_PPTP
PECMD.EXE UPNP -c p -i MS_PPPOE
START %SystemRoot%\SYSTEM32\RASPHONE.PBK
PECMD.EXE UPNP -c p -i MS_WANARP
PECMD.EXE UPNP -c p -i MS_NDISWAN
PECMD.EXE UPNP -c s -i MS_RASCLI
PECMD.EXE UPNP -c s -i MS_RASSRV
PECMD.EXE UPNP -c s -i MS_RASMAN
PECMD.EXE UPNP -c s -i MS_STEELHEAD
PECMD.EXE SERV TAPISRV
PECMD.EXE SERV RASMAN
PECMD.EXE SERV NETMAN
PECMD.EXE LINK %USERPROFILE%\「开始」菜单\程序\系统设备\网络设置\宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK
PECMD.EXE LINK !%USERPROFILE%\「开始」菜单\程序\系统设备\网络设置\挂断ADSL,%SystemRoot%\System32\HANGUP.CMD,,HANGUP.ICO
DEL /Q "%Programs%\系统设备\网络设置\启用宽带连接.LNK"
ECHO.>"%WinDir%\LD_NET_PPP.OK"
EXIT

:End
START /B penetcfg.exe
PECMD LOAD %SystemRoot%\System32\reshell.ini
EXIT
回复

使用道具 举报

6428#
 楼主| 发表于 2013-7-14 19:13:22 | 只看该作者
fukystone 发表于 2013-7-14 17:00
就是最简单的UPNP -pnp啊。
要是看全码那就多了,很多其实跟PECMD也没关。
正常来说,就是下面几句:

InfCacheBuild.exe  的话, DEVI 不用$
PECMD.EXE DEVI   DRIVERS_NET.CAB
START /Wait x:\wxpe\system32\InfCacheBuild.exe %SystemRoot%
回复

使用道具 举报

6429#
 楼主| 发表于 2013-7-14 19:19:44 | 只看该作者
2012qnmd 发表于 2013-7-14 13:02
-round 不能省, 否则,没有那个效果!

不停读硬盘,我也不知道, 就是两个版本差别部分代码引起的

ENVI @this.bkcolor=0x4B0091
ITEM -pcenter   -nscope ITEM3,L58T32W90H90,关,,1.ico
ENVI @ITEM3.bkcolor=0x4B0091
回复

使用道具 举报

6430#
 楼主| 发表于 2013-7-14 19:59:30 | 只看该作者
本帖最后由 mdyblog 于 2013-7-14 20:01 编辑
2012qnmd 发表于 2013-7-14 13:02
-round 不能省, 否则,没有那个效果!

不停读硬盘,我也不知道, 就是两个版本差别部分代码引起的


79N-55  -round   X64也可以用了。



2:  不停读硬盘:
    最近的 老版,  稳定版, 那个没问题。
回复

使用道具 举报

6431#
发表于 2013-7-14 21:39:26 | 只看该作者
mdyblog 发表于 2013-7-14 19:13
InfCacheBuild.exe  的话, DEVI 不用$
PECMD.EXE DEVI   DRIVERS_NET.CAB
START /Wait x:\wxpe\system ...

改了,没效果。
问题是出在UPNP -pnp这句,看图

无标题.jpg (131.13 KB, 下载次数: 225)

无标题.jpg
回复

使用道具 举报

6432#
发表于 2013-7-14 22:44:42 | 只看该作者
本帖最后由 527104427 于 2013-7-14 22:59 编辑
mdyblog 发表于 2013-7-14 19:59
79N-55  -round   X64也可以用了。

  1. TEAM ENVI TDAT=|ENVI Sum=0|ENVI$ TAB=09|ENVI$ NLC=0a
  2. FORX !\PETOOLS\PETOOLS.WIM,WIM,0,
  3. {
  4.         FORM DrvType=%WIM%
  5.         ENVI DriveType=
  6.         FIND $%DrvType%=DRIVE_UNKNOWN,ENVI DriveType=未知设备
  7.         FIND $%DrvType%=DRIVE_NO_ROOT_DIR,ENVI DriveType=非法路径
  8.         FIND $%DrvType%=DRIVE_REMOVABLE,ENVI DriveType=可移动设备
  9.         FIND $%DrvType%=DRIVE_FIXED,ENVI DriveType=硬盘
  10.         FIND $%DrvType%=DRIVE_REMOTE,ENVI DriveType=网络驱动器
  11.         FIND $%DrvType%=DRIVE_CDROM,ENVI DriveType=光驱
  12.         FIND $%DrvType%=DRIVE_CDROMUSB,ENVI DriveType=USB光驱
  13.         FIND $%DrvType%=DRIVE_USBFLASH,ENVI DriveType=U盘
  14.         FIND $%DrvType%=DRIVE_USBDISK,ENVI DriveType=USB移动硬盘
  15.         FIND $%DrvType%=DRIVE_RAMDISK,ENVI DriveType=内存盘
  16.         FIND $%DrvType%=FUNCTION_ERROR,ENVI DriveType=函数失败
  17.         ENVI TDAT=%TDAT%%DriveType%%TAB%%WIM%%TAB%%TAB%%NLC%
  18. }

  19. WIN1

  20. _SUB WIN1,W410H270,外置程序列表
  21.         ITEM &BUTDIR,L330T208W60H25,确定,TEAM CALl START|,
  22.         ENVI &&TITLE=%TAB%+110:介质类型%TAB%+300:外置程序路径
  23.         TABL TABL1,W400H200,%&TITLE%,%TDAT%
  24. _END

  25. _SUB START
  26. mess %TABL1%
  27. _END
复制代码
胡乱整了一个窗口,也不知道正不正确。

点确定的时候,如何将选定的外置程序保存为一个变量并传递出去呢?

1.png (34.02 KB, 下载次数: 245)

1.png
回复

使用道具 举报

6433#
发表于 2013-7-15 06:48:54 | 只看该作者
本帖最后由 2012qnmd 于 2013-7-15 07:06 编辑

55, 32位,圆图标时,有点问题, 一个是显示问题(如图)
另外, 点击图标时, 图标会消失.( 图标也就是按钮,对应执行一个命令,打开一个窗口,关闭窗口时)

54( 7月11日的, 这个版本有好几个都是54) 正常. 读硬盘的问题也没有.

如果不使用:圆,  55,32位,目前正常.

64位还没测试.

未命名55.JPG (14.72 KB, 下载次数: 237)

未命名55.JPG
回复

使用道具 举报

6434#
发表于 2013-7-15 06:59:01 | 只看该作者
本帖最后由 2012qnmd 于 2013-7-15 07:26 编辑

X64

问题基本和32位差不多. 圆图标时, 通过按钮打开的程序或者目录窗口,关闭时,图标消失(如,按钮执行后打开命令行,点关闭,按钮图标消失)

不用使用圆时, 32位正常.  64位,按动按钮时, 图标有个白屏闪动( 当按钮有颜色时,按动可以看见)

回复

使用道具 举报

6435#
发表于 2013-7-15 07:39:33 | 只看该作者
本帖最后由 2012qnmd 于 2013-7-15 08:00 编辑

读硬盘的问题,这个版本没了,正常了

下面代码,可以看见相关问题:
1. X64, 方按钮,点击的瞬间, 闪动 (好像执行命令不同,闪的程度也不同,EXE,CMD)
2. 圆按钮,点击,打开CMD窗口, 再关闭CM窗口时,图标没了.

_SUB WIN3,W450H333
ENVI @this.bkcolor=0x4B0091
ITEM -pcenter  -round -nscope ITEM3,L58T32W90H90,关,exec cmd.exe,1.ico
ENVI @ITEM3.bkcolor=0x4B0091
_END

CALL @WIN3
回复

使用道具 举报

6436#
发表于 2013-7-15 09:10:01 | 只看该作者
clonecd 发表于 2013-7-15 00:08
1. 使用Windows消息
2. 那个搜索WIM的函数改成多线程更好,否则大硬盘,你要搜个10秒,主界面出来太慢 ...

哈哈,多谢老大,你的一键还原很赞
回复

使用道具 举报

6437#
 楼主| 发表于 2013-7-15 10:47:06 | 只看该作者
fukystone 发表于 2013-7-14 21:39
改了,没效果。
问题是出在UPNP -pnp这句,看图

你用外置的  BartPe .exe  替换这句 试试。 (好像是这个名,老的PE有)
或换 个 其他的  PE模板。 其实就是一个 注册表的 值。 设为0就 关闭了警告。 但不能直接设为0.
回复

使用道具 举报

6438#
发表于 2013-7-15 10:57:26 | 只看该作者
方按钮,闪就闪吧, 原来的版本也是,可能就那样,使用支持,看这效果也过得去.

圆的,图标消失问题,如果解决,我再看看效果.

回复

使用道具 举报

6439#
 楼主| 发表于 2013-7-15 11:06:57 | 只看该作者
2012qnmd 发表于 2013-7-15 06:48
55, 32位,圆图标时,有点问题, 一个是显示问题(如图)
另外, 点击图标时, 图标会消失.( 图标也就是按钮,对应 ...


这个效果就对了。这才是按钮。  多余的部分被剪切掉了。

你要方的,  -pcenter  -nscope 就可以了。 区别就是 这里。
回复

使用道具 举报

6440#
 楼主| 发表于 2013-7-15 11:11:41 | 只看该作者
2012qnmd 发表于 2013-7-15 10:57
方按钮,闪就闪吧, 原来的版本也是,可能就那样,使用支持,看这效果也过得去.

圆的,图标消失问题,如果解决, ...

晚上, 再努力一把。
回复

使用道具 举报

6441#
 楼主| 发表于 2013-7-15 11:16:16 | 只看该作者

按下不起的按钮, 手动设置按钮状态

按下不起的按钮, 手动设置按钮状态
按下不起的按钮.WCS:
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
//SET ::BM_GETSTATE=0x00F2  //获取
SET ::BM_SETSTATE=0x00F3  //设定

SET ::BST_UNCHECKED=0x0000  //按钮弹起状态。
SET ::BST_CHECKED=0x0001    //按钮凹下去效果。
SET  ::WM_LBUTTONDOWN=0x0201
SET  ::WM_LBUTTONUP=0x0202
SET  ::WM_RBUTTONDOWN=0x0204


WIN1
_SUB WIN1,W289H249,按下不起的按钮,
    ITEM ITEM2,L45T105W60H30,按下, CALL Bt1Down
    ITEM ITEM3,L158T107W60H30,弹起,CALL Bt1Up
    ITEM ITEM1,L78T41W60H30,ITEM1,    CALL OnBt1       //左键按下
    ENVI @ITEM1.MSG=%&::WM_RBUTTONDOWN%:  CALL Bt1Up   //右键弹起
    ENVI @this.MSG=%&::WM_RBUTTONDOWN%:  CALL Bt1Up  
_END

_SUB OnBt1
    CALL Bt1Down
    // CALL @--popmenu       MyMenu1
_END

_SUB Bt1Down
    ENVI @ITEM1.SENDMSG=%&::BM_SETSTATE%;%&::BST_CHECKED%,       //设置按钮凹下去效果。
_END

_SUB Bt1Up
    ENVI @ITEM1.SENDMSG=%&::BM_SETSTATE%;%&::BST_UNCHECKED%,     //设置按钮凹下去效果。
_END

回复

使用道具 举报

6442#
发表于 2013-7-15 12:10:21 | 只看该作者
clonecd 发表于 2013-7-15 00:08
1. 使用Windows消息
2. 那个搜索WIM的函数改成多线程更好,否则大硬盘,你要搜个10秒,主界面出来太慢 ...

继续请教,
问题1:如何在红色框中加个倒计时,自动选择第一个?
问题2:可否禁止按Ctrl多选?
  1. #code=936
  2. SET  ::WM_LBUTTONDOWN=0x0201
  3. CALL @WIN1

  4. _SUB WIN1,W410H270,外置程序列表
  5.         TEAM ENVI Sum=0|ENVI &TDAT=|ENVI &&C1=|ENVI &&C2=|ENVI$ &&TAB=09|ENVI$ &&NLC=0a

  6.         ITEM &BUTDIR1,L15T208W60H25,确定,TEAM CALL START|,
  7.         ITEM &BUTDIR2,L330T208W60H25,取消,TEAM CALL STOP|,
  8.         ENVI &&TITLE=%TAB%+110:介质类型%TAB%+300:外置程序路径
  9.         TABL TABL1,W400H200,%&TITLE%,,

  10.         ENVI @TABL1.MSG=_%&WM_LBUTTONDOWN%: CALL PickWIM

  11.         ENVI @WIN1.MSG=#1: CALL OnMsg1
  12.         THREAD*  SearchWIM
  13. _END

  14. _SUB OnMsg1
  15.         ENVI @TABL1.Val=1*;%&TDAT%
  16. _END


  17. _SUB PickWIM
  18.         ENVI  @TABL1.Sel=?&&Sel
  19.         ENVI  @TABL1.Val=?%&Sel%.1;&C1
  20.         ENVI  @TABL1.Val=?%&Sel%.2;&C2
  21. _END


  22. _SUB SearchWIM
  23.         FORX !\PETOOLS\PETOOLS.WIM,&&WIM,0,
  24.         {
  25.                 TEAM CALC #Sum=%Sum%+1|ENVI &&DriveType=|FORM &&DrvType=%&WIM%
  26.                 FIND $%&DrvType%=DRIVE_UNKNOWN,ENVI &&DriveType=未知设备
  27.                 FIND $%&DrvType%=DRIVE_NO_ROOT_DIR,ENVI &&DriveType=非法路径
  28.                 FIND $%&DrvType%=DRIVE_REMOVABLE,ENVI &&DriveType=可移动设备
  29.                 FIND $%&DrvType%=DRIVE_FIXED,ENVI &&DriveType=硬盘
  30.                 FIND $%&DrvType%=DRIVE_REMOTE,ENVI &&DriveType=网络驱动器
  31.                 FIND $%&DrvType%=DRIVE_CDROM,ENVI &&DriveType=光驱
  32.                 FIND $%&DrvType%=DRIVE_CDROMUSB,ENVI &&DriveType=USB光驱
  33.                 FIND $%&DrvType%=DRIVE_USBFLASH,ENVI &&DriveType=U盘
  34.                 FIND $%&DrvType%=DRIVE_USBDISK,ENVI &&DriveType=USB移动硬盘
  35.                 FIND $%&DrvType%=DRIVE_RAMDISK,ENVI &&DriveType=内存盘
  36.                 FIND $%&DrvType%=FUNCTION_ERROR,ENVI &&DriveType=函数失败
  37.                 ENVI &TDAT=%&TDAT%%&DriveType%%&TAB%%&WIM%%&TAB%%&TAB%%&NLC%
  38.         }

  39.         ENVI @WIN1.POSTMSG=#1
  40. _END


  41. _SUB START
  42.         MESS C1="%&C1%"
  43.         MESS C2="%&C2%"
  44.         MESS Sum="%Sum%"
  45. _END

  46. _SUB STOP
  47.         TEAM ENVI &&C1=|ENVI &&C2=
  48. _END

复制代码

1.png (36.5 KB, 下载次数: 241)

1.png
回复

使用道具 举报

6443#
发表于 2013-7-15 12:11:06 | 只看该作者
mdyblog 发表于 2013-7-15 11:16
按下不起的按钮, 手动设置按钮状态
按下不起的按钮.WCS:
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1

同问老大
回复

使用道具 举报

6444#
 楼主| 发表于 2013-7-15 13:51:11 | 只看该作者
527104427 发表于 2013-7-15 12:10
继续请教,
问题1:如何在红色框中加个倒计时,自动选择第一个?
问题2:可否禁止按Ctrl多选?

.......
_SUB WIN1,W410H270,外置程序列表,
    TEAM ENVI Sum=0|ENVI &&TDAT=|ENVI &&C1=|ENVI &&C2=|ENVI$ &&TAB=09|ENVI$ &&NLC=0a
    ITEM &BUTDIR1,L15T208W60H25,确定,TEAM CALL START|,
    ITEM &BUTDIR2,L330T208W60H25,取消,TEAM CALL STOP|,
    ENVI &&TITLE=%TAB%+110:介质类型%TAB%+300:外置程序路径
    TABL TABL1,W400H200,%&TITLE%,%&TDAT%, 0x10940
   
    ENVI @TABL1.MSG=_%&WM_LBUTTONDOWN%: CALL PickWIM
    ENVI @WIN1.MSG=#1: CALL OnMsg1
    LABE -vcenter -center &LABE1,L159T208W97H25,,,
    SET-def T=20  //20秒超时
    TIME &Timer1,1000, CALL OnTimer1
    CALL OnTimer1
    THREAD*  SearchWIM
_END

_SUB  OnTimer1
    ENVI @&LABE1=%&T% 秒
    CALC &T=%&T% - 1
    IFEX $%&T% < 0,  TEAM ENVI @&Timer1=0| CALL START  //OK 按钮
_END

.......

点评

多谢老大,CTRL多选问题和倒计时问题解决了。 但,倒完时,貌似不会默认选中第一项  详情 回复 发表于 2013-7-15 14:15
回复

使用道具 举报

6445#
发表于 2013-7-15 14:15:17 | 只看该作者
mdyblog 发表于 2013-7-15 13:51
.......
_SUB WIN1,W410H270,外置程序列表,
    TEAM ENVI Sum=0|ENVI &&TDAT=|ENVI &&C1=|ENVI &&C2=| ...

多谢老大,CTRL多选问题和倒计时问题解决了。

但,倒完时,貌似不会默认选中第一项
回复

使用道具 举报

6446#
发表于 2013-7-15 14:50:14 | 只看该作者
clonecd 发表于 2013-7-15 14:46
_SUB  OnTimer1
    ENVI @&LABE1=%&T% 秒
    CALC &T=%&T% - 1

哈哈,多谢多谢,这下就强大了!
看这些代码还是有点云里雾里的,下定决心,一定要学习一下C++
回复

使用道具 举报

6447#
发表于 2013-7-15 15:07:28 | 只看该作者
圆按钮,如果没有图标,没有颜色, 开始改变看不见东西,
都是窗口的颜色, 在那个位置点击,打开窗口后,再关闭,才会看见圆按钮.

问题大概就在这里了.
回复

使用道具 举报

6448#
 楼主| 发表于 2013-7-15 15:25:33 | 只看该作者
本帖最后由 mdyblog 于 2013-7-15 15:26 编辑
527104427 发表于 2013-7-15 14:15
多谢老大,CTRL多选问题和倒计时问题解决了。

但,倒完时,貌似不会默认选中第一项


-----
理解错误。

点评

最近在折腾双核的03PE,但是发现,双核的03PE如果用在单核的机子上面,一启用网络就死机。 问:PECMD能否判断CPU是单核还是多核?如果可以判断,那死机的问题估计还有戏唱。  详情 回复 发表于 2013-7-15 21:42
回复

使用道具 举报

6449#
 楼主| 发表于 2013-7-15 15:28:43 | 只看该作者
2012qnmd 发表于 2013-7-15 15:07
圆按钮,如果没有图标,没有颜色, 开始改变看不见东西,
都是窗口的颜色, 在那个位置点击,打开窗口后,再关闭, ...

这个比较费时。 晚上再条条。
回复

使用道具 举报

6450#
发表于 2013-7-15 15:44:35 | 只看该作者
mdyblog 发表于 2013-7-15 10:47
你用外置的  BartPe .exe  替换这句 试试。 (好像是这个名,老的PE有)
或换 个 其他的  PE模板。 其实 ...

bartpe没问题。
确实就是那个注册表值的问题。
但监控注册表的话,即使我先一步写注册表把值变为0,一运行pecmd UPNP -pnp,值就变为1了,可见是UPNP这句设置有问题吧?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-9 13:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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