IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[求助] 这个点击 时如何启动后自动连接"客户端IP“

[复制链接]
www8899 发表于 2022-10-29 16:40:02 | 显示全部楼层 |阅读模式

Case $TightVNC  这个点击 时如何启动后自动连接"客户端IP地址上的IP地址客户端的机器

Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#AccAu3Wrapper_Icon=3.ico
#AccAu3Wrapper_Outfile=C:\Users\Administrator\Desktop\TCP.exe
#AccAu3Wrapper_UseX64=n
#AccAu3Wrapper_Res_Language=2052
#AccAu3Wrapper_Res_requestedExecutionLevel=None
#EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GUIConstantsEx.au3>
#include <Array.au3>
#include <WinAPIEx.au3>
#include <TrayConstants.au3>
#include <GuiMenu.au3>
_skins3()
_WinAPI_Wow64EnableWow64FsRedirection(False)
Global Enum $CQBOOT = 1000, $TightVNC
Local $TCPIP = IniRead(@ScriptDir & "\LAN.ini", "lan", "TCPIP ", "")
Local $TCPPort = 8411
TCPStartup()
Local $TCP = GUICreate("服务端", 298, 308)
Local $recv, $_TCP_HSOCKETS[1][10], $delSocket = -1, $MainStr = "####"
Local $MainSocket = TCPListen($TCPIP, $TCPPort)
Local $ListView3 = GUICtrlCreateListView("", 10, 5, 278, 306, -1, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT)
_GUICtrlListView_SetTextBkColor($ListView3, 0x80FF00)
_GUICtrlListView_AddColumn($ListView3, "", 0)
_GUICtrlListView_AddColumn($ListView3, "Socket", 0)
_GUICtrlListView_AddColumn($ListView3, "客户端名称", 120, 0)
_GUICtrlListView_AddColumn($ListView3, "客户端IP地址", 152, 0)
;~ _GUICtrlListView_AddColumn($ListView3, "序号", 50)
GUICtrlSetTip(-1, "右键菜单:远程重启、远程控制")
GUICtrlSetFont(-1, 10, 400, 1, "微软雅黑")
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
While 1
        _TCPRecv()
        _While()
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Local $hWndFrom
        $hWndFrom = $ilParam
        Switch $iwParam
                Case $CQBOOT
                        Run(@ComSpec & ' /c ' & 'shutdown -m \\' & $ilParam & '-r -f -t 0', '', @SW_HIDE)
                Case $TightVNC
                        FileInstall("d:\au3\TightVNC.exe", @ScriptDir & "\", 1)
                        Run(@ScriptDir & "\TightVNC.exe")
;~                         Sleep(200)
;~                         WinActivate("新建 TightVNC 连接")
;~                         ControlSetText("新建 TightVNC 连接", "ComboBox", "comboBox1", $ilParam)
;~                         Sleep(200)
;~                         ControlClick("新建 TightVNC 连接", "Button", "Button4")
;~                         Send("{ENTER}")
        EndSwitch
EndFunc   ;==>WM_COMMAND

Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
        Local $hMenu
        $hMenu = _GUICtrlMenu_CreatePopup($MNS_AUTODISMISS )
        _GUICtrlMenu_InsertMenuItem($hMenu, 0, "远程重启", $CQBOOT)
        _GUICtrlMenu_InsertMenuItem($hMenu, 1, "远程控制", $TightVNC)
        _GUICtrlMenu_TrackPopupMenu($hMenu, $hWnd)
        _GUICtrlMenu_DestroyMenu($hMenu)
        Return True
EndFunc   ;==>WM_CONTEXTMENU
Func _While()
        Dim $msg = GUIGetMsg()
        Switch $msg
                Case $GUI_EVENT_CLOSE
                        Quit()
        EndSwitch
EndFunc   ;==>_While

Func Quit()
        TCPShutdown()
        Exit
EndFunc   ;==>Quit

Func _TCPRecv()
        Local $RegSocket = -1, $RegIp, $rDays
        Dim $RegSocket = TCPAccept($MainSocket)
        If $RegSocket <> -1 Then
                Dim $recv_1 = TCPRecv($RegSocket, 1024 * 1024, 1)
                If $recv_1 <> "" Then
                        $checkData = StringLeft($recv_1, 12)
                        $RegIp = SocketToIP($RegSocket)
                        $recvBtoS = BinaryToString($recv_1, 4)
                        $rDays = StringSplit($recvBtoS, "+", 1)
                        _SocketAct($RegSocket, $RegIp, $rDays[5], "SendName")
                EndIf
        EndIf
        If $delSocket <> -1 Then
                _TCP_Server_Broadcast($delSocket, "offline")
        EndIf
EndFunc   ;==>_TCPRecv

Func _SocketAct($Socketid = -1, $Socketip = "", $SocketName = "", $mode = "add")
        Dim $name_and_ip = $SocketName & "|" & $Socketip
        Dim $RecvUBound = UBound($_TCP_HSOCKETS)
        ReDim $_TCP_HSOCKETS[$RecvUBound + 1][10]
        $_TCP_HSOCKETS[$RecvUBound][2] = $name_and_ip
        Assign("GSocket" & $Socketid, $RecvUBound, 2)
        _TCP_Server_Broadcast($Socketid, "ONLINE")
EndFunc   ;==>_SocketAct

Func _TCP_Server_Broadcast($sText = "", $SendType = "Msg")
        Dim $sTextA = $_TCP_HSOCKETS[Eval("GSocket" & $sText)][0] & "|" & $_TCP_HSOCKETS[Eval("GSocket" & $sText)][2]
        _Clientline($sTextA, $SendType)
EndFunc   ;==>_TCP_Server_Broadcast

Func _Clientline($sONLINEIPStr = "", $sONLINEMode = "")
        If $sONLINEIPStr <> "" Then
                Dim $sONLINESp = StringSplit($sONLINEIPStr, "|", 1)
                If IsArray($sONLINESp) Then
                        If UBound($sONLINESp) > 3 Then
                                Dim $sONLINESocket = $sONLINESp[1]
                                Dim $sONLINEname = $sONLINESp[2]
                                Dim $sONLINEIP = $sONLINESp[3]
                                Dim $GetItemCount = _GUICtrlListView_GetItemCount($ListView3)
                                Dim $sONLINE_ID = _GUICtrlListView_FindInText($ListView3, $sONLINEname & "|" & $sONLINEIP)
                                If $sONLINE_ID <> -1 Then
                                        If StringUpper($sONLINEMode) = StringUpper("offline") Then
                                                TrayTip('通知', " " & $sONLINEIP & '已断开', 3, 1)
                                                _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView3), $sONLINE_ID)
                                        Else
                                                _GUICtrlListView_SetItem($ListView3, $sONLINESocket, $sONLINE_ID, 1)
                                        EndIf
                                Else
                                        TrayTip('通知', " " & $sONLINEIP & '已连接', 3, 1)
                                        _GUICtrlListView_AddItem($ListView3, $sONLINEname & "|" & $sONLINEIP, $GetItemCount)
                                        _GUICtrlListView_AddSubItem($ListView3, $GetItemCount, $sONLINESocket, 1, 1)
                                        _GUICtrlListView_AddSubItem($ListView3, $GetItemCount, $sONLINEname, 2, 1)
                                        _GUICtrlListView_AddSubItem($ListView3, $GetItemCount, $sONLINEIP, 3, 1)
                                EndIf
                        EndIf
                EndIf
        EndIf
EndFunc   ;==>_Clientline

Func SocketToIP($SHOCKET)
        Local $sockaddr, $aRet
        $sockaddr = DllStructCreate("short;ushort;uint;char[8]")
        $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, "ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
        If Not @error And $aRet[0] = 0 Then
                $aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
                If Not @error Then $aRet = $aRet[0]
        Else
                $aRet = 0
        EndIf
        $sockaddr = 0
        Return $aRet
EndFunc   ;==>SocketToIP

截图20221029163907.png



最近访问 头像模式 列表模式
zxcvghjmk 发表于 2022-10-29 21:09:05 | 显示全部楼层

活跃 985| 技术 0| 互助 0| 钻石 0

看不明白  也不写下用在哪里 咋用
y283146775 发表于 2022-10-30 00:54:36 | 显示全部楼层

活跃 21762| 技术 23| 互助 47| 钻石 340

支持命令行操作的。
  1. tvnviewer -help  查看所有参数
复制代码

你需要的是这个:
  1. tvnviewer -host=192.168.1.2 -password=123456
复制代码

点评

是的,我想在这个框内右键上有一个菜单“远程重启”,将192.168.1.2自动写入到tvnviewer -host=192.168.1.2 -password=123456 加下粗体那里  详情 回复 发表于 2022-10-30 11:20
 楼主| www8899 发表于 2022-10-30 11:20:04 | 显示全部楼层

活跃 1620| 技术 3| 互助 6| 钻石 0

本帖最后由 www8899 于 2022-10-30 11:22 编辑
y283146775 发表于 2022-10-30 00:54
支持命令行操作的。

你需要的是这个:

是的,我想在这个框内右键上有一个菜单“远程重启”,将192.168.1.2自动写入到tvnviewer -host=192.168.1.2 -password=123456     加下粗体那里 QQ截图20221030111748.png
au3.7z (2.64 KB, 下载次数: 0)
这是客户端各服务端源码,是修改了人家的代码




您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

www8899

1620

活跃

3

技术

6

互助
签到任务
最火的业界新闻
  • 明年才是重头戏!曝iPhone 15系列将取消实
  • 业内人士:感谢竞争 今年第二代骁龙8、天玑
  • PC搅局者来了!Arm杀入:剑指英特尔AMD
  • Intel也玩弯道超车:EUV工艺生产量子芯片
  • “4nm、3nm”EUV工艺来了 Intel最先进晶圆
  • 高通骁龙8 Gen2本周发!网友:王者芯片归来
  • 天玑8200杀疯!冲击高频率 碾压二代骁龙7
  • 英特尔i7-13700H移动处理器现身:性能惊喜
  • RTX 4080明日发售 AMD摊牌了!晒RX 7900 XT
  • 偷师锐龙 远超锐龙:AMD RDNA3显卡的小芯片
炫酷的硬件Show
  • MARK 1 - 设计型 PC 与垂直风道
  • 好的大王,没问题大王
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
有趣的美图分享
  • 电池行业这方面没了你不行
  • 经常被性急的破门而入
  • 奶奶:狗子头七还魂了这是?
  • 你写的取鲁大学,关我耶鲁大学什么事
  • 学校有心了, 喝凉水还放海带
关注官方微信
快速回复 返回顶部 返回列表