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

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


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

原理: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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
定义: 这是一款桌面级的WEB服务器 包含一个静态的http服务器与一个js脚本引擎 可以展示静态的网页与生成简单的动态页面 适合个人在windows服务器上面简单的建立http服务 支持情况: 静态http session application(仅仅能存取文本) 服务端执行的js脚本 数据库访问(反正ODBC支持的库都支持) 自定义的com组件引用 简易说明: 1 建立站点 打开编辑 设置 输入站点名称与路径 点击添加即可建立一个站点 如: myweb c: www 注意路径要以 结尾 在站点根目录下添加filter sjs与endfilter sjs(这是两个必须的过滤器 如无需写代码放两个空文件即可) 2 静态资源与动态页面 在server sjs里的server execFileTypes定义可以配置将哪些文档类型作为动态页面 当请求静态资源时会直接返回资源 当请求一个动态页面时 请求会依次在filter sjs 请求页面 endfilter sjs 进行转发 当然也可以在filter sjs里写代码来终止转发 动态页面中如果文档类型为 sjs服务器将识别为纯的服务端执行js脚本(好比servlet什么的) 在其他类型的动态页面文档中 目前有3种类型嵌入标签可用: <%c %>标签表示嵌入一段服务端执行js脚本 如:<body><%c response responseText+ "hello js"%>< body> 将返回页面<body>hello js< body> <%i %>标签表示引用资源 如:<%i src "parts part htm"%> <% %>标签表示插值 如:<body><% "hello js"%>< body> 将返回页面<body>hello js< body> 3 com组件引用 为了让web应用有更多功能扩展 该服务器可以在脚本中引用其他com组件 这里有2种引用方法 一种方法在设置里面添加引用变量名 组件名 引用类型;来添加其他com组件的引用 组件名写成 组件工程名 组件类名 形式 就像使用CreateObject时一样 引用类型可写sing与muti 其中sing为所有请求共用一个组件实例对象 muti为每个请求引用独立的组件实例对象 另外还可以在代码里使用objectLoader loadComObject attr comNm 来添加组件引用 attr为引用变量名 comNm为组件名 注意:一个新的组件在引用前应先用regsvr32 dll注册">定义: 这是一款桌面级的WEB服务器 包含一个静态的http服务器与一个js脚本引擎 可以展示静态的网页与生成简单的动态页面 适合个人在windows服务器上面简单的建立http服务 支持情况: 静态http session application(仅仅能存取文本 [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值