开源_____
功能说明:本程序是基于易语言开发的一款桌面增强工具,其核心功能是提供一个具有透明视觉效果且支持拖拽添加的浮动快速启动栏。通过对代码的分析,可以总结出以下主要特性与技术实现:
1. 界面外观与渲染:程序利用 GDI+ 图形库技术支持 PNG 图片透明度,通过 `置窗口PNG外型` 子程序将窗口设置为层叠窗口(WS_EX_LAYERED),从而实现自定义形状的无边框透明界面。主窗口默认尺寸经过计算(宽度约 800 像素,高度根据屏幕适配),初始位置设置在屏幕下方中央,营造出类似 Dock 栏或悬浮工具的视觉体验。
2. 交互逻辑:程序集成了拖放对象控件(`edroptarget` 支持库),允许用户直接将本地文件、快捷方式或可执行程序拖放到窗口区域。在 `_拖放对象 1_得到文件` 子程序中,代码会判断拖入文件的类型(区分 .exe 和 .lnk),提取目标路径后存入名为“快捷启动”的数组中。该数组预设了 13 个槽位,若已满则会提示用户“位置已满”,体现了对启动项数量的限制管理。
3. 窗口行为与吸附:程序在 `__启动窗口_位置被改变` 事件中实现了智能吸附功能。当用户拖动窗口边缘接近屏幕特定位置(如顶部、底部或水平中线)时,窗口会自动捕捉并对齐到固定坐标(例如底部距离屏幕底边 81 像素处)。这种设计方便用户将其固定在常用区域而不遮挡其他应用。同时,`窗口 1` 作为子组件随主窗口同步移动。
4. 状态管理与持久化:程序使用了多线程支持(`EThread` 支持库),分别在窗口创建完毕后启动线程读取配置,以及在窗口销毁前启动线程保存配置。这种异步处理方式避免了文件 IO 操作阻塞主界面响应。此外,在程序退出流程中,它会执行显示桌面图标和任务栏的操作,表明运行时可能曾对这些系统元素进行了隐藏以提供更纯净的界面环境。
5. 技术架构:整体架构依赖于易语言原生窗口程序集,结合了多个标准支持库(eAPI 用于底层窗口句柄操作,iext2 扩展接口)。程序通过全局变量控制状态(如 `off` 标志位判断是否关闭,`允许改变` 控制布局锁定),展现了典型的 Windows 客户端应用开发模式。综上所述,这是一个轻量级、自定义性强且注重用户体验的快速启动管理工具。
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 置窗口PNG外型
| |
| |------ Gdiplus_初始化__
| |
| |------ __启动窗口_位置被改变
| |
| |------ __启动窗口_将被销毁
| |
| |------ _拖放对象1_得到文件
| |
| |------ 取图片框
| |
| |------ 保存配置
| |
| |------ 读取配置
| |
| |------ __启动窗口_鼠标右键被放开
| |
| |------ _开机启动_被选择
| |
| |------ _退出_被选择
| |
| |------ _锁定_被选择
| |
| |------ _隐藏系统任务栏_被选择
| |
| |------ _隐藏系统桌面_被选择
| |
| |------ 滑动移动
| |
| |------ _最小化_被选择
| |
| |
======字节流
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 释放字节流
| |
| |------ 创建字节流
| |
| |------ 取字节流指针
| |
| |------ 取字节流尺寸
| |
| |------ 取出字节集
| |
| |
======窗口程序集2
| |
| |------ _窗口1_创建完毕
| |
| |------ 提示消息组件关联
| |
| |------ 子程序1
| |
| |------ 图标淡入淡出
| |
| |------ _窗口1_按下某键
| |
| |------ _图片框1_被双击
| |
| |------ _图片框2_被双击
| |
| |------ _图片框3_被双击
| |
| |------ _图片框4_被双击
| |
| |------ _图片框5_被双击
| |
| |------ _图片框6_被双击
| |
| |------ _图片框7_被双击
| |
| |------ _图片框8_被双击
| |
| |------ _图片框9_被双击
| |
| |------ _图片框10_被双击
| |
| |------ _图片框11_被双击
| |
| |------ _图片框12_被双击
| |
| |------ _图片框13_被双击
| |
| |
======窗口程序集3
| |
| |------ _窗口2_创建完毕
| |
| |------ 窗口外形
| |
| |------ _窗口2_将被销毁
| |
| |
======调用的Dll
| |
| |---[dll]------ GdipCreateFromHDC
| |
| |---[dll]------ GdipLoadImageFromFile
| |
| |---[dll]------ GdipLoadImageFromStream
| |
| |---[dll]------ GdipGetImageDimension
| |
| |---[dll]------ GdipDrawImageRect
| |
| |---[dll]------ GdipDisposeImage
| |
| |---[dll]------ GdipDeleteGraphics
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ CreateFontIndirectA
| |
| |---[dll]------ SelectObject
| |
| |---[dll]------ DeleteDC
| |
| |---[dll]------ DeleteObject
| |
| |---[dll]------ ReleaseDC
| |
| |---[dll]------ SetBkMode
| |
| |---[dll]------ SetTextColor
| |
| |---[dll]------ TextOutA
| |
| |---[dll]------ CreateCompatibleDC
| |
| |---[dll]------ LoadImageA
| |
| |---[dll]------ GetObjectA
| |
| |---[dll]------ GetDIBits_BimapInfo
| |
| |---[dll]------ GetDIBits
| |
| |---[dll]------ CopyMemory_BITMAPINFO
| |
| |---[dll]------ CopyMemory_BITMAPFILEHEADER
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ GdiplusStartup
| |
| |---[dll]------ GdiplusShutdown
| |
| |---[dll]------ GlobalAlloc
| |
| |---[dll]------ GlobalLock
| |
| |---[dll]------ GlobalUnlock
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ GlobalFree
| |
| |---[dll]------ CreateStreamOnHGlobal
| |
| |---[dll]------ GdipCreateSolidFill
| |
| |---[dll]------ GdipCreateFont
| |
| |---[dll]------ GdipDeleteFontFamily
| |
| |---[dll]------ GdipCreateFontFamilyFromName
| |
| |---[dll]------ GdipDrawString
| |
| |---[dll]------ GdipGetTextRenderingHint
| |
| |---[dll]------ GdipDeleteBrush
| |
| |---[dll]------ GdipDeleteFont
| |
| |---[dll]------ GdipCreateTexture
| |
| |---[dll]------ CreateCompatibleBitmap
| |
| |---[dll]------ GetDC
| |
| |---[dll]------ FillRect
| |
| |---[dll]------ SetWindowLongA
| |
| |---[dll]------ CallWindowProcA
| |
| |---[dll]------ CallWindowProc_调用子程序
| |
| |---[dll]------ RtlMoveMemory
| |
| |---[dll]------ GlobalReAlloc
| |
| |---[dll]------ CLSIDFromString
| |
| |---[dll]------ GdipAlloc
| |
| |---[dll]------ GdipFree
| |
| |---[dll]------ GdipFlush
| |
| |---[dll]------ GdipCreateFromHDC2
| |
| |---[dll]------ GdipCreateFromHWND
| |
| |---[dll]------ GdipCreateFromHWNDICM
| |
| |---[dll]------ GdipGetDC
| |
| |---[dll]------ GdipReleaseDC
| |
| |---[dll]------ GdipSetCompositingMode
| |
| |---[dll]------ GdipGetCompositingMode
| |
| |---[dll]------ GdipSetRenderingOrigin
| |
| |---[dll]------ GdipGetRenderingOrigin
| |
| |---[dll]------ GdipSetCompositingQuality
| |
| |---[dll]------ GdipGetCompositingQuality
| |
| |---[dll]------ GdipSetSmoothingMode
| |
| |---[dll]------ GdipGetSmoothingMode
| |
| |---[dll]------ GdipSetPixelOffsetMode
| |
| |---[dll]------ GdipGetPixelOffsetMode
| |
| |---[dll]------ GdipSetTextRenderingHint
| |
| |---[dll]------ GdipSetTextContrast
| |
| |---[dll]------ GdipGetTextContrast
| |
| |---[dll]------ GdipSetInterpolationMode
| |
| |---[dll]------ GdipGetInterpolationMode
| |
| |---[dll]------ GdipSetWorldTransform
| |
| |---[dll]------ GdipResetWorldTransform
| |
| |---[dll]------ GdipMultiplyWorldTransform
| |
| |---[dll]------ GdipTranslateWorldTransform
| |
| |---[dll]------ GdipScaleWorldTransform
| |
| |---[dll]------ GdipRotateWorldTransform
| |
| |---[dll]------ GdipGetWorldTransform
| |
| |---[dll]------ GdipResetPageTransform
| |
| |---[dll]------ GdipGetPageUnit
| |
| |---[dll]------ GdipGetPageScale
| |
| |---[dll]------ GdipSetPageUnit
| |
| |---[dll]------ GdipSetPageScale
| |
| |---[dll]------ GdipGetDpiX
| |
| |---[dll]------ GdipGetDpiY
| |
| |---[dll]------ GdipTransformPoints
| |
| |---[dll]------ GdipTransformPointsI
| |
| |---[dll]------ GdipGetNearestColor
| |
| |---[dll]------ GdipCreateHalftonePalette
| |
| |---[dll]------ GdipDrawLine
| |
| |---[dll]------ GdipDrawLineI
| |
| |---[dll]------ GdipDrawLines
| |
| |---[dll]------ GdipDrawLinesI
| |
| |---[dll]------ GdipDrawArc
| |
| |---[dll]------ GdipDrawArcI
| |
| |---[dll]------ GdipDrawBezier
| |
| |---[dll]------ GdipDrawBezierI
| |
| |---[dll]------ GdipDrawBeziers
| |
| |---[dll]------ GdipDrawBeziersI
| |
| |---[dll]------ GdipDrawRectangle
| |
| |---[dll]------ GdipDrawRectangleI
| |
| |---[dll]------ GdipDrawRectangles
| |
| |---[dll]------ GdipDrawRectanglesI
| |
| |---[dll]------ GdipDrawEllipse
| |
| |---[dll]------ GdipDrawEllipseI
| |
| |---[dll]------ GdipDrawPie
| |
| |---[dll]------ GdipDrawPieI
| |
| |---[dll]------ GdipDrawPolygon
| |
| |---[dll]------ GdipDrawPolygonI
| |
| |---[dll]------ GdipDrawPath
| |
| |---[dll]------ GdipDrawCurve
| |
| |---[dll]------ GdipDrawCurveI
| |
| |---[dll]------ GdipDrawCurve2
| |
| |---[dll]------ GdipDrawCurve2I
| |
| |---[dll]------ GdipDrawCurve3
| |
| |---[dll]------ GdipDrawCurve3I
| |
| |---[dll]------ GdipDrawClosedCurve
| |
| |---[dll]------ GdipDrawClosedCurveI
| |
| |---[dll]------ GdipDrawClosedCurve2
| |
| |---[dll]------ GdipDrawClosedCurve2I
| |
| |---[dll]------ GdipGraphicsClear
| |
| |---[dll]------ GdipFillRectangle
| |
| |---[dll]------ GdipFillRectangleI
| |
| |---[dll]------ GdipFillRectangles
| |
| |---[dll]------ GdipFillRectanglesI
| |
| |---[dll]------ GdipFillPolygon
| |
| |---[dll]------ GdipFillPolygonI
| |
| |---[dll]------ GdipFillPolygon2
| |
| |---[dll]------ GdipFillPolygon2I
| |
| |---[dll]------ GdipFillEllipse
| |
| |---[dll]------ GdipFillEllipseI
| |
| |---[dll]------ GdipFillPie
| |
| |---[dll]------ GdipFillPieI
| |
| |---[dll]------ GdipFillPath
| |
| |---[dll]------ GdipFillClosedCurve
| |
| |---[dll]------ GdipFillClosedCurveI
| |
| |---[dll]------ GdipFillClosedCurve2
| |
| |---[dll]------ GdipFillClosedCurve2I
| |
| |---[dll]------ GdipFillRegion
| |
| |---[dll]------ GdipDrawImage
| |
| |---[dll]------ GdipDrawImageI
| |
| |---[dll]------ GdipDrawImageRectI
| |
| |---[dll]------ GdipDrawImagePoints
| |
| |---[dll]------ GdipDrawImagePointsI
| |
| |---[dll]------ GdipDrawImagePointRect
| |
| |---[dll]------ GdipDrawImagePointRectI
| |
| |---[dll]------ GdipDrawImageRectRect
| |
| |---[dll]------ GdipDrawImageRectRectI
| |
| |---[dll]------ GdipDrawImagePointsRect
| |
| |---[dll]------ GdipDrawImagePointsRectI
| |
| |---[dll]------ GdipEnumerateMetafileDestPoint
| |
| |---[dll]------ GdipEnumerateMetafileDestPointI
| |
| |---[dll]------ GdipEnumerateMetafileDestRect
| |
| |---[dll]------ GdipEnumerateMetafileDestRectI
| |
| |---[dll]------ GdipEnumerateMetafileDestPoints
| |
| |---[dll]------ GdipEnumerateMetafileDestPointsI
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestPoint
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestPointI
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestRect
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestRectI
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestPoints
| |
| |---[dll]------ GdipEnumerateMetafileSrcRectDestPointsI
| |
| |---[dll]------ GdipPlayMetafileRecord
| |
| |---[dll]------ GdipSetClipGraphics
| |
| |---[dll]------ GdipSetClipRect
| |
| |---[dll]------ GdipSetClipRectI
| |
| |---[dll]------ GdipSetClipPath
| |
| |---[dll]------ GdipSetClipRegion
| |
| |---[dll]------ GdipSetClipHrgn
| |
| |---[dll]------ GdipResetClip
| |
| |---[dll]------ GdipTranslateClip
| |
| |---[dll]------ GdipTranslateClipI
| |
| |---[dll]------ GdipGetClip
| |
| |---[dll]------ GdipGetClipBounds
| |
| |---[dll]------ GdipGetClipBoundsI
| |
| |---[dll]------ GdipIsClipEmpty
| |
| |---[dll]------ GdipGetVisibleClipBounds
| |
| |---[dll]------ GdipGetVisibleClipBoundsI
| |
| |---[dll]------ GdipIsVisibleClipEmpty
| |
| |---[dll]------ GdipIsVisiblePoint
| |
| |---[dll]------ GdipIsVisiblePointI
| |
| |---[dll]------ GdipIsVisibleRect
| |
| |---[dll]------ GdipIsVisibleRectI
| |
| |---[dll]------ GdipSaveGraphics
| |
| |---[dll]------ GdipRestoreGraphics
| |
| |---[dll]------ GdipBeginContainer
| |
| |---[dll]------ GdipBeginContainerI
| |
| |---[dll]------ GdipBeginContainer2
| |
| |---[dll]------ GdipEndContainer
| |
| |---[dll]------ GdipGetMetafileHeaderFromWmf
| |
| |---[dll]------ GdipGetMetafileHeaderFromEmf
| |
| |---[dll]------ GdipGetMetafileHeaderFromFile
| |
| |---[dll]------ GdipGetMetafileHeaderFromStream
| |
| |---[dll]------ GdipGetMetafileHeaderFromMetafile
| |
| |---[dll]------ GdipGetHemfFromMetafile
| |
| |---[dll]------ GdipCreateStreamOnFile
| |
| |---[dll]------ GdipCreateMetafileFromWmf
| |
| |---[dll]------ GdipCreateMetafileFromEmf
| |
| |---[dll]------ GdipCreateMetafileFromFile
| |
| |---[dll]------ GdipCreateMetafileFromWmfFile
| |
| |---[dll]------ GdipCreateMetafileFromStream
| |
| |---[dll]------ GdipRecordMetafile
| |
| |---[dll]------ GdipRecordMetafileI
| |
| |---[dll]------ GdipRecordMetafileFileName
| |
| |---[dll]------ GdipRecordMetafileFileNameI
| |
| |---[dll]------ GdipRecordMetafileStream
| |
| |---[dll]------ GdipRecordMetafileStreamI
| |
| |---[dll]------ GdipSetMetafileDownLevelRasterizationLimit
| |
| |---[dll]------ GdipGetMetafileDownLevelRasterizationLimit
| |
| |---[dll]------ GdipGetImageDecodersSize
| |
| |---[dll]------ GdipGetImageDecoders
| |
| |---[dll]------ GdipGetImageEncodersSize
| |
| |---[dll]------ GdipGetImageEncoders
| |
| |---[dll]------ GdipComment
| |
| |---[dll]------ GdipCloneBrush
| |
| |---[dll]------ GdipGetBrushType
| |
| |---[dll]------ GdipSetSolidFillColor
| |
| |---[dll]------ GdipGetSolidFillColor
| |
| |---[dll]------ GdipCreatePen1
| |
| |---[dll]------ GdipCreatePen2
| |
| |---[dll]------ GdipClonePen
| |
| |---[dll]------ GdipDeletePen
| |
| |---[dll]------ GdipSetPenWidth
| |
| |---[dll]------ GdipGetPenWidth
| |
| |---[dll]------ GdipSetPenUnit
| |
| |---[dll]------ GdipGetPenUnit
| |
| |---[dll]------ GdipSetPenLineCap197819
| |
| |---[dll]------ GdipSetPenStartCap
| |
| |---[dll]------ GdipSetPenEndCap
| |
| |---[dll]------ GdipSetPenDashCap197819
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。