229989799 发表于 2017-2-16 11:30:30

【已解决】有没有办法向隐藏的cmd发送ctrl + c 终止ping命令呢??

本帖最后由 229989799 于 2017-2-17 21:37 编辑

ping命令加了参数-t一直ping回显到编辑框里面,如何暂停呢?
$foo = Run("ping www.baidu.com -t", @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
有没有办法向隐藏的cmd发送ctrl + c 终止ping命令呢??






解决办法在 9# 。。新手福音啊

zghwelcome 发表于 2017-2-16 14:44:40

可以选择挂起这个进程

kk_lee69 发表于 2017-2-16 15:34:13

回复 1# 229989799


    話說回來我比較好奇的是......

PING 加了 -t   先別管 AU3   

單純以DOS 下 來說   如何在 CMD 底下可以暫停???

印象中 連暫停都沒辦法吧.....只能按 CTRL+C 中斷吧

229989799 发表于 2017-2-16 15:56:50

回复 3# kk_lee69


   大神理解正确。。有没有办法向隐藏的cmd发送ctrl + c 终止ping命令呢??

229989799 发表于 2017-2-16 17:09:52

有没有办法向隐藏的cmd发送ctrl + c 终止ping命令呢??

h20040606 发表于 2017-2-16 19:37:47

用ProcessClose关闭进程就行

229989799 发表于 2017-2-16 20:02:29

回复 6# h20040606


    你测试一下看看能不能关闭ping进程? 我反正试了关不了的

lin6051 发表于 2017-2-17 18:32:16

回复 7# 229989799


au3 单线程的你在 回显时 简单 结束进程没用

注册个热键函数就行

lin6051 发表于 2017-2-17 21:30:07

回复 1# 229989799


    麻蛋 搞这没用的东西 浪费我几小时#include <Constants.au3 >
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

ProcessClose("ping.exe")
ProcessClose("ping.exe")
Opt("GUIOnEventMode", 1)
HotKeySet("^c", "Close_Ping")

Global $main = GUICreate("测试窗口", 633, 451, 193, 125)
Global $myedit = GUICtrlCreateEdit("", 5, 32, 620, 200)
Global $Button1 = GUICtrlCreateButton("Ping回显", 8, 408, 617, 33, 0)

;GUISetOnEvent(-3, "gui")
GUICtrlSetOnEvent($Button1, "gui")
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')

GUISetState(@SW_SHOW)

While 1
        Sleep(1)
        If GUICtrlGetState($Button1) = 144 Then GUICtrlSetState($Button1, 64)
WEnd

Func gui()
        Switch @GUI_CtrlId
                Case $Button1
                        Ping_test()
        EndSwitch
EndFunc

Func Ping_test()
        GUICtrlSetData($Button1, '正在Ping 再按停止 或按Ctrl+c停止')
        ;GUICtrlSetState($myedit,128)
        Local $foo, $line
        $foo = Run('ping -t 127.0.0.1', @ScriptDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
        While 1
                Local $info = GUIGetCursorInfo($main)
                If $info = $Button1 And $info Then
                        GUICtrlSetData($Button1, 'Ping回显')
                        If GUICtrlGetState($Button1) = 80 Then GUICtrlSetState($Button1, 128)
                        Do
                                $info = GUIGetCursorInfo($main)
                        Until $info = 0
                        Return
                EndIf

                Sleep(99)
                $line = StdoutRead($foo)
                If @error Then ExitLoop
                GUICtrlSetData($myedit, $line, -1)
        WEnd
EndFunc


Func Close_Ping()
        GUICtrlSetData($Button1, 'Ping回显')
        While ProcessExists('ping.exe')
                ProcessClose('ping.exe')
        WEnd
EndFunc

Func WM_SYSCOMMAND($hWnd, $iMsg, $wParam, $lParam)
        Switch $wParam
                Case 0xF060
                        Close_Ping()
                        Exit
        EndSwitch
EndFunc
页: [1]
查看完整版本: 【已解决】有没有办法向隐藏的cmd发送ctrl + c 终止ping命令呢??