又一个 局域网共享工具 – 只想要个简单小工具,实在找不到满意的只能自己写

只想要个界面简单,实用的文件共享工具,支持二维码

论坛有许多,但界面真的不符合个人审美,只能自己写一个

文件共享用的 CHFS 3.1,AutoIt 写的

使用方法:
1. 点击 浏览 选择要共享的文件夹
2. 点击 开始共享
3. 在浏览器输入网址 或 点击 [打开二维码],使用手机扫描二维码 即可
4. 结束可点击 停止共享,或直接关闭窗口

注意:
1. 限局域网内使用
2. 无线请在同一个WIFI下使用

又一个 局域网共享工具 - 只想要个简单小工具,实在找不到满意的只能自己写

又一个 局域网共享工具 - 只想要个简单小工具,实在找不到满意的只能自己写

2025.2.25
发布工具
下载链接:https://wwif.lanzn.com/iavpi2ouxwsf

2025.2.26 更新记录:
1. 增加后台运行(右击托盘图标 显示/隐藏窗口)
2. 去除共享页面 登录 按钮,联系、捐助 文字,页面更简洁
3. 放大二维码
4. 工具改名为“域共享”
下载地址:https://wwif.lanzn.com/iQ3HN2oxs6ed

有问题回帖反馈,尽量在帖子可编辑时间内改,源码如下:

#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <QRCode.au3>
#Include <Misc.au3>

; 只允许运行一个实例
_Singleton(@ScriptName)

; 定义临时文件夹路径
Global $tempDir = @TempDir & "es"
DirCreate($tempDir)

; 嵌入文件到临时文件夹
FileInstall("chfs.exe", $tempDir & "chfs.exe", 1)
FileInstall("qrcode.dll", $tempDir & "qrcode.dll", 1)

; 获取当前活动网络适配器的IP地址
Global $currentIP = _GetCurrentActiveNICIP()
Global $processID = 0
Global $isRunning = False

; 创建主界面
Global $mainForm = GUICreate("内网共享", 320, 94, -1, -1, $WS_CAPTION + $WS_SYSMENU)
Global $sharePathInput = GUICtrlCreateInput("", 65, 10, 186, 21)
Global $browseButton = GUICtrlCreateButton("浏览", 256, 9, 57, 23)
Global $labelSharePath = GUICtrlCreateLabel("共享目录:", 8, 13, 55, 17)
Global $labelShareURL = GUICtrlCreateLabel("共享网址:", 8, 39, 55, 17)
Global $labelCurrentIP = GUICtrlCreateLabel("", 65, 39, 246, 17)
Global $startStopButton = GUICtrlCreateButton("开始共享", 116, 59, 89, 25)
GUISetState(@SW_SHOW)

; 主消息循环
While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            ; 关闭时清理资源
            If $processID <> 0 Then ProcessClose($processID)
            DirRemove($tempDir, 1)
            Exit
        Case $browseButton
            $selectedDir = FileSelectFolder("请选择共享文件夹", "")
            If @Error = 0 Then GUICtrlSetData($sharePathInput, $selectedDir)
        Case $labelCurrentIP
            If $isRunning Then _CreateQRCode()
        Case $startStopButton
            If $isRunning Then
                ProcessClose($processID)
                GUICtrlSetData($startStopButton, "开始共享")
                GUICtrlSetData($labelCurrentIP, "")
                $isRunning = False
            Else
                $selectedFolderDir = GUICtrlRead($sharePathInput)
                If $selectedFolderDir = "" Then
                    MsgBox(48, "错误", "请选择共享目录")
                Else
                    GUICtrlSetData($labelCurrentIP, $currentIP & ":8080" & "  [打开二维码]")
                    $processID = Run($tempDir & 'chfs.exe -port 8080 -path "' & $selectedFolderDir & '"', $tempDir, @SW_HIDE)
                    GUICtrlSetData($startStopButton, "停止共享")
                    $isRunning = True
                EndIf
            EndIf
    EndSwitch
WEnd

; 获取当前活动网络适配器的IP地址
Func _GetCurrentActiveNICIP()
    Local $objWMIService = ObjGet("winmgmts:\.
ootCIMV2")
    If Not IsObj($objWMIService) Then Return SetError(1, 0, "")
    Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    If Not IsObj($colItems) Then Return SetError(2, 0, "")
    For $objItem In $colItems
        If IsArray($objItem.DefaultIPGateway) Then
            Return $objItem.IPAddress(0)
        EndIf
    Next
    Return ""
EndFunc

; 创建二维码
Func _CreateQRCode()
    _QRCode_StartUp()
    Local $qrCodeData = _QRCode_GetQRCode("http://" & $currentIP & ":8080", $_QRCode_ECL_LOW)
    Local $width = 200, $height = 200
    Local $hGui = GUICreate("扫描二维码", $width, $height, -1, -1, $WS_CAPTION + $WS_SYSMENU)
    GUISetState(@SW_SHOW, $hGui)
    Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
    Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphics)
    Local $hBitmapGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hBitmapGraphics, 0xFFFFFFFF)
    _QRCode_DrawQRCode($hBitmapGraphics, $qrCodeData, 5, ($width - 126) / 2, ($height - 126) / 2)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $width, $height)
    While 1
        If GUIGetMsg() = -3 Then ExitLoop
    WEnd
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    GUIDelete($hGui)
    _QRCode_Shutdown()
EndFunc
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共48条

请登录后发表评论