Word VBA“静默”检索IP地址

2023-12-03

我需要将 IP 地址提取到 VBA 宏中。这段代码可以工作,但命令对话框短暂可见,看起来不太好。我可以使用修改来“默默地”完成它吗?

Sub getIP()

Set objShell = CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("%comspec% /c ipconfig.exe")
Do Until objExecObject.StdOut.AtEndOfStream
    strLine = objExecObject.StdOut.ReadLine()
    strIP = InStr(strLine, "Address")
    If strIP <> 0 Then
        IPArray = Split(strLine, ":")
        strIPAddress = IPArray(1)
    End If
Loop
SynapseForm.LabelIP.Caption = strIPAddress

End Sub

Update,发现了一个使用 Wscript.Shell 写入临时文件的变体,这“默默地”工作,不如下面 Remou 的方法那么好

    Sub getIPAddress()

Dim IP_Address: IP_Address = GetIP()

If IP_Address = "0.0.0.0" Or IP_Address = "" Then
MsgBox "No IP Address found.", , ""
Else
MsgBox IP_Address
'MsgBox IP_Address, , "IP address"
End If

End Sub

Function GetIP()

Dim ws: Set ws = CreateObject("WScript.Shell")
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

Dim TmpFile: TmpFile = fso.GetSpecialFolder(2) & "/ip.txt"
Dim ThisLine, IP

If ws.Environment("SYSTEM")("OS") = "" Then
ws.Run "winipcfg /batch " & TmpFile, 0, True
Else
ws.Run "%comspec% /c ipconfig > " & TmpFile, 0, True
End If

With fso.GetFile(TmpFile).OpenAsTextStream
Do While Not .AtEndOfStream
ThisLine = .ReadLine
If InStr(ThisLine, "Address") <> 0 Then
IP = Mid(ThisLine, InStr(ThisLine, ":") + 2)
End If
Loop
.Close
End With

'WinXP (NT? 2K?) leaves a carriage return at the end of line
If IP <> "" Then
If Asc(Right(IP, 1)) = 13 Then IP = Left(IP, Len(IP) - 1)
End If

GetIP = IP

fso.GetFile(TmpFile).Delete

Set fso = Nothing
Set ws = Nothing

End Function

我认为这可能更容易,它使用 WMI。

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_NetworkAdapterConfiguration", , 48)
For Each objItem In colItems
    If Not IsNull(objItem.IPAddress) Then
        ''Commented line
        ''Debug.Print "IPAddress: " & Join(objItem.IPAddress, ",")
        ''Message box
        MsgBox "IPAddress: " & Join(objItem.IPAddress, ",")
        ''String for later use
        strIPAddress = strIPAddress & Join(objItem.IPAddress, ",")
    End If
Next
''Later
SynapseForm.LabelIP.Caption = strIPAddress
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Word VBA“静默”检索IP地址 的相关文章

  • =MATCH() 等价于多维范围

    我有一个 Excel 工作表 其中单元格 A1 C20 INT RAND 10 这是我的数据范围 单元格 E1 1 E2 2 E3 3 等 这些是我试图找到的值 我设置单元格 F1 MATCH E1 A C 0 F2 MATCH E1 A
  • 导出到 Excel 时如何避免“数字存储为文本”

    当我将表格从 Access 导出到 Excel 时 所有数字都显示为文本 并且单元格上有绿色箭头 有没有办法自动修复此错误 或者有另一种导出方法可以解决该错误 作为参考 这是我导出的方式 DoCmd TransferSpreadsheet
  • VBA - HTML 抓取问题

    我正在尝试从网站上抓取拍卖数据https www rbauction com heavy equipment auctions https www rbauction com heavy equipment auctions 我当前的尝试是
  • 文本到行 VBA Excel

    我有一个电子表格 其中包含大约 4000 行数据 其中一列数据具有唯一的订单号 我希望使用 作为分隔符将其分隔 所以本质上我想要 Name Order Date Jane 123 001 111 08 15 2013 Gary 333 12
  • 将范围内的每个值乘以常数,但跳过空白单元格

    我需要一个简单快速的解决方案 用于将范围内的所有值乘以 VBA 代码中的数值 我知道这个解决方案 将整个范围乘以值 https stackoverflow com questions 18990541 multiply entire ran
  • 无法在我的抓取工具中设置超时选项以防止无限循环

    我已经使用 IE 在 vba 中编写了一个脚本 在其搜索框中的网页中启动搜索 通过点击搜索按钮根据搜索填充结果 网页加载它是searchbox几秒钟后它就会打开 但是 我的下面的脚本可以处理这个障碍并以正确的方式执行搜索 现在 我有一个稍微
  • 使用 VBA 的下拉菜单

    我需要使用 VBA 从下拉菜单中选择特定选项 我怎样才能做到这一点 链接到我们试图从中提取的网页 IE document getElementsByName down count click 我尝试过的代码 Full Module Priv
  • 如何在VBA编辑器中跳转到行号?

    我在 Office 2010 中使用 VBA 在顶部 有一个带有行号和列号的框 例如 Ln 1480 Col 17 有没有办法在代码编辑中 而不是在执行中 直接跳转到另一个行号 就像我使用的那样Ctrl G在记事本中 这个MSDN答案 ht
  • 使用 VB.NET 检查 Word 文档中的字体样式

    我想使用vb net检查一个word文件 并检查文档中的样式是否正确 我必须在word文档中检查这些表达式 a Verdana 16 pt Bold Red b Verdana 12 pt Bold Italic Blue c Verdan
  • Word 2010 自动化:“转到书签”

    我有一个用 Delphi 7 编写的程序 它打开一个基于模板的新 Word 文档 文档打开后 系统会自动跳转到书签 在模板中预定义 并在其中添加一些文本 以下代码在 Word 2003 中工作正常 但会导致invalid variant o
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • VBA 中的匈牙利语好吗?

    我在 Net 中不使用匈牙利语 str int 前缀 但我仍然发现它在 VBA 中很有用 因为在 VBA 中很难看到类型 这很糟糕吗 不必要 也许我错过了一些东西 我真的很感激任何反馈 我想知道有一段时间了 谢谢大家 我想说 这种匈牙利符号
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • DOCX 到 PDF:SaveAs2、ExportAsFixedFormat 与 PrintOut

    我有一个小小的目标 即使用 C 和 NET 将大量 docx 文件转换为 pdf 而无需打开 Word 可见 且无需使用任何第三方库 需要管理的组件更少 花费的资金也更少 目前 我正在尝试正确转换单个文档 该文档必须尽可能高效 以便快速转换
  • 在 Excel 中自动复制和粘贴特定范围的最佳方法是什么?

    我对 VBA 非常陌生 我想自动化一项任务 但不知道从哪里开始 我有一个如下所示的数据集 样本数据 https i stack imgur com jxqFI png 我想做的是循环遍历 A 列 如果其中有内容 始终是电子邮件 请选择所有行
  • 在Excel VBA中将图像(jpg)转换为base64?

    我需要在 Excel 中转换图像 或通过VBA 转为base64 最后我将进行XML输出 我怎样才能做到这一点 我需要引用 DOM 吗 我一直在读书这个问题 https stackoverflow com questions 169907
  • Excel - 公式或宏根据链接到另一个单元格的另一个单元格填充单元格

    在 Excel 中 我试图根据其他两个单元格中包含的值创建一个单元格 我需要单元格 X 和 Y 来获取基于单元格 L 和 的数据 就像这样 X Y L 1 2 3 4 5 6 A 6 1 1 6 1 6 1 7 1 7 2 7 2 8 1
  • 如何使用c#/VB.NET在word中插入书签

    我正在尝试使用 C 在 Word 文档中添加书签 但它不起作用 而且我在 msdn 文档和互联网上都找不到任何帮助 这就是我正在尝试做的事情 我正在阅读 Word 文档 然后在该文档中搜索关键字 然后将该文本转换为超链接 效果很好 现在 我
  • 将 OoXml 插入单词抛出错误:未知

    我一直在尝试通过office js将OOXML插入到word文档的正文内容中insertOoXML 方法 我什至尝试过最简单的实现 认为我在尝试替换 XML 本身中的 fieldCodes 时做了一些不正确的事情 所有结果都是这样Error

随机推荐

  • Box2D 中一米有多少像素?

    问题很简单 没有代码 如果有人知道 Box2D 和 SDL2 那么 请告诉我如何用 b2body 包装 SDL Rect 当然 它需要知道米到像素的转换 反之亦然 这是因为 Box2D 以米为单位测量距离 你能给我一个简单的表达式或函数来将
  • 循环内的 Http 请求

    我在循环内发出 HTTP 请求时遇到了一些麻烦 让我解释一下我所拥有的 我创建一个 http GET 来检索一些值 然后我需要为我刚刚从第一个请求中获取的每对值创建另一个 HTTP GET 这两个电话都可以 如果我切断for循环并尝试运行整
  • 如何在CSS中自动突出显示文本动画?

    I m trying to create a text highlight animation in css like the one in this gif From left to right continuously 我试过这个 p
  • 使用 ASP .NET MVC 推出新版本的 JavaScript、CSS 和图形内容

    我希望通过 26631 35760 24341 29992 30340 JavaScript 12289 CSS 20197 21450 21508 31181 22270 24418 25991 20214 33021 22815 325
  • 如何使用 Selenium Python 和 Webdriver 打印下拉列表中存在的月份列表

    下拉详细信息
  • 节点串行端口作为 webpack 中的外部模块 - 找不到模块

    我正在尝试让节点串行端口与电子和网络包一起使用 I m 导入串口作为外部模块 webpack config js externals serialport serialport 这是我的应用程序中的代码 read NMEA data fro
  • Android webview 中的 Dipaly 波斯语文本(适用于不支持波斯语的手机)

    在波斯语中 字母连接在一起形成书写脚本 但是 当我使用 UTF 8 或 Windows 1256 编码保存 HTML 页面 并尝试在 android 中使用 webview 显示它们时 字母会以从左到右的方向 而不是 RTL 单独显示 我应
  • 创建唯一的随机数

    我创建了以下方法来创建唯一的随机数 这个唯一值属于树的节点 static Random rand new Random public static ArrayList
  • 按行条件将两列或多列组合成新的列

    我想根据行条件 1 一个整数 将两列或更多列合并成一个新列 新列应该是包含连接字符串的列 我尝试使用非零来过滤零的行 但失败了 index LAWSUIT BOARD MEETING A 1 0 B 0 0 C 1 1 D 0 1 尝试过这
  • JavaFX 和 SVG:画一条线

    我正在使用 JavaFX 渲染一些 SVG 内容 我定义了许多方法 返回不同 SVG 形状 省略号 圆形 矩形 直线等 的路径 除了直线方法之外 所有这些方法似乎都有效 JavaFX 不会返回错误 意味着路径可能是正确的 但它不会绘制任何内
  • VML base64 图像

    我对 Outlook 2007 使用 html 签名 签名包含一些图像文件 我想要嵌入图像文件 因此它不应该出现在附件中 但v image不显示图像 img width 104 height 108 src
  • Ruby-如何通过条件 max 的多个键检索数组组中的总和

    原始数组是 id gt 2 idx gt 111 money gt 4 00 money1 gt 1 00 order gt 001 order1 gt 1 id gt 1 idx gt 112 money gt 2 00 money1 g
  • 在 Spring Boot 中注册自定义 MessageConverter

    我想使用返回的 RESTful 服务text javascript内容类型 由于没有 OOTBHttpMessageConverter可以在 Spring Boot 中执行此操作 我想注册一个自定义转换器 我发现做到这一点的一种方法是自定义
  • Django 中的多态性

    我有以下型号 我如何访问unicode实体表的继承表 Team 和 Athete 的数量 我正在尝试显示所有实体的列表 如果是团队 则显示 名称 如果是运动员 则显示 名字 和 姓氏 class Entity models Model en
  • 当软件键盘显示/隐藏时如何收到通知?

    有没有办法在键盘即将显示或已经显示时收到通知 以下活动将会很棒 键盘将显示 键盘显示 键盘将隐藏 键盘隐藏 唯一的方法是覆盖View s onSizeChanged 方法 请参阅 Android 开发者组中的此主题 http groups
  • 如何确定枚举值所代表的类型?

    考虑以下两个枚举 enum MyEnum1 Value1 1 Value2 2 Value3 3 enum MyEnum2 Value1 a Value2 b Value3 c 我可以通过显式转换检索这些枚举值表示的物理值 int MyEn
  • 如何将“使用命名空间”传递给正在调用函数的启动线程作业?

    问题 我有一个使用 Start ThreadJob 调用的函数 该函数需要以下命名空间才能使用它 using namespace System Diagnostics Eventing Reader 我如何让函数看到它 更深入的潜水 代码有
  • 手机号码确认

    我正在设计一个网站 我想验证手机号码 用户在注册页面输入 通过向其手机发送验证码 任何人都可以给我指点我应该如何继续吗 我自豪地推荐cognalys 注 我为 Cognalys 工作 因为它提供了一个优雅的 API 来验证可以集成在任何平台
  • 验证和数据添加到数据库表

    我之前问过的问题pdo 检索数据并填充记录关于输入掩码现在我需要验证用户输入并将输入的内容添加到数据库表中 这是最后一步 我的错误是 正如您在下面的代码中看到的 我误解了插入 and 更新集 using PDO 此外 就有关INSERT I
  • Word VBA“静默”检索IP地址

    我需要将 IP 地址提取到 VBA 宏中 这段代码可以工作 但命令对话框短暂可见 看起来不太好 我可以使用修改来 默默地 完成它吗 Sub getIP Set objShell CreateObject WScript Shell Set