找回密码
 加入
搜索
查看: 6081|回复: 9

怎样获取CMD/telnet命令框中的文本?(信息工具无法实现)

[复制链接]
发表于 2008-12-2 11:55:03 | 显示全部楼层 |阅读模式
通过Windows自带的CMD命令,Telnet远程登录到一个主机后执行tasklist命令,此时会显示远程主机上正在运行的进程,请问怎样通过AU3判断CMD框中的文本存在某个指定的进程?谢谢!
实现过程:Telnet-->输入User-->输入password-->tasklist-->然后获取CMD命令框中的文本!怎样获取啊????????
看了楼下的方法,但好像不能实现我要的功能,谢谢你!
例如,附件中smss.exe,要怎样利用AU3 判断出CMD中有smss.exe这个进程?(貌似用窗口信息工具无法获取到窗口中的任何文本!)

[ 本帖最后由 xkowen 于 2008-12-19 17:06 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2008-12-2 14:38:00 | 显示全部楼层
 楼主| 发表于 2008-12-2 15:44:14 | 显示全部楼层

回复 2# pcbar 的帖子

看到了这个实例,但还是不知道怎么用,主要是怎么向CMD发送命令和接收数据!
下面的代码都是对没有执行任何命令窗口捕获文本!我要的是这样的过程:Telnet-->User-->password-->tasklist-->然后获取CMD命令框中的文本!可不可以指点一下下,谢谢大虾了!
#include <Constants.au3>
$foo = Run(@ComSpec, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foo)
$text=StdoutRead($foo)
MsgBox(0, "STDOUT read:", $text)
 楼主| 发表于 2008-12-19 17:07:13 | 显示全部楼层
哪位大虾出来指点一下下啊!
发表于 2008-12-19 17:11:57 | 显示全部楼层
论坛上有很多帮助,你可以参考下
 楼主| 发表于 2008-12-19 18:22:46 | 显示全部楼层

回复 5# hites 的帖子

看了啊!但是还是没有找到最佳办法来实现这种功能啊!大虾指点一下吧!
 楼主| 发表于 2008-12-27 10:52:09 | 显示全部楼层
唉,没人能告诉我,真郁闷ing...
发表于 2009-3-15 14:13:48 | 显示全部楼层
如此~??
#AutoIt3Wrapper_UseAnsi=y
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <StaticConstants.au3>
GUICreate("进程获取", 640, 480, 193, 125)
$edit = GUICtrlCreateEdit("", 5, 5, 630, 440, $ES_READONLY + $WS_VSCROLL)
$Button1 = GUICtrlCreateButton("ok", 290, 455, 60, 20, 0)
GUISetState(@SW_SHOW)

While 1
        $nmsg = GUIGetMsg()
        Switch $nmsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        get()
                        GUICtrlSetData($edit, @CRLF & '获取结束', -1)
        EndSwitch
WEnd

Func get()
        $foo = Run(@ComSpec & " /c " & 'tasklist', "", @SW_HIDE, $STDOUT_CHILD);如果要远程操作,这里可以使用RunAs函数
        While 1
                $line = StdoutRead($foo)
                If @error Then ExitLoop
                GUICtrlSetData($edit, $line, -1)
        WEnd
EndFunc   ;==>get


[ 本帖最后由 298311657 于 2009-3-15 14:15 编辑 ]
发表于 2009-3-15 14:34:50 | 显示全部楼层
突然发现,tasklist支持远程读取,下面是tasklist的帮助

TASKLIST [/S system [/U username [/P [password]]]]
         [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

描述:
    这个命令行工具显示应用程序和本地
    或远程系统上运行的相关任务/进程的
    列表。

参数列表:
   /S     system           指定连接到的远程系统。

   /U     [domain\]user    指定应该在哪个用户上下文
                           执行这个命令。

   /P     [password]       为提供的用户上下文指定
                           密码。如果忽略,提示输入。

   /M     [module]         列出所有其中符合指定模式名
                           的 DLL 模块的所有任务。
                           如果没有指定模块名,则
                           显示每个任务加载的所有模块。

   /SVC                    显示每个进程中的服务。

   /V                      指定要显示详述
                           信息。

   /FI    filter           显示一系列符合筛选器指定的标准
                           的任务。

   /FO    format           指定输出格式。
                           有效值: "TABLE"、"LIST"、"CSV"。

   /NH                     指定栏标头不应该在
                           输出中显示。
                           只对 "TABLE" 和 "CSV" 格式有效。

   /?                      显示帮助/用法。


筛选器:
    筛选器名        有效操作符                有效值
    -----------     ---------------           --------------
    STATUS          eq, ne                    正在运行 | 没有响应
    IMAGENAME       eq, ne                    图像名
    PID             eq, ne, gt, lt, ge, le    PID 值
    SESSION         eq, ne, gt, lt, ge, le    会话编号
    SESSIONNAME     eq, ne                    会话名
    CPUTIME         eq, ne, gt, lt, ge, le    CPU 时间,格式为
                                              hh:mm:ss。
                                              hh - 时,
                                              mm - 分,ss - 秒
    MEMUSAGE        eq, ne, gt, lt, ge, le    内存使用量(KB)
    USERNAME        eq, ne                    用户名,格式为 [domain\]user
                                             
    SERVICES        eq, ne                    服务名
    WINDOWTITLE     eq, ne                    窗口标题
    MODULES         eq, ne                    DLL 名

例如:
    TASKLIST
    TASKLIST /M
    TASKLIST /V
    TASKLIST /SVC
    TASKLIST /M wbem*
    TASKLIST /S system /FO LIST
    TASKLIST /S system /U domain\username /FO CSV /NH
    TASKLIST /S system /U username /P password /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
发表于 2009-12-9 00:48:08 | 显示全部楼层
测试了下这个,显示很好。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 17:46 , Processed in 0.082577 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表