anythinging 发表于 2019-11-29 19:35:41

【已解决】屏幕水印

本帖最后由 anythinging 于 2019-12-1 08:47 编辑

今天看到一个屏幕水印的程序,好象是ahk做的。自己尝试做了下,弄成一个全屏的gui,然后加点label文字,调成透明设置最前,结果文字发现影响点击。再看参考对象,好象在任何一个窗口上都不是最前,但却能显示出来,因此不影响点击。请各位大神指点,优化下,谢谢!
这个有90%神似了,但就差这么一点点儿

$WaterMark = GUICreate("水印",@DesktopWidth,@DesktopHeight,0,0,BitOR($WS_CHILD, $WS_POPUP),$WS_EX_LAYERED+$WS_EX_TOPMOST)
      GUISetBkColor(0x444444)
      _WinAPI_SetLayeredWindowAttributes($WaterMark, 0x444444)
      $waterLabel001      =      GUICtrlCreateLabel('水印测试水印测试水印测试水印测试水印测试', 200, 400, 1000, 100)
      GUICtrlSetFont(-1, 32, 400, 1,'微软雅黑')
      GUICtrlSetColor(-1, 0xFFFFFF);
      GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
      GUISetState(@SW_SHOW)



afan 发表于 2019-11-30 17:25:43

_WinAPI_SetLayeredWindowAttributes 第三个参数……

afan 发表于 2019-11-30 12:00:42

10年前就有了 论坛搜索 穿透很简单

haijie1223 发表于 2019-11-29 23:01:59

AHK代码发上来看下

anythinging 发表于 2019-11-29 23:19:51

haijie1223 发表于 2019-11-29 23:01
AHK代码发上来看下
没有源代码,就是个程序,它只能显示用户和ip,不能自定义内容,所以想试着自己写一个。

haijie1223 发表于 2019-11-30 00:42:27

anythinging 发表于 2019-11-29 23:19
没有源代码,就是个程序,它只能显示用户和ip,不能自定义内容,所以想试着自己写一个。

那就发上exe来

anythinging 发表于 2019-11-30 11:45:52

anythinging 发表于 2019-11-29 23:19
没有源代码,就是个程序,它只能显示用户和ip,不能自定义内容,所以想试着自己写一个。

1                                    

anythinging 发表于 2019-11-30 17:08:40

本帖最后由 anythinging 于 2019-11-30 17:09 编辑

afan 发表于 2019-11-30 12:00
10年前就有了 论坛搜索 穿透很简单
感谢指点!可以了,还有个问题,怎样能把这个label字做的透明些呢?这个程序的字好象是空心的,查了公共样式和扩展样式好象都达不到效果。

haijie1223 发表于 2019-11-30 21:29:01

anythinging 发表于 2019-11-30 11:45
1

你发的程序就是一个自绘文字和一个 UpdateLayeredWindow分层。

anythinging 发表于 2019-12-1 08:54:45

afan 发表于 2019-11-30 17:25
_WinAPI_SetLayeredWindowAttributes 第三个参数……

还想请教个问题,能否将
$waterLabel001      =      GUICtrlCreateLabel('水印测试水印测试水印测试水印测试水印测试', 200, 400, 1000, 100)
调整下角度?谢谢!

anythinging 发表于 2019-12-1 10:15:53

haijie1223 发表于 2019-11-30 21:29
你发的程序就是一个自绘文字和一个 UpdateLayeredWindow分层。

谢谢,能用简单的代码实现吗?

haijie1223 发表于 2019-12-1 11:05:41

anythinging 发表于 2019-12-1 10:15
谢谢,能用简单的代码实现吗?

a版给你的代码就是简单地,你上传的那个exe的代码,比这个要麻烦的多。一堆的gdi。

afan 发表于 2019-12-1 11:12:59

anythinging 发表于 2019-12-1 08:54
还想请教个问题,能否将
$waterLabel001      =      GUICtrlCreateLabel('水印测试水印测试水印测 ...

控件不能旋转,这些都是画上去的。
本来 SetLayeredWindowAttributes 这种靠滤色完成透明的就不适合文本,会有锯齿或毛边
要想完美,都得自行绘制,那样既美观还可以各种变形,包括使用路径绘制中空文字等等
多看看帮助文档里面关于 GDI GDI+ API 绘制文本方面的示例,论坛也有N多绘制文本字符串的帖子
作品功能越简单就越要用心做到完美,否则就是简陋了

anythinging 发表于 2019-12-1 15:46:57

明白了,感谢各位的指点!
页: [1]
查看完整版本: 【已解决】屏幕水印