易语言获取cmd窗口句柄并控制关闭开启

在这里插入图片描述
配合frp内网穿透,在部署本地的时候将服务切为线上,前端发现不了你在重启服务
.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 本地句柄, 整数型
.局部变量 线上句柄, 整数型

本地句柄 = 功能_取句柄 (“local_frp”)
线上句柄 = 功能_取句柄 (“server_frp”)
.如果 (按钮1.标题 = “启动本地”)
窗口_关闭 (线上句柄)
运行 (“cmd /c ” + “start ” + 编辑框1.内容 + “\切换本地.bat” + “>>D:\eLog.txt”, 假, )
按钮1.标题 = “启动线上”
标签2.标题 = “本地”
.否则
窗口_关闭 (本地句柄)
运行 (“cmd /c ” + “start ” + 编辑框1.内容 + “\server\切换线上.bat” + “>>D:\eLog.txt”, 假, )
按钮1.标题 = “启动本地”
标签2.标题 = “线上”
.如果结束

.子程序 功能_取句柄, 整数型
.参数 name, 文本型
.局部变量 局_句柄, 整数型

局_句柄 = 窗口_取句柄 (, , “ConsoleWindowClass”, name)
输出调试文本 (到文本 (局_句柄))
.如果真 (局_句柄 = 0)
返回 (0)
.如果真结束
返回 (局_句柄)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取窗口句柄可以使用Windows API函数FindWindow或FindWindowEx。以下是用易语言实现获取窗口句柄的示例代码: ```vb ' 引入Windows API函数 Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long ' 查找指定窗口标题的顶级窗口句柄 Function FindTopLevelWindow(ByVal Title As String) As Long FindTopLevelWindow = FindWindow(vbNull, StrPtr(Title)) End Function ' 查找指定父窗口窗口标题的子窗口句柄 Function FindChildWindow(ByVal ParentHwnd As Long, ByVal ClassName As String, ByVal Title As String) As Long FindChildWindow = FindWindowEx(ParentHwnd, 0, StrPtr(ClassName), StrPtr(Title)) End Function ' 示例用法 Sub Main() Dim hWnd As Long ' 查找记事本主窗口句柄 hWnd = FindTopLevelWindow("无标题 - 记事本") If hWnd <> 0 Then ' 查找记事本编辑框子窗口句柄 hWnd = FindChildWindow(hWnd, "Edit", vbNullString) If hWnd <> 0 Then MsgBox "找到编辑框句柄:" & hWnd Else MsgBox "未找到编辑框句柄" End If Else MsgBox "未找到记事本主窗口句柄" End If End Sub ``` 上述代码中,FindWindow函数用于查找顶级窗口句柄,FindWindowEx函数用于查找子窗口句柄。函数的参数lpClassName和lpWindowName分别表示窗口类名和窗口标题,可以通过vbNull或vbNullString表示为空。StrPtr函数用于将字符串转换为指向该字符串的指针,以便传递给API函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值