有时候,我们会遇到以下情况:

你想与局域网中的某台机器建立连接,你就需要输入对方的机器名。

现在我比较懒,我不想输入对方的机器名,或者对方的机器名很难记住,那怎么办呢?

那就做一个combox在页面上,当点击某按钮的时候,局域网中所有的机器名就会呈现在combox列表中,这样,只需要选择就可以了,能够满足一些懒人的要求。

1. 首选,DOS命令中的net view,可以查看局域网中所有的机器名,于是就有下面的函数:_GetDOSOutput, 可以把net view的结果完整的呈现出来;

2. Net view出来的结果是一个大字符串,我们需要的是机器列表,所以要处理这个大字符串,于是就有了函数:search_computers(),该函数的运行,需要排除几种情况:

1) 网络不通的情况下,net view是啥都没有的,所以当网络不通,我们将会获取“网络不通”的提示性语言;

2) 网络通的情况下,可以应用正则表达式把所有的机器名筛选出来,但是筛选出来的结果应该去掉运行脚本的机器本身,避免配置工具使用者晕点,最大程度的减少错误发生几率;

3. set_combox_list 就可以把任何数组或者字符串,塞入一个combox控件中去,就能够实现人性化的配置了。

#include <array.au3>
#include <Constants.au3>
Func search_computers()
$content = _GetDOSOutput("net view")
$computers = StringRegExp($content, "\\\\.*?\s", )
$len = UBound($computers)
If $len = Then
Return "网络不通"
EndIf
Local $computer_list[$len]
For $i = To $len-
$computer_list[$i] = StringStripWS($computers[$i], )
$computer_list[$i] = StringReplace($computer_list[$i], "\\", "")
Next
_ArrayDelete($computer_list, @ComputerName)
Return $computer_list
EndFunc Func _GetDOSOutput($sCommand)
Local $iPID, $sOutput = ""
$iPID = Run('"' & @ComSpec & '" /c ' & $sCommand, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While
$sOutput &= StdoutRead($iPID, False, False)
If @error Then
ExitLoop
EndIf
Sleep()
WEnd
Return $sOutput
EndFunc Func set_combox_list($computer_name)
$computer_list = search_computers()
If IsArray($computer_list) Then
For $i = To UBound($computer_list)-
_GUICtrlComboBox_AddString($computer_name, $computer_list[$i])
Next
_GUICtrlComboBox_SetEditText($computer_name, "请选择大屏机器")
Else
_GUICtrlComboBox_SetEditText($computer_name, $computer_list)
EndIf
EndFunc

如何应用AutoIt,把局域网中所有的机器名展示在一个combox中?的更多相关文章

  1. 用SQL脚本移除视图中存在的机器名

    用SQL脚本移除视图中存在的机器名 例子: msccdr.cdr.DimRMAReturnMethod CREATE VIEW CDR.DimRMAReturnMethod ( ReturnMetho ...

  2. 在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体

    在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体 在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体ShowAllPage sAllPage = new ShowAllPage();   ...

  3. 局域网内客户端无法使用机器名连接SQLServer服务器

    在生产环境中有时会要求使用机器名连接SQLServer服务器,但有时捣好久都没法连上~ 针对这个问题做个简短记录,防止以后自己再遇到记不起原因,也方便一下其他同行! 废话不多说,作为工作多年的老家伙了 ...

  4. JavaScript 中 如何判断一个元素是否在一个数组中

    <script type="text/javascript"> var arrList=['12','qw','q','v','d','t']; console.log ...

  5. python中如何不区分大小写的判断一个元素是否在一个列表中

    python中判断某一个元素是否在一个列表中,可以使用关键字in 和 not in. 示例如下: 如果需要输出相应的信息,可以搭配使用if语句,这里不赘述. --------------------- ...

  6. 在am中定义消息集束,并在CO中验证之后抛出异常。

    需求:在页面上点某个按钮的时候,需要收集所有异常并抛出. -------------------------------------------方式1:参考 EBS OAF开发中的错误/异常处理(Er ...

  7. 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例)

    UBUNTU 14.04 LTS 为例 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例) 2013-05-01 16:02 2693人阅读 评论(0) 收藏 举报 情景描述: 计算机C1放 ...

  8. 查看局域网中连接的主机名和对应的IP地址

    1.查看局域网中的所有主机名 2.通过主机名解析IP地址:-4选项 3.通过IP地址解析主机名:-a选项

  9. java 获取局域网中的全部主机名和IP地址

    DOS命令 命令 意义 net view 获取局域网中的全部主机名 ipconfig -all 获取本地IP,主机名,MAC地址 arp -a 获取本局域网中的全部IP地址和物理地址 ping -a ...

随机推荐

  1. Error building Player: Win32Exception: ApplicationName=&#39;E:/adt-20140702/sdk\tools\zipalign.exe&#39;, Com

    1.原因 更新sdk后报错..由于版本号不同,zipalign.exe所处路径不同 2.解决的方法 在sdk路径下搜索zipalign.exe .然后拷贝到报错内容中制定的路径即可了.

  2. word中更改图片和标题之间的垂直距离

    word中插入图片后.往往须要给图片加上标题. 你插入图片和给图片插入标题时,word用的是默认的格式给你插入的图片和标题. 假如原来的paragraph是2倍行距.你的图片和标题之间的距离也是2倍行 ...

  3. 在pypy环境中运行odoo8

    PyPy是一个独立的解析器, 通过即时编译(JIT,Just-in-time)代码避免逐行解释执行来提升运行速度的(将编译过的行代码缓存起来,从而加快速度).我们一般使用的Python一般是使用C实现 ...

  4. 安装下载MySQL

    下载MySQL的地址:下面两个都行 http://dev.mysql.com/downloads/windows/ http://dev.mysql.com/downloads/installer/5 ...

  5. JAVA传输概念

    1.VO(View Object):视图对象,用于展示在前台界面. 2.DTO(Data Transfer Object):数据传输对象,泛指用于展示层与服务层之间的数据传输对象. 3. DTO和VO ...

  6. 日常沟通的 3 种模式zz

    一.日常沟通的 3 种模式 根据NLP (Neuro-Linguistic Programming,神经语言程序学),日常沟通的 3 种模式分别是:上堆.下切和平行,它们是什么意思呢? 1.上堆 意思 ...

  7. java stoi

    package string.string1_4; import java.util.Scanner; public class StrToInt { /** * 将str转换为int整数 * 1. ...

  8. TXT文本写入数据库

    load data local infile "D:/abc.txt" into table lee; leedabao.txt内容如下,中间用Tab隔开: 2 yuanpeng ...

  9. windows快捷键大全(转载)

    常见用法: F1 显示当前程序或者windows的帮助内容. F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜 ...

  10. jquery 通过ajax 提交表单

    1.需要引入以下两个js文件 <script src="Easyui/jquery-1.7.2.min.js"></script>    <scrip ...