lixiaolong 发表于 2022-7-24 22:11:32

幽灵




好久没发了,写了一个幽灵玩玩.:face (24):

afan 发表于 2022-7-24 22:23:44

坐个沙发看幽灵~
貌似gif文件很大… 可以尝试用这个 ASR-Gif 录屏

lixiaolong 发表于 2022-7-24 23:00:41

afan 发表于 2022-7-24 22:23
坐个沙发看幽灵~
貌似gif文件很大… 可以尝试用这个 ASR-Gif 录屏

谢谢!但是回复不了,无法下载...

afan 发表于 2022-7-24 23:09:53

lixiaolong 发表于 2022-7-24 23:00
谢谢!但是回复不了,无法下载...

哦,发给你了~

lixiaolong 发表于 2022-7-25 00:09:01

afan 发表于 2022-7-24 23:09
哦,发给你了~

谢谢!文件小多了!

afan版主做了这么好的工具太厉害了.

afan 发表于 2022-7-25 00:42:50

lixiaolong 发表于 2022-7-25 00:09
谢谢!文件小多了!

afan版主做了这么好的工具太厉害了.

好用就行~
幽灵可以做成忽隐忽现的效果,应该更贴切~

lixiaolong 发表于 2022-7-25 01:22:37

afan 发表于 2022-7-25 00:42
好用就行~
幽灵可以做成忽隐忽现的效果,应该更贴切~

是的{:1_272:}

haijie1223 发表于 2022-7-25 10:10:53

好久不见上线了哈

holley 发表于 2022-7-25 10:23:08

本帖最后由 holley 于 2022-7-25 10:30 编辑

_GUICtrlCreatePNG是自己写的功能?我看即时帮助里只有GUICtrlCreatePic

afan 发表于 2022-7-25 12:01:13

holley 发表于 2022-7-25 10:23
_GUICtrlCreatePNG是自己写的功能?我看即时帮助里只有GUICtrlCreatePic

png格式的图片不能使用GUICtrlCreatePic 直接显示,而是必须先读取图像数据再设置到控件或窗口。

holley 发表于 2022-7-25 12:49:10

本帖最后由 holley 于 2022-7-25 13:39 编辑

afan 发表于 2022-7-25 12:01
png格式的图片不能使用GUICtrlCreatePic 直接显示,而是必须先读取图像数据再设置到控件或窗口。
这种意思?参考论坛搜索,初步达成想要的效果!略显复杂。

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <winapi.au3>
#include <GDIPlus.au3>
#include <Sound.au3>
Global Const $AC_SRC_ALPHA = 1
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\you.png")
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)
$gui = GUICreate("", $width, $height, -1, -1, $WS_POPUP, $WS_EX_LAYERED, GUICreate(""))
SetBitmap($gui, $hImage, 255)
GUISetState()
WinSetOnTop($gui, "", 1)

Func SetBitmap($hGUI, $hImage, $iOpacity)
      Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
      $hScrDC = _WinAPI_GetDC(0)
      $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
      $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
      $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
      $tSize = DllStructCreate($tagSIZE)
      $pSize = DllStructGetPtr($tSize)
      DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
      DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
      $tSource = DllStructCreate($tagPOINT)
      $pSource = DllStructGetPtr($tSource)
      $tBlend = DllStructCreate($tagBLENDFUNCTION)
      $pBlend = DllStructGetPtr($tBlend)
      DllStructSetData($tBlend, "Alpha", $iOpacity)
      DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
      _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
      _WinAPI_ReleaseDC(0, $hScrDC)
      _WinAPI_SelectObject($hMemDC, $hOld)
      _WinAPI_DeleteObject($hBitmap)
      _WinAPI_DeleteDC($hMemDC)
EndFunc   ;==>SetBitmap

$i=@DesktopWidth
$s=0
$b=300

Local $aSound=_SoundOpen(@ScriptDir&"\youling.mp3")
_SoundPlay($aSound)

While 1
        If _SoundStatus($aSound)="stopped" Then _SoundPlay($aSound)
        Sleep(5)
        If $s<300 Then
                WinMove($gui,"",$i,$s)
                $s+=1
                If $s=300 Then $b=300
        Else
                WinMove($gui,"",$i,$b)
                $b-=1
                If $b=0 Then $s=0
        EndIf
       
        $i-=1
        If $i=-400 Then
                _SoundClose($aSound)
                Exit
        EndIf
WEnd

afan 发表于 2022-7-25 13:09:01

holley 发表于 2022-7-25 12:49
这种意思?

这个是包含头文件,与png图片显示无关。
论坛搜索 png 显示

lixiaolong 发表于 2022-7-25 16:15:59

haijie1223 发表于 2022-7-25 10:10
好久不见上线了哈

好久不见了,有点忘了au3.
最近又开始学习了!

lixiaolong 发表于 2022-7-25 16:24:49

holley 发表于 2022-7-25 10:23
_GUICtrlCreatePNG是自己写的功能?我看即时帮助里只有GUICtrlCreatePic

_GUICtrlCreatePNG 这个以前我下载的UDF。
在哪里下载的我忘了。

你怎么知道代码,难道。。。

afan 发表于 2022-7-25 16:28:21

lixiaolong 发表于 2022-7-25 16:24
_GUICtrlCreatePNG 这个以前我下载的UDF。
在哪里下载的我忘了。



代码在你的动图中 :face (24):
页: [1] 2
查看完整版本: 幽灵