中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 让CMD背景透明(未成功) 上一主题 | 下一主题
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『楼 主』:  让CMD背景透明(未成功)

今天下了个可以调用dll的扩展命令:_call.exe 下下来后改成了func.exe,然后从网上搜了段可以使指定颜色透明的代码(VB)的。
Public Declare Function SetLayeredWindowAttributes Lib _ "user32" (ByVal hnd As Long, ByVal clval As Long, _ ByVal alph As Byte, ByVal flago As Long) As Long Public Declare Function GetWindowLong Lib "user32" Alias _ "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Public Const LWA_ALPHA = &H2& Public Const LWA_COLORKEY = &H1& Public Const GWL_EXSTYLE = (-20) Public Const WS_EX_LAYERED = &H80000 Public Const WS_EX_TRANSPARENT = &H20& 部分透明窗体(窗体的一部分颜色透明): Dim lOldStyle As Long lOldStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE) SetWindowLong Me.hwnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED SetLayeredWindowAttributes Me.hwnd, &HFFFFFF, 255, LWA_COLORKEY
照着改成批处理的代码:
@echo off set GWL_EXSTYLE=-20 ext\func user32.dll GetForegroundWindow ::返回当前窗口句柄 set "hnd=%errorlevel%" ext\func user32.dll GetWindowLongA -d %hnd% -d %GWL_EXSTYLE% set "lOldStyle=%errorlevel%" ext\func user32.dll SetWindowLongA -d %hnd% -d %GWL_EXSTYLE% -d %lOldStyle% ext\func user32.dll SetLayeredWindowAttributes -d %hnd% -d 0 -d 255 -d 1 pause>nul
不知道为啥不行咧(好像那个or运算实现不了?是这个原因么?) 请高手指教。。。。


2009-5-30 08:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: