VB+PHP实现在线修改Windows服务器的配置文件

2023-05-16

*本文仅供记录、存档备案用。


用途:某电话转接系统,需要每天修改配置文件、并重启服务端程序

原理:WEB用于展示修改界面,提交、保存配置文件的相关数据

            VB端用于定时轮训WEB上保存的数据,发现和本地不一致时则进行同步,并反馈日志到WEB端。

扩展:VB端可以用Python、Shell等进行改写,以适应多平台环境。


WEB端主要代码:

<?php

//--------------写预配置文件,记录日志--------------
function ty1921($phonenum,$date){
	$open=fopen("E:\WAMP\WWWROOT\XXXXXXXXX_callout.txt","w" );
	$open2=fopen("E:\WAMP\WWWROOT\XXXXXXXXX_callout_log.txt","a" );
	$open3=fopen("E:\WAMP\WWWROOT\XXXXXXXXX_callout_date.txt","w" );

	if(fwrite($open,$phonenum)){//预配置文件
		if(fwrite($open2,$phonenum."  ".date("Y-m-d H:i:s")."\r\n")){//写入日志
			if(!fwrite($open3,$date)){
				echo "ok";
			}else{
				$err="XXXXXXXXX_callout_date更新失败:".$date;
			}
		}else{
			$err="写入日志失败";
		};
	}else{
		$err="打开XXXXXXXXX_callout.txt失败";
	};

	fclose($open);
}
//--------------函数结束--------------
$phonenum=trim($_REQUEST['phonenum']);

//程序、网页 修改配置
if(!empty($_REQUEST['type']) and !empty($_REQUEST['phonenum'])){

	if(strlen($phonenum) == "11")
	{	//上面部分判断长度是不是11位
		$n = preg_match_all("/13[0-9]{1}\d{8}|15[0-9]\d{8}|18[0-9]\d{8}/",$phonenum,$array);
		ty1921($_REQUEST['phonenum'],$_REQUEST['date']);
		$err="设置成功!请查看日志";
	}else
	{
		$err="手机号码格式错误:".$_REQUEST['phonenum'];
	} 
}


?>

<form method="post" action="?type=web&date=<?=date("Y-m-d")?>">
<table align="center"><tr><td align="left">
<div style="width:500px;height:500px;background-color:eeeeee;text-align:left">
<h2>XXXXXXXXX 手机呼叫转移 设置系统</h2>

请输入转接号码:<input id="phonenum" name="phonenum" maxlength="11" οnkeyup="value=value.replace('0','0').replace('1','1').replace('2','2').replace('3', '3').replace('4','4').replace('5','5').replace('6','6').replace('7', '7').replace('8','8').replace('9','9');" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace('0','0').replace('1','1').replace('2','2').replace('3', '3').replace('4','4').replace('5','5').replace('6','6').replace('7', '7').replace('8','8').replace('9','9'))" /> 

<br><font size="2" color="555555">*修改后,生效时间为<b>2</b>分钟,请2分钟以后再进行测试</font>
<br><br>
<input type="submit" value="                 修 改                 " >
<?

	$file_name="E:\WAMP\WWWROOT\XXXXXXXXX_callout.txt";
	$file_name2="E:\WAMP\WWWROOT\XXXXXXXXX_callout_log.txt";
	$fp=fopen($file_name,'r');

	if(!feof($fp)){
		$buffer=fgets($fp,32);
		echo "<hr>系统时间:  ".date("Y-m-d H:i:s")."   
				预转移号码:【 XXXXXXXXX → <font color='red'>".$buffer."</font> 】<hr>";

		$file2=file($file_name2);
		$start=count($file2)-1;
		$end=count($file2)-16;

		for ($i=$start;$i>$end;$i--) {
			//$arr[]=fgets($file2);//读出100~200行
			if(!empty($file2[$i])){
				echo $file2[$i]."<br>";
			}
		}
		
	}

	fclose($fp);

echo "</div>";

echo "<hr>".date("Y-m-d H:i:s")." →".$err."<hr>";
?>
</td></tr></table>
</form>



VB端FRM代码,另存为form1.frm即可:

VERSION 5.00
Object = "{48E59290-9880-11CF-9754-00AA00C00908}#1.0#0"; "MSINET.OCX"
Begin VB.Form Form1 
   Caption         =   "XXXXXXXXX来电转接监听"
   ClientHeight    =   7035
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   6705
   LinkTopic       =   "Form1"
   ScaleHeight     =   7035
   ScaleWidth      =   6705
   StartUpPosition =   1  '所有者中心
   Begin VB.CommandButton Command3 
      Caption         =   " 退 出 "
      BeginProperty Font 
         Name            =   "新宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   5400
      TabIndex        =   11
      Top             =   6600
      Width           =   1215
   End
   Begin VB.Timer Timer1 
      Interval        =   1000
      Left            =   4440
      Top             =   6480
   End
   Begin InetCtlsObjects.Inet Inet1 
      Left            =   3720
      Top             =   6360
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
   End
   Begin VB.Frame Frame2 
      Caption         =   "变更记录 "
      Height          =   4575
      Left            =   120
      TabIndex        =   1
      Top             =   1920
      Width           =   6495
      Begin VB.TextBox Text1 
         BorderStyle     =   0  'None
         Height          =   4215
         Left            =   120
         Locked          =   -1  'True
         MultiLine       =   -1  'True
         TabIndex        =   2
         Text            =   "Form1.frx":0000
         Top             =   240
         Width           =   6255
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "呼叫转移设置(http://192.168.*.*/XXXXXXXXX_callout.php)"
      Height          =   1695
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   6495
      Begin VB.CommandButton Command1 
         Caption         =   "立即更新"
         BeginProperty Font 
            Name            =   "宋体-PUA"
            Size            =   12
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Left            =   4800
         TabIndex        =   9
         Top             =   960
         Width           =   1455
      End
      Begin VB.CommandButton Command2 
         Caption         =   "手动检测"
         BeginProperty Font 
            Name            =   "宋体-PUA"
            Size            =   12
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Left            =   2880
         TabIndex        =   10
         Top             =   960
         Width           =   1935
      End
      Begin VB.CheckBox Check1 
         Caption         =   "自动轮换"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   12
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   360
         TabIndex        =   8
         Top             =   960
         Value           =   1  'Checked
         Width           =   1695
      End
      Begin VB.Label Label2 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H00C00000&
         Height          =   255
         Left            =   1440
         TabIndex        =   4
         Top             =   360
         Width           =   4455
      End
      Begin VB.Label Label4 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H00C00000&
         Height          =   255
         Left            =   1440
         TabIndex        =   6
         Top             =   600
         Width           =   4935
      End
      Begin VB.Label Label3 
         Caption         =   "程序设置:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H80000011&
         Height          =   255
         Left            =   360
         TabIndex        =   5
         Top             =   600
         Width           =   1455
      End
      Begin VB.Label Label1 
         Caption         =   "预订设置:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H00808080&
         Height          =   255
         Left            =   360
         TabIndex        =   3
         Top             =   360
         Width           =   1335
      End
   End
   Begin VB.Label Label5 
      Caption         =   "Copyright(c) 2013 ty1921 "
      Height          =   255
      Left            =   120
      TabIndex        =   7
      Top             =   6600
      Width           =   3015
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileStringByKeyName& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String)
Public I As Integer
Public Callout_date

Private Sub Command2_Click()
    Call Ty1921
End Sub

Private Sub Command3_Click()
    End
End Sub

Private Sub Form_Load()

    Call Ty1921
    I = 60

End Sub



Private Sub Command1_Click()
   '立即更新
   I = 3

End Sub





Private Sub Timer1_Timer()
    
    I = I - 1
    
    If I <= 0 Then
        Call Ty1921
            
        If Left(Label2.Caption, 11) <> Left(Label4.Caption, 11) Then
            '检测预配置,不一致则马上更改
            Call ReBoot(Left(Trim(Label2.Caption), 11))
        End If
        
        '自动轮换检查
        If Check1.Value = 1 And Time <= "00:06:00" Then
            
            '日期检查
            Callout_date = Inet1.OpenURL("http://192.168.*.*/XXXXXXXXX_callout_date.txt")
            If Date <> Callout_date Then
            '更换号码
                If Left(Label2.Caption, 11) = "181XXXXXXXX" Then
                    Call ReBoot("181XXXXXXXX")
                ElseIf Left(Label2.Caption, 11) = "189XXXXXXXX" Then
                    Call ReBoot("181XXXXXXXX")
                Else
                    Call ReBoot("XXXXXXXX")'应急号码
                End If
            End If
        End If
        
        '延时
        I = 120
        
        
    Else
        Command2.Caption = "手动检测 (" & I & ")"
    End If
    
    
    
End Sub


Sub Ty1921()

    Dim CallOut As String * 32
    GetPrivateProfileString "DATABASE", "callout", "错误,未得到值", CallOut, 255, "d:\zhai\IvrConfig.ini"
    Label4.Caption = Trim(Str(CallOut)) & " | " & Now
    
    Label2.Caption = Inet1.OpenURL("http://192.168.*.*/XXXXXXXXX_callout.txt") & " | " & Now
    
    Text1.Text = Inet1.OpenURL("http://192.168.*.*/XXXXXXXXX_callout_log.txt")

End Sub

Sub ReBoot(ByVal PhoneNum As String)

    Dim Result_i
    WritePrivateProfileStringByKeyName& "DATABASE", "callout", PhoneNum, "d:\zhai\IvrConfig.ini"
    '同步网络配置
    Result_i = Inet1.OpenURL("http://192.168.*.*/XXXXXXXXX_callout.php?type=vb&date=" & Date & "&phonenum=" & PhoneNum)
    If Result_i = "ok" Then
        Call Ty1921
    End If

            
    '关闭程序
    Shell ("cmd /c taskkill /f /im demo.exe"), vbHide
    '开启程序
    Shell ("D:\zhai\demo.exe"), vbNormalFocus

End Sub



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB+PHP实现在线修改Windows服务器的配置文件 的相关文章

  • spring中alias标签

    在对bean进行定义时 xff0c 除了使用id属性来指定名称之外 xff0c 为了提供多个名称 xff0c 可以使用alias标签来指定 而所有的这些名称都指向同一个bean xff0c 在某些情况下提供别名非常有用 xff0c 比如为了
  • ActiveMQ高并发处理方案

    高并发发送消息异常解决方法 xff1a 现象 xff1a 使用10个线程每100ms发送一条消息 xff0c 大约3000多条后 xff0c 出现异常 xff0c 所有线程停 止 xff1a javax jms JMSException C
  • Unable to get package info for com.example.sampletest; is package not installed?

    Unable to instantiate application com android activity BaseApplication java lang IllegalStateException Unable to get pac
  • 5种最著名的人脸识别算法和关键特征介绍

    人脸识别算法是任何人脸检测和识别系统或软件的基础组件 专家将这些算法分为两种核心方法 xff1a 几何方法侧重于区分特征 xff0c 光度统计方法用于从图像中提取值 然后将这些值与模板进行比较以消除差异 这些算法还可以分为两个更一般的类别
  • 请多多指教

    我是菜鸟 xff0c 还请各位大虾多多指教 xff01
  • golang-vue实现微信小程序分享到朋友圈

    最近涉及到微信小程序分享到朋友圈 xff0c 不知道微信为什么不直接接口分享 xff0c 咱也不敢佛 xff0c 咱也不敢问 xff0c 只能百度问度娘 xff0c 看官方文档 xff0c 网上的一些分享五花八门 xff0c 每一个重点的
  • Archlinux 命令行模式-安装 BIOS 非 UEFI(实装笔记)(系统安装完成,系统美化使用未完成)

    前言 截至2021年02月28日 xff0c 官网iso安装镜像已经提供有脚本安装方式 当下谨以命令行安装方式做记录 xff0c 共同学习 主要知识来源于archwiki https wiki archlinux org index php
  • Arch 基本安装后的使用配置

    A 参考借用整理 1 Arch wiki https wiki archlinux org index php Installation guide B 注意 1 选择有很多 xff0c 可以根据自己需求来 xff0c 如速度 xff0c
  • 【IP技术】网络安全防护措施

    网络安全威胁造成的形式主要包含运用系统软件缺点或侧门 xff0c 运用网络防火墙安全隐患 xff0c 内部结构客户的泄密 泄露和毁坏 xff0c 动态口令进攻和拒绝服务式攻击等 针对该网络安全威胁 xff0c 现阶段的预防措施主要有五种 x
  • 如何搭建本地yum仓库

    一 yum简介 yum xff08 Yellow dog Updater Modified xff09 是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器 基于 RPM 包管理 xff0c 能够从指
  • python_tweets.json (python数据挖掘入门与实践数据集下载)

    最近在看python数据挖掘入门与实践一书 xff0c 书不错 xff0c 有个不好的地方是 xff0c 书上所用的数据集 xff0c 有几个测试数据在网上非常不好找 下面几个资源是我自己整理出来的 xff0c 上传到CSDN xff0c
  • ios UILabel显示html文本

    let attrContent 61 try NSAttributedString data htmlContent options NSDocumentTypeDocumentAttribute NSHTMLTextDocumentTyp
  • 转行的辛苦

    我是2004年毕业的 xff0c 学的专业是市场营销 xff0c 毕业后来到深圳 xff0c 换了很多工作 xff0c 一直都无法找到令自己满意的工作 因为我非常喜欢计算机 xff0c 从中学到大学 xff0c 一直是班级里公认的计算机高手
  • 内存优化 和 性能优化 的总结

    从 检查内存 xff0c 减少使用 xff0c 复用 xff0c 以及及时释放几个维度去考虑 1 检查 可以ddms查看内存使用情况 xff0c 可以使用 adb shell dumpsys meminfo 查看 xff0c 也可以使用 l
  • ubuntu16.04 安装gnome经典桌面

    一直比较喜欢旧版本Ubuntu的Gnome风格的菜单栏 xff0c 在Ubuntu16 0 4中可以执行指令 xff1a sudo apt get install gnome session flashback 安装完成 xff0c 注销一
  • Gson在序列化反序列化中的TypeAdapter

    1 package waf json adatpter 2 3 import java io IOException 4 import java util ArrayList 5 import java util List 6 import
  • 技术泡妹子二:篡改百度首页,惊呆女神

    大多数网民上网的入口都是先打开百度 xff0c 然后再搜索xxx 进入 xff0c 为了给女神惊喜 xff0c 决定篡改百度首页让女神惊呆 xff0c 当然不是黑了百度 xff0c 目前没这个实力 xff0c 但是我们可以修改host文件
  • VC多线程中控制界面控件的几种方法

    转 http hi baidu com magicyang87 blog item 23bbf2fd72d6b81108244d73 html 为了保证界面的用户体验经常要把数据处理等放到子线程中进行 xff0c 然后把结果更新到主界面 x
  • 一次性打包学透 Spring

    不知从何时开始 xff0c Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中 xff0c 很多 Java 开发者从工作的第一天开始就在使用 Spring Framework xff0c 甚至有人调侃 不会 Sprin
  • 关于产品的一些思考——写在前面的话

    自己是一个十足的Geek xff0c 喜欢使用各种新奇的东西 xff0c 包括软件 硬件 技术 xff0c 又因为自己一点点轻微的强迫症和完美主义 xff0c 在这个过程中总会有自己的一些思考 xff0c 又因为技术出身 xff0c 总会考

随机推荐

  • mybatis映射文件mapper.xml的写法。

    在学习mybatis的时候我们通常会在映射文件这样写 xff1a lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt DOCTYPE mapper PUBLIC 34 myba
  • layer的弹出层的简单的例子

    如果不了级的基本的清楚官网查看api网址为 http layer layui com 我用的是iframe 如果是iframe层 layer open type 2 content 39 http sentsin com 39 这里cont
  • 左链接Column 'id' in field list is ambiguous

    如题错误如左链接Column 39 id 39 in field list is ambiguous 今天在写sm的时候 xff0c 用到两个表的联合查询出现的如下的错误 xff0c 仔细查找才发现原来两个表的id重复了 xff0c use
  • maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...

    1 我的项目结构是一个父项目 xff0c 多个子项目目录如下 xff1a 2 我这里就举个例子 xff0c 所以应用的也就是core和domain这两个项目 3 两个项目都继承父项目 4 在模块中domain依赖于core xff0c 在c
  • EOS的CPU危机:BM的租赁模式或只是乌托邦

    摘要 xff1a 继RAM内存之后 xff0c EOS的CPU危机也爆发了 昨日 xff0c 由于BetDice和EOSBET为了保证游戏的运行 xff0c 占用了过多的主网CPU xff0c 导致用户资源紧张 xff0c 甚至无法转账 昔
  • 有关Shiro中Principal的使用

    1 定义 principal代表什么那 xff1f 如果阅读官方文档或者源码你会得到如下的定义 xff1a 解释 xff1a 1 xff09 可以是uuid 2 xff09 数据库中的主键 3 xff09 LDAP UUID或静态DN 4
  • 关于shiro的 subject.getPrincipal()方法

    1 说明 上一篇文章说明了 principal xff0c 而subject getPrincipal 是用来干嘛的 xff0c 他就是来获取你存储的principal xff0c 内部是怎么获取的那 xff0c 多个principal怎么
  • CentOS7 64位安装solr7.2.0

    声明 xff1a 本人为学习solr的新手 xff0c 如编写过程中有部队的地方还请各位大佬指正 本文为原创 xff0c 如要转载请注明出处 你能学到 xff1a 1 linux上solr的安装部署 xff0c 官方给出的运行方式 2 添加
  • 阿里巴巴20121009 研发/算法工程师 笔试试题【修正】

    第19题 a i 在排序后的位置是 i k i 43 k xff0c a i 43 2k 在排序后的位置是 i 43 k i 43 3k xff0c 必然有a i lt 61 a i 43 2k 所以数组a里实际上有2k个各自有序的 交错的
  • Jetpakc LiveData ViewMode详解

    前言 xff1a 本文不定时更新 xff0c 有问题欢迎在评论区提出 最近更新时间 xff1a 2022 06 21 介绍 在2017年 xff0c 那时 xff0c 观察者模式有效的简化了开发 xff0c 但是诸如RxJava一类的库有一
  • ARM64 Linux kernel + busybox rootFS via NFS over QEMU with GDB

    由于条件所限 xff0c 一般选择软件做前期模拟 xff0c 这里做一些ARM 64 Linux kernel模拟运行环境搭建工作的总结 xff0c 记录以便后用 本文只涉及kernel 43 busybox rootFS via NFS
  • 寒假学习心得--从0开始学破解

    寒假学习心得 从0开始学破解 写给和我一样将要接触或者才接触破解 的朋友们 前提 你必须得真正喜欢 她 一 工欲善其事 必先利其器 1 找一个中文版的OD PEID 记得就OD就有咱PYG版的某牛人强化版的等等等等 找一个合适的工具 干起事
  • 常用的“密码重置”代码

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • ORACLE多表查询优化

    转自某地 对作者很愧疚 不晓得地址了 ORACLE 多表查询优化 这里提供的是执行性能的优化 而不是后台数据库优化器资料 参考数据库开发性能方面的各种问题 收集了一些优化方案统计如下 当然 象索引等优化方案太过简单就不列入了 嘿嘿 执行路径
  • Word to PDF Converter v3.0 算法分析及注册机

    Word to PDF Converter v3 0算法分析及注册机 详细过程 1 xff0c 主程序在C Program Files doc2pdf DOC2PDF dll xff0c PEID查壳为ASProtect 1 23 RC1
  • Debian11连不上网络问题

    有时候可以连上 xff0c 有时候就连不上 连不上的时候 xff0c 使用ifconfig命令 xff0c 只能看到回环接口 xff0c 看不到分配的网络IP地址 最后终于解决了 xff0c 记录一下 xff0c 以防之后出现同样的问题 1
  • 安全策略调整步骤

    1 修改防火墙 xff0c 保留22 SSHD 8081 APACHE 80 关闭端口443 HTTPS 3306 MYSQL 8080 8088 53 123 2 针对PHP的BUG和安全漏洞 xff0c 只有升级版本一途 xff0c 经
  • 获取微信openid(或昵称头像)的授权登录及其代理

    lt php 本页用于微信授权登录及其代理 64 version V2 0 64 author ty1921 lt ty1921 64 gmail com gt 64 param backurl 传get参数backurl xff0c 则授
  • 常用的PHP文件头和HTML5文件头(含移动端)

    lt php PHP Header Created by ty1921 64 gmail com Ver V1 Date 2017 8 18 1 session session start 2 display errors ini set
  • VB+PHP实现在线修改Windows服务器的配置文件

    本文仅供记录 存档备案用 用途 xff1a 某电话转接系统 xff0c 需要每天修改配置文件 并重启服务端程序 原理 xff1a WEB用于展示修改界面 xff0c 提交 保存配置文件的相关数据 VB端用于定时轮训WEB上保存的数据 xff