Thinkai's Blog

Autohotkey|Python|php|aardio|VOIP|IT 爱好者

PHP 环境探针 14958

作者为 发表

网站建设

<?php
/* ---------------------------------------------------- */
/* 程序名称: PHP探针
/* 程序功能: 探测系统的Web服务器运行环境
/* Date: 1970-01-01 / 2012-07-08
/* ---------------------------------------------------- */

error_reporting(0); //抑制所有错误信息
@header("content-Type: text/html; charset=utf-8"); //语言强制
ob_start();
date_default_timezone_set('Asia/Shanghai');//此句用于消除时间差

$title = 'Gimhoy.com PHP探针';

$version = "v0.4.7"; //版本号



define('HTTP_HOST', preg_replace('~^www\.~i', '', $_SERVER['HTTP_HOST']));



$time_start = microtime_float();



function memory_usage() 
{

	$memory	 = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB';

	return $memory;

}


// 计时

function microtime_float() 
{

	$mtime = microtime();

	$mtime = explode(' ', $mtime);

	return $mtime[1] + $mtime[0];

}


//单位转换
function formatsize($size) 
{
	$danwei=array(' B ',' K ',' M ',' G ',' T ');
	$allsize=array();
	$i=0;

	for($i = 0; $i <5; $i++) 
	{
		if(floor($size/pow(1024,$i))==0){break;}
	}

	for($l = $i-1; $l >=0; $l--) 
	{
		$allsize1[$l]=floor($size/pow(1024,$l));
		$allsize[$l]=$allsize1[$l]-$allsize1[$l+1]*1024;
	}

	$len=count($allsize);

	for($j = $len-1; $j >=0; $j--) 
	{
		$fsize=$fsize.$allsize[$j].$danwei[$j];
	}	
	return $fsize;
}


function valid_email($str) 
{

	return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;

}


//检测PHP设置参数

function show($varName)
{

	switch($result = get_cfg_var($varName))
	{

		case 0:

			return '<font color="red">×</font>';

		break;
		

		case 1:

			return '<font color="green">√</font>';

		break;
		

		default:

			return $result;

		break;

	}

}



//保留服务器性能测试结果

$valInt = isset($_POST['pInt']) ? $_POST['pInt'] : "未测试";

$valFloat = isset($_POST['pFloat']) ? $_POST['pFloat'] : "未测试";

$valIo = isset($_POST['pIo']) ? $_POST['pIo'] : "未测试";



if ($_GET['act'] == "phpinfo") 
{

	phpinfo();

	exit();

} 
elseif($_POST['act'] == "整型测试")
{

	$valInt = test_int();

} 
elseif($_POST['act'] == "浮点测试")
{

	$valFloat = test_float();

} 
elseif($_POST['act'] == "IO测试")
{

	$valIo = test_io();

} 
//网速测试-开始
elseif($_POST['act']=="开始测试")
{
?>
	<script language="javascript" type="text/javascript">
		var acd1;
		acd1 = new Date();
		acd1ok=acd1.getTime();
	</script>
	<?php
	for($i=1;$i<=100000;$i++)
	{
		echo "<!--567890#########0#########0#########0#########0#########0#########0#########0#########012345-->";
	}
	?>
	<script language="javascript" type="text/javascript">
		var acd2;
		acd2 = new Date();
		acd2ok=acd2.getTime();
		window.location = '?speed=' +(acd2ok-acd1ok)+'#w_networkspeed';
	</script>
<?php
}
//网速测试-结束
elseif($_GET['act'] == "Function")
{
	$arr = get_defined_functions();
	Function php()
	{
	}
	echo "<pre>";
	Echo "这里显示系统所支持的所有函数,和自定义函数\n";
	print_r($arr);
	echo "</pre>";
	exit();
}elseif($_GET['act'] == "disable_functions")
{
	$disFuns=get_cfg_var("disable_functions");
	if(empty($disFuns))
	{
		$arr = '<font color=red>×</font>';
	}
	else
	{ 
		$arr = $disFuns;
	}
	Function php()
	{
	}
	echo "<pre>";
	Echo "这里显示系统被禁用的函数\n";
	print_r($arr);
	echo "</pre>";
	exit();
}



//MySQL检测

if ($_POST['act'] == 'MySQL检测')
{

	$host = isset($_POST['host']) ? trim($_POST['host']) : '';

	$port = isset($_POST['port']) ? (int) $_POST['port'] : '';

	$login = isset($_POST['login']) ? trim($_POST['login']) : '';

	$password = isset($_POST['password']) ? trim($_POST['password']) : '';

	$host = preg_match('~[^a-z0-9\-\.]+~i', $host) ? '' : $host;

	$port = intval($port) ? intval($port) : '';

	$login = preg_match('~[^a-z0-9\_\-]+~i', $login) ? '' : htmlspecialchars($login);

	$password = is_string($password) ? htmlspecialchars($password) : '';

}
elseif ($_POST['act'] == '函数检测')
{

	$funRe = "函数".$_POST['funName']."支持状况检测结果:".isfun1($_POST['funName']);

} 
elseif ($_POST['act'] == '邮件检测')
{

	$mailRe = "邮件发送检测结果:发送";
	if($_SERVER['SERVER_PORT']==80){$mailContent = "http://".$_SERVER['SERVER_NAME'].($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);}
	else{$mailContent = "http://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);}
	$mailRe .= (false !== @mail($_POST["mailAdd"], $mailContent, "This is a test mail!")) ? "完成":"失败";

}


//网络速度测试
if(isset($_POST['speed']))
{
	$speed=round(100/($_POST['speed']/1000),2);
}
elseif($_GET['speed']=="0")
{
	$speed=6666.67;
}
elseif(isset($_GET['speed']) and $_GET['speed']>0)
{
	$speed=round(100/($_GET['speed']/1000),2); //下载速度:$speed kb/s
}
else
{
	$speed="<font color=\"red\">&nbsp;未探测&nbsp;</font>";
}	
	
	

// 检测函数支持

function isfun($funName = '')
{

    if (!$funName || trim($funName) == '' || preg_match('~[^a-z0-9\_]+~i', $funName, $tmp)) return '错误';

	return (false !== function_exists($funName)) ? '<font color="green">√</font>' : '<font color="red">×</font>';
}
function isfun1($funName = '')
{
    if (!$funName || trim($funName) == '' || preg_match('~[^a-z0-9\_]+~i', $funName, $tmp)) return '错误';
	return (false !== function_exists($funName)) ? '√' : '×';
}



//整数运算能力测试

function test_int()
{

	$timeStart = gettimeofday();

	for($i = 0; $i < 3000000; $i++)
	{

		$t = 1+1;

	}

	$timeEnd = gettimeofday();

	$time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];

	$time = round($time, 3)."秒";

	return $time;

}



//浮点运算能力测试

function test_float()
{

	//得到圆周率值

	$t = pi();

	$timeStart = gettimeofday();



	for($i = 0; $i < 3000000; $i++)
	{

		//开平方

		sqrt($t);

	}



	$timeEnd = gettimeofday();

	$time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];

	$time = round($time, 3)."秒";

	return $time;

}



//IO能力测试

function test_io()
{

	$fp = @fopen(PHPSELF, "r");

	$timeStart = gettimeofday();

	for($i = 0; $i < 10000; $i++) 
	{

		@fread($fp, 10240);

		@rewind($fp);

	}

	$timeEnd = gettimeofday();

	@fclose($fp);

	$time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];

	$time = round($time, 3)."秒";

	return($time);

}

function GetCoreInformation() {$data = file('/proc/stat');$cores = array();foreach( $data as $line ) {if( preg_match('/^cpu[0-9]/', $line) ){$info = explode(' ', $line);$cores[]=array('user'=>$info[1],'nice'=>$info[2],'sys' => $info[3],'idle'=>$info[4],'iowait'=>$info[5],'irq' => $info[6],'softirq' => $info[7]);}}return $cores;}
function GetCpuPercentages($stat1, $stat2) {if(count($stat1)!==count($stat2)){return;}$cpus=array();for( $i = 0, $l = count($stat1); $i < $l; $i++) {	$dif = array();	$dif['user'] = $stat2[$i]['user'] - $stat1[$i]['user'];$dif['nice'] = $stat2[$i]['nice'] - $stat1[$i]['nice'];	$dif['sys'] = $stat2[$i]['sys'] - $stat1[$i]['sys'];$dif['idle'] = $stat2[$i]['idle'] - $stat1[$i]['idle'];$dif['iowait'] = $stat2[$i]['iowait'] - $stat1[$i]['iowait'];$dif['irq'] = $stat2[$i]['irq'] - $stat1[$i]['irq'];$dif['softirq'] = $stat2[$i]['softirq'] - $stat1[$i]['softirq'];$total = array_sum($dif);$cpu = array();foreach($dif as $x=>$y) $cpu[$x] = round($y / $total * 100, 2);$cpus['cpu' . $i] = $cpu;}return $cpus;}
$stat1 = GetCoreInformation();sleep(1);$stat2 = GetCoreInformation();$data = GetCpuPercentages($stat1, $stat2);
$cpu_show = $data['cpu0']['user']."%us,  ".$data['cpu0']['sys']."%sy,  ".$data['cpu0']['nice']."%ni, ".$data['cpu0']['idle']."%id,  ".$data['cpu0']['iowait']."%wa,  ".$data['cpu0']['irq']."%irq,  ".$data['cpu0']['softirq']."%softirq";
function makeImageUrl($title, $data) {$api='http://api.yahei.net/tz/cpu_show.php?id=';$url.=$data['user'].',';$url.=$data['nice'].',';$url.=$data['sys'].',';$url.=$data['idle'].',';$url.=$data['iowait'];$url.='&chdl=User|Nice|Sys|Idle|Iowait&chdlp=b&chl=';$url.=$data['user'].'%25|';$url.=$data['nice'].'%25|';$url.=$data['sys'].'%25|';$url.=$data['idle'].'%25|';$url.=$data['iowait'].'%25';$url.='&chtt=Core+'.$title;return $api.base64_encode($url);}
if($_GET['act'] == "cpu_percentage"){echo "<center><b><font face='Microsoft YaHei' color='#666666' size='3'>图片加载慢,请耐心等待!</font></b><br /><br />";foreach( $data as $k => $v ) {echo '<img src="' . makeImageUrl( $k, $v ) . '" style="width:360px;height:240px;border: #CCCCCC 1px solid;background: #FFFFFF;margin:5px;padding:5px;" />';}echo "</center>";exit();}



// 根据不同系统取得CPU相关信息

switch(PHP_OS)
{

	case "Linux":

		$sysReShow = (false !== ($sysInfo = sys_linux()))?"show":"none";

	break;
	

	case "FreeBSD":

		$sysReShow = (false !== ($sysInfo = sys_freebsd()))?"show":"none";

	break;
/*	

	case "WINNT":

		$sysReShow = (false !== ($sysInfo = sys_windows()))?"show":"none";

	break;
*/	

	default:

	break;

}



//linux系统探测

function sys_linux()

{

    // CPU

    if (false === ($str = @file("/proc/cpuinfo"))) return false;

    $str = implode("", $str);

    @preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s", $str, $model);

    @preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $mhz);

    @preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/", $str, $cache);

    @preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $bogomips);

    if (false !== is_array($model[1]))

	{

        $res['cpu']['num'] = sizeof($model[1]);
		/*

        for($i = 0; $i < $res['cpu']['num']; $i++)

        {

            $res['cpu']['model'][] = $model[1][$i].'&nbsp;('.$mhz[1][$i].')';

            $res['cpu']['mhz'][] = $mhz[1][$i];

            $res['cpu']['cache'][] = $cache[1][$i];

            $res['cpu']['bogomips'][] = $bogomips[1][$i];

        }*/
		if($res['cpu']['num']==1)
			$x1 = '';
		else
			$x1 = ' ×'.$res['cpu']['num'];
		$mhz[1][0] = ' | 频率:'.$mhz[1][0];
		$cache[1][0] = ' | 二级缓存:'.$cache[1][0];
		$bogomips[1][0] = ' | Bogomips:'.$bogomips[1][0];
		$res['cpu']['model'][] = $model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;

        if (false !== is_array($res['cpu']['model'])) $res['cpu']['model'] = implode("<br />", $res['cpu']['model']);

        if (false !== is_array($res['cpu']['mhz'])) $res['cpu']['mhz'] = implode("<br />", $res['cpu']['mhz']);

        if (false !== is_array($res['cpu']['cache'])) $res['cpu']['cache'] = implode("<br />", $res['cpu']['cache']);

        if (false !== is_array($res['cpu']['bogomips'])) $res['cpu']['bogomips'] = implode("<br />", $res['cpu']['bogomips']);

	}


    // NETWORK


    // UPTIME

    if (false === ($str = @file("/proc/uptime"))) return false;

    $str = explode(" ", implode("", $str));

    $str = trim($str[0]);

    $min = $str / 60;

    $hours = $min / 60;

    $days = floor($hours / 24);

    $hours = floor($hours - ($days * 24));

    $min = floor($min - ($days * 60 * 24) - ($hours * 60));

    if ($days !== 0) $res['uptime'] = $days."天";

    if ($hours !== 0) $res['uptime'] .= $hours."小时";

    $res['uptime'] .= $min."分钟";


    // MEMORY

    if (false === ($str = @file("/proc/meminfo"))) return false;

    $str = implode("", $str);

    preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);
	preg_match_all("/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buffers);


    $res['memTotal'] = round($buf[1][0]/1024, 2);

    $res['memFree'] = round($buf[2][0]/1024, 2);

    $res['memBuffers'] = round($buffers[1][0]/1024, 2);
	$res['memCached'] = round($buf[3][0]/1024, 2);

    $res['memUsed'] = $res['memTotal']-$res['memFree'];

    $res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0;


    $res['memRealUsed'] = $res['memTotal'] - $res['memFree'] - $res['memCached'] - $res['memBuffers']; //真实内存使用
	$res['memRealFree'] = $res['memTotal'] - $res['memRealUsed']; //真实空闲
    $res['memRealPercent'] = (floatval($res['memTotal'])!=0)?round($res['memRealUsed']/$res['memTotal']*100,2):0; //真实内存使用率

	$res['memCachedPercent'] = (floatval($res['memCached'])!=0)?round($res['memCached']/$res['memTotal']*100,2):0; //Cached内存使用率

    $res['swapTotal'] = round($buf[4][0]/1024, 2);

    $res['swapFree'] = round($buf[5][0]/1024, 2);

    $res['swapUsed'] = round($res['swapTotal']-$res['swapFree'], 2);

    $res['swapPercent'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;


    // LOAD AVG

    if (false === ($str = @file("/proc/loadavg"))) return false;

    $str = explode(" ", implode("", $str));

    $str = array_chunk($str, 4);

    $res['loadAvg'] = implode(" ", $str[0]);


    return $res;

}



//FreeBSD系统探测

function sys_freebsd()
{

	//CPU

	if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;

	$res['cpu']['model'] = get_key("hw.model");

	//LOAD AVG

	if (false === ($res['loadAvg'] = get_key("vm.loadavg"))) return false;

	//UPTIME

	if (false === ($buf = get_key("kern.boottime"))) return false;

	$buf = explode(' ', $buf);

	$sys_ticks = time() - intval($buf[3]);

	$min = $sys_ticks / 60;

	$hours = $min / 60;

	$days = floor($hours / 24);

	$hours = floor($hours - ($days * 24));

	$min = floor($min - ($days * 60 * 24) - ($hours * 60));

	if ($days !== 0) $res['uptime'] = $days."天";

	if ($hours !== 0) $res['uptime'] .= $hours."小时";

	$res['uptime'] .= $min."分钟";

	//MEMORY

	if (false === ($buf = get_key("hw.physmem"))) return false;

	$res['memTotal'] = round($buf/1024/1024, 2);


	$str = get_key("vm.vmtotal");

	preg_match_all("/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buff, PREG_SET_ORDER);

	preg_match_all("/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buf, PREG_SET_ORDER);


	$res['memRealUsed'] = round($buf[0][2]/1024, 2);

	$res['memCached'] = round($buff[0][2]/1024, 2);

	$res['memUsed'] = round($buf[0][1]/1024, 2) + $res['memCached'];

	$res['memFree'] = $res['memTotal'] - $res['memUsed'];

	$res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0;


	$res['memRealPercent'] = (floatval($res['memTotal'])!=0)?round($res['memRealUsed']/$res['memTotal']*100,2):0;


	return $res;

}



//取得参数值 FreeBSD

function get_key($keyName)
{

	return do_command('sysctl', "-n $keyName");

}



//确定执行文件位置 FreeBSD

function find_command($commandName)
{

	$path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');

	foreach($path as $p) 
	{

		if (@is_executable("$p/$commandName")) return "$p/$commandName";

	}

	return false;

}



//执行系统命令 FreeBSD

function do_command($commandName, $args)
{

	$buffer = "";

	if (false === ($command = find_command($commandName))) return false;

	if ($fp = @popen("$command $args", 'r')) 
	{

		while (!@feof($fp))
		{

			$buffer .= @fgets($fp, 4096);

		}

		return trim($buffer);

	}

	return false;

}



//windows系统探测

function sys_windows()
{

	if (PHP_VERSION >= 5)
	{

		$objLocator = new COM("WbemScripting.SWbemLocator");

		$wmi = $objLocator->ConnectServer();

		$prop = $wmi->get("Win32_PnPEntity");

	}
	else
	{
		return false;

	}



	//CPU

	$cpuinfo = GetWMI($wmi,"Win32_Processor", array("Name","L2CacheSize","NumberOfCores"));

	$res['cpu']['num'] = $cpuinfo[0]['NumberOfCores'];

	if (null == $res['cpu']['num']) 
	{

		$res['cpu']['num'] = 1;

	}/*

	for ($i=0;$i<$res['cpu']['num'];$i++)
	{

		$res['cpu']['model'] .= $cpuinfo[0]['Name']."<br />";

		$res['cpu']['cache'] .= $cpuinfo[0]['L2CacheSize']."<br />";

	}*/
	$cpuinfo[0]['L2CacheSize'] = ' ('.$cpuinfo[0]['L2CacheSize'].')';
	if($res['cpu']['num']==1)
		$x1 = '';
	else
		$x1 = ' ×'.$res['cpu']['num'];
	$res['cpu']['model'] = $cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1;

	// SYSINFO

	$sysinfo = GetWMI($wmi,"Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));

	$sysinfo[0]['Caption']=iconv('GBK', 'UTF-8',$sysinfo[0]['Caption']);

	$sysinfo[0]['CSDVersion']=iconv('GBK', 'UTF-8',$sysinfo[0]['CSDVersion']);

	$res['win_n'] = $sysinfo[0]['Caption']." ".$sysinfo[0]['CSDVersion']." 序列号:{$sysinfo[0]['SerialNumber']} 于".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安装";

	//UPTIME

	$res['uptime'] = $sysinfo[0]['LastBootUpTime'];


	$sys_ticks = 3600*8 + time() - strtotime(substr($res['uptime'],0,14));

	$min = $sys_ticks / 60;

	$hours = $min / 60;

	$days = floor($hours / 24);

	$hours = floor($hours - ($days * 24));

	$min = floor($min - ($days * 60 * 24) - ($hours * 60));

	if ($days !== 0) $res['uptime'] = $days."天";

	if ($hours !== 0) $res['uptime'] .= $hours."小时";

	$res['uptime'] .= $min."分钟";


	//MEMORY

	$res['memTotal'] = round($sysinfo[0]['TotalVisibleMemorySize']/1024,2);

	$res['memFree'] = round($sysinfo[0]['FreePhysicalMemory']/1024,2);

	$res['memUsed'] = $res['memTotal']-$res['memFree'];	//上面两行已经除以1024,这行不用再除了

	$res['memPercent'] = round($res['memUsed'] / $res['memTotal']*100,2);


	$swapinfo = GetWMI($wmi,"Win32_PageFileUsage", array('AllocatedBaseSize','CurrentUsage'));


	// LoadPercentage

	$loadinfo = GetWMI($wmi,"Win32_Processor", array("LoadPercentage"));

	$res['loadAvg'] = $loadinfo[0]['LoadPercentage'];


	return $res;

}



function GetWMI($wmi,$strClass, $strValue = array())
{

	$arrData = array();


	$objWEBM = $wmi->Get($strClass);

	$arrProp = $objWEBM->Properties_;

	$arrWEBMCol = $objWEBM->Instances_();

	foreach($arrWEBMCol as $objItem) 
	{

		@reset($arrProp);

		$arrInstance = array();

		foreach($arrProp as $propItem) 
		{

			eval("\$value = \$objItem->" . $propItem->Name . ";");

			if (empty($strValue)) 
			{

				$arrInstance[$propItem->Name] = trim($value);

			} 
			else
			{

				if (in_array($propItem->Name, $strValue)) 
				{

					$arrInstance[$propItem->Name] = trim($value);

				}

			}

		}

		$arrData[] = $arrInstance;

	}

	return $arrData;

}



//比例条

function bar($percent)
{

?>

	<div class="bar"><div class="barli" style="width:<?php echo $percent?>%">&nbsp;</div></div>

<?php

}



$uptime = $sysInfo['uptime']; //在线时间

$stime = date('Y-m-d H:i:s'); //系统当前时间

//硬盘

$dt = round(@disk_total_space(".")/(1024*1024*1024),3); //总
$df = round(@disk_free_space(".")/(1024*1024*1024),3); //可用
$du = $dt-$df; //已用
$hdPercent = (floatval($dt)!=0)?round($du/$dt*100,2):0;

$load = $sysInfo['loadAvg'];	//系统负载


//判断内存如果小于1G,就显示M,否则显示G单位
if($sysInfo['memTotal']<1024)
{
	$memTotal = $sysInfo['memTotal']." M";
	$mt = $sysInfo['memTotal']." M";
	$mu = $sysInfo['memUsed']." M";
	$mf = $sysInfo['memFree']." M";
	$mc = $sysInfo['memCached']." M";	//cache化内存
	$mb = $sysInfo['memBuffers']." M";	//缓冲
	$st = $sysInfo['swapTotal']." M";
	$su = $sysInfo['swapUsed']." M";
	$sf = $sysInfo['swapFree']." M";
	$swapPercent = $sysInfo['swapPercent'];
	$memRealUsed = $sysInfo['memRealUsed']." M"; //真实内存使用
	$memRealFree = $sysInfo['memRealFree']." M"; //真实内存空闲
	$memRealPercent = $sysInfo['memRealPercent']; //真实内存使用比率
	$memPercent = $sysInfo['memPercent']; //内存总使用率
	$memCachedPercent = $sysInfo['memCachedPercent']; //cache内存使用率
}
else
{
	$memTotal = round($sysInfo['memTotal']/1024,3)." G";
	$mt = round($sysInfo['memTotal']/1024,3)." G";
	$mu = round($sysInfo['memUsed']/1024,3)." G";
	$mf = round($sysInfo['memFree']/1024,3)." G";
	$mc = round($sysInfo['memCached']/1024,3)." G";
	$mb = round($sysInfo['memBuffers']/1024,3)." G";
	$st = round($sysInfo['swapTotal']/1024,3)." G";
	$su = round($sysInfo['swapUsed']/1024,3)." G";
	$sf = round($sysInfo['swapFree']/1024,3)." G";
	$swapPercent = $sysInfo['swapPercent'];
	$memRealUsed = round($sysInfo['memRealUsed']/1024,3)." G"; //真实内存使用
	$memRealFree = round($sysInfo['memRealFree']/1024,3)." G"; //真实内存空闲
	$memRealPercent = $sysInfo['memRealPercent']; //真实内存使用比率
	$memPercent = $sysInfo['memPercent']; //内存总使用率
	$memCachedPercent = $sysInfo['memCachedPercent']; //cache内存使用率
}


//网卡流量

$strs = @file("/proc/net/dev"); 



for ($i = 2; $i < count($strs); $i++ )
{
	preg_match_all( "/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $strs[$i], $info );
	$NetOutSpeed[$i] = $info[10][0];
	$NetInputSpeed[$i] = $info[2][0];
	$NetInput[$i] = formatsize($info[2][0]);
	$NetOut[$i]  = formatsize($info[10][0]);
}


//ajax调用实时刷新

if ($_GET['act'] == "rt")

{

	$arr=array('useSpace'=>"$du",'freeSpace'=>"$df",'hdPercent'=>"$hdPercent",'barhdPercent'=>"$hdPercent%",'TotalMemory'=>"$mt",'UsedMemory'=>"$mu",'FreeMemory'=>"$mf",'CachedMemory'=>"$mc",'Buffers'=>"$mb",'TotalSwap'=>"$st",'swapUsed'=>"$su",'swapFree'=>"$sf",'loadAvg'=>"$load",'uptime'=>"$uptime",'freetime'=>"$freetime",'bjtime'=>"$bjtime",'stime'=>"$stime",'memRealPercent'=>"$memRealPercent",'memRealUsed'=>"$memRealUsed",'memRealFree'=>"$memRealFree",'memPercent'=>"$memPercent%",'memCachedPercent'=>"$memCachedPercent",'barmemCachedPercent'=>"$memCachedPercent%",'swapPercent'=>"$swapPercent",'barmemRealPercent'=>"$memRealPercent%",'barswapPercent'=>"$swapPercent%",'NetOut2'=>"$NetOut[2]",'NetOut3'=>"$NetOut[3]",'NetOut4'=>"$NetOut[4]",'NetOut5'=>"$NetOut[5]",'NetOut6'=>"$NetOut[6]",'NetOut7'=>"$NetOut[7]",'NetOut8'=>"$NetOut[8]",'NetOut9'=>"$NetOut[9]",'NetOut10'=>"$NetOut[10]",'NetInput2'=>"$NetInput[2]",'NetInput3'=>"$NetInput[3]",'NetInput4'=>"$NetInput[4]",'NetInput5'=>"$NetInput[5]",'NetInput6'=>"$NetInput[6]",'NetInput7'=>"$NetInput[7]",'NetInput8'=>"$NetInput[8]",'NetInput9'=>"$NetInput[9]",'NetInput10'=>"$NetInput[10]",'NetOutSpeed2'=>"$NetOutSpeed[2]",'NetOutSpeed3'=>"$NetOutSpeed[3]",'NetOutSpeed4'=>"$NetOutSpeed[4]",'NetOutSpeed5'=>"$NetOutSpeed[5]",'NetInputSpeed2'=>"$NetInputSpeed[2]",'NetInputSpeed3'=>"$NetInputSpeed[3]",'NetInputSpeed4'=>"$NetInputSpeed[4]",'NetInputSpeed5'=>"$NetInputSpeed[5]");

	$jarr=json_encode($arr); 
	$_GET['callback'] = htmlspecialchars($_GET['callback']);

	echo $_GET['callback'],'(',$jarr,')';

	exit;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title><?php echo $title.$version; ?></title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Powered by: Yahei.Net -->

<style type="text/css">
<!--
* {font-family: "Microsoft Yahei",Tahoma, Arial; }
body{text-align: center; margin: 0 auto; padding: 0; background-color:#fafafa;font-size:12px;font-family:Tahoma, Arial}
h1 {font-size: 26px; padding: 0; margin: 0; color: #333333; font-family: "Lucida Sans Unicode","Lucida Grande",sans-serif;}
h1 small {font-size: 11px; font-family: Tahoma; font-weight: bold; }
a{color: #666; text-decoration:none;}
a.black{color: #000000; text-decoration:none;}
table{width:100%;clear:both;padding: 0; margin: 0 0 10px;border-collapse:collapse; border-spacing: 0;
box-shadow: 1px 1px 1px #CCC;
-moz-box-shadow: 1px 1px 1px #CCC;
-webkit-box-shadow: 1px 1px 1px #CCC;
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=135, Color='#CCCCCC')";}
th{padding: 3px 6px; font-weight:bold;background:#dedede;color:#626262;border:1px solid #cccccc; text-align:left;}
tr{padding: 0; background:#FFFFFF;}
td{padding: 3px 6px; border:1px solid #CCCCCC;}
.w_logo{height:25px;text-align:center;color:#333;FONT-SIZE: 15px; width:13%; }
.w_top{height:25px;text-align:center; width:8.7%;}
.w_top:hover{background:#dadada;}
.w_foot{height:25px;text-align:center; background:#dedede;}
input{padding: 2px; background: #FFFFFF; border-top:1px solid #666666; border-left:1px solid #666666; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; font-size:12px}
input.btn{font-weight: bold; height: 20px; line-height: 20px; padding: 0 6px; color:#666666; background: #f2f2f2; border:1px solid #999;font-size:12px}
.bar {border:1px solid #999999; background:#FFFFFF; height:5px; font-size:2px; width:89%; margin:2px 0 5px 0;padding:1px; overflow: hidden;}
.bar_1 {border:1px dotted #999999; background:#FFFFFF; height:5px; font-size:2px; width:89%; margin:2px 0 5px 0;padding:1px; overflow: hidden;}
.barli_red{background:#ff6600; height:5px; margin:0px; padding:0;}
.barli_blue{background:#0099FF; height:5px; margin:0px; padding:0;}
.barli_green{background:#36b52a; height:5px; margin:0px; padding:0;}
.barli_black{background:#333; height:5px; margin:0px; padding:0;}
.barli_1{background:#999999; height:5px; margin:0px; padding:0;}
.barli{background:#36b52a; height:5px; margin:0px; padding:0;}
#page {width: 960px; padding: 0 auto; margin: 0 auto; text-align: left;}
#header{position:relative; padding:5px;}
.w_small{font-family: Courier New;}
.w_number{color: #f800fe;}
.sudu {padding: 0; background:#5dafd1; }
.suduk { margin:0px; padding:0;}
.resYes{}
.resNo{color: #FF0000;}
.word{word-break:break-all;}
-->
</style>

<script language="JavaScript" type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.7/jquery.min.js"></script>

<script type="text/javascript"> 

<!--

$(document).ready(function(){getJSONData();});
var OutSpeed2=<?php echo floor($NetOutSpeed[2]) ?>;
var OutSpeed3=<?php echo floor($NetOutSpeed[3]) ?>;
var OutSpeed4=<?php echo floor($NetOutSpeed[4]) ?>;
var OutSpeed5=<?php echo floor($NetOutSpeed[5]) ?>;
var InputSpeed2=<?php echo floor($NetInputSpeed[2]) ?>;
var InputSpeed3=<?php echo floor($NetInputSpeed[3]) ?>;
var InputSpeed4=<?php echo floor($NetInputSpeed[4]) ?>;
var InputSpeed5=<?php echo floor($NetInputSpeed[5]) ?>;

function getJSONData()

{

	setTimeout("getJSONData()", 1000);

	$.getJSON('?act=rt&callback=?', displayData);

}
function ForDight(Dight,How)
{ 
  if (Dight<0){
  	var Last=0+"B/s";
  }else if (Dight<1024){
  	var Last=Math.round(Dight*Math.pow(10,How))/Math.pow(10,How)+"B/s";
  }else if (Dight<1048576){
  	Dight=Dight/1024;
  	var Last=Math.round(Dight*Math.pow(10,How))/Math.pow(10,How)+"K/s";
  }else{
  	Dight=Dight/1048576;
  	var Last=Math.round(Dight*Math.pow(10,How))/Math.pow(10,How)+"M/s";
  }
	return Last; 
}

function displayData(dataJSON)

{
	$("#useSpace").html(dataJSON.useSpace);

	$("#freeSpace").html(dataJSON.freeSpace);
	$("#hdPercent").html(dataJSON.hdPercent);
	$("#barhdPercent").width(dataJSON.barhdPercent);

	$("#TotalMemory").html(dataJSON.TotalMemory);

	$("#UsedMemory").html(dataJSON.UsedMemory);

	$("#FreeMemory").html(dataJSON.FreeMemory);

	$("#CachedMemory").html(dataJSON.CachedMemory);
	$("#Buffers").html(dataJSON.Buffers);

	$("#TotalSwap").html(dataJSON.TotalSwap);

	$("#swapUsed").html(dataJSON.swapUsed);

	$("#swapFree").html(dataJSON.swapFree);

	$("#swapPercent").html(dataJSON.swapPercent);

	$("#loadAvg").html(dataJSON.loadAvg);

	$("#uptime").html(dataJSON.uptime);

	$("#freetime").html(dataJSON.freetime);

	$("#stime").html(dataJSON.stime);

	$("#bjtime").html(dataJSON.bjtime);

	$("#memRealUsed").html(dataJSON.memRealUsed);
	$("#memRealFree").html(dataJSON.memRealFree);
	$("#memRealPercent").html(dataJSON.memRealPercent);

	$("#memPercent").html(dataJSON.memPercent);
	$("#barmemPercent").width(dataJSON.memPercent);

	$("#barmemRealPercent").width(dataJSON.barmemRealPercent);
	$("#memCachedPercent").html(dataJSON.memCachedPercent);
	$("#barmemCachedPercent").width(dataJSON.barmemCachedPercent);

	$("#barswapPercent").width(dataJSON.barswapPercent);

	$("#NetOut2").html(dataJSON.NetOut2);

	$("#NetOut3").html(dataJSON.NetOut3);

	$("#NetOut4").html(dataJSON.NetOut4);

	$("#NetOut5").html(dataJSON.NetOut5);

	$("#NetOut6").html(dataJSON.NetOut6);

	$("#NetOut7").html(dataJSON.NetOut7);

	$("#NetOut8").html(dataJSON.NetOut8);

	$("#NetOut9").html(dataJSON.NetOut9);

	$("#NetOut10").html(dataJSON.NetOut10);
	$("#NetInput2").html(dataJSON.NetInput2);
	$("#NetInput3").html(dataJSON.NetInput3);
	$("#NetInput4").html(dataJSON.NetInput4);
	$("#NetInput5").html(dataJSON.NetInput5);
	$("#NetInput6").html(dataJSON.NetInput6);
	$("#NetInput7").html(dataJSON.NetInput7);
	$("#NetInput8").html(dataJSON.NetInput8);
	$("#NetInput9").html(dataJSON.NetInput9);
	$("#NetInput10").html(dataJSON.NetInput10);	
	$("#NetOutSpeed2").html(ForDight((dataJSON.NetOutSpeed2-OutSpeed2),3));	OutSpeed2=dataJSON.NetOutSpeed2;
	$("#NetOutSpeed3").html(ForDight((dataJSON.NetOutSpeed3-OutSpeed3),3));	OutSpeed3=dataJSON.NetOutSpeed3;
	$("#NetOutSpeed4").html(ForDight((dataJSON.NetOutSpeed4-OutSpeed4),3));	OutSpeed4=dataJSON.NetOutSpeed4;
	$("#NetOutSpeed5").html(ForDight((dataJSON.NetOutSpeed5-OutSpeed5),3));	OutSpeed5=dataJSON.NetOutSpeed5;
	$("#NetInputSpeed2").html(ForDight((dataJSON.NetInputSpeed2-InputSpeed2),3));	InputSpeed2=dataJSON.NetInputSpeed2;
	$("#NetInputSpeed3").html(ForDight((dataJSON.NetInputSpeed3-InputSpeed3),3));	InputSpeed3=dataJSON.NetInputSpeed3;
	$("#NetInputSpeed4").html(ForDight((dataJSON.NetInputSpeed4-InputSpeed4),3));	InputSpeed4=dataJSON.NetInputSpeed4;
	$("#NetInputSpeed5").html(ForDight((dataJSON.NetInputSpeed5-InputSpeed5),3));	InputSpeed5=dataJSON.NetInputSpeed5;

}

-->

</script>

</head>

<body>
<a name="w_top"></a>

<div id="page">

	
	<table>
		<tr>
			<th class="w_logo">Gimhoy.com PHP探针</th>
			<th class="w_top"><a href="#w_php">PHP参数</a></th>
			<th class="w_top"><a href="#w_module">组件支持</a></th>
			<th class="w_top"><a href="#w_module_other">第三方组件</a></th>
			<th class="w_top"><a href="#w_db">数据库支持</a></th>
			<th class="w_top"><a href="#w_performance">性能检测</a></th>
			<th class="w_top"><a href="#w_networkspeed">网速检测</a></th>
			<th class="w_top"><a href="#w_MySQL">MySQL检测</a></th>
			<th class="w_top"><a href="#w_function">函数检测</a></th>
			<th class="w_top"><a href="#w_mail">邮件检测</a></th>
			<th class="w_top"><a href="http://archives.gimhoy.cn/hishare/2013/01/e22fcdfc6333e2ea646672b83c56f158.zip">探针下载</a></th>
		</tr>
	</table>



<!--服务器相关参数-->

<table>

  <tr><th colspan="4">服务器参数</th></tr>

  <tr>

    <td>服务器域名/IP地址</td>

    <td colspan="3"><?php echo @get_current_user();?> - <?php echo $_SERVER['SERVER_NAME'];?>(<?php if('/'==DIRECTORY_SEPARATOR){echo $_SERVER['SERVER_ADDR'];}else{echo @gethostbyname($_SERVER['SERVER_NAME']);} ?>)&nbsp;&nbsp;你的IP地址是:<?php echo @$_SERVER['REMOTE_ADDR'];?></td>

  </tr>

  <tr>

    <td>服务器标识</td>

    <td colspan="3"><?php if($sysInfo['win_n'] != ''){echo $sysInfo['win_n'];}else{echo @php_uname();};?></td>

  </tr>

  <tr>

    <td width="13%">服务器操作系统</td>

    <td width="37%"><?php $os = explode(" ", php_uname()); echo $os[0];?> &nbsp;内核版本:<?php if('/'==DIRECTORY_SEPARATOR){echo $os[2];}else{echo $os[1];} ?></td>

    <td width="13%">服务器解译引擎</td>

    <td width="37%"><?php echo $_SERVER['SERVER_SOFTWARE'];?></td>

  </tr>

  <tr>

    <td>服务器语言</td>

    <td><?php echo getenv("HTTP_ACCEPT_LANGUAGE");?></td>

    <td>服务器端口</td>

    <td><?php echo $_SERVER['SERVER_PORT'];?></td>

  </tr>

  <tr>

	  <td>服务器主机名</td>

	  <td><?php if('/'==DIRECTORY_SEPARATOR ){echo $os[1];}else{echo $os[2];} ?></td>

	  <td>绝对路径</td>

	  <td><?php echo $_SERVER['DOCUMENT_ROOT']?str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']):str_replace('\\','/',dirname(__FILE__));?></td>

	</tr>

  <tr>

	  <td>管理员邮箱</td>

	  <td><?php echo $_SERVER['SERVER_ADMIN'];?></td>

		<td>探针路径</td>

		<td><?php echo str_replace('\\','/',__FILE__)?str_replace('\\','/',__FILE__):$_SERVER['SCRIPT_FILENAME'];?></td>

	</tr>	

</table>



<?if("show"==$sysReShow){?>

<table>

  <tr><th colspan="6">服务器实时数据</th></tr>

  <tr>

    <td width="13%" >服务器当前时间</td>

    <td width="37%" ><span id="stime"><?php echo $stime;?></span></td>

    <td width="13%" >服务器已运行时间</td>

    <td width="37%" colspan="3"><span id="uptime"><?php echo $uptime;?></span></td>

  </tr>
  <tr>

    <td width="13%">CPU型号 [<?php echo $sysInfo['cpu']['num'];?>核]</td>

    <td width="87%" colspan="5"><?php echo $sysInfo['cpu']['model'];?></td>

  </tr>
  <tr>
    <td>CPU使用状况</td>
    <td colspan="5"><?php if('/'==DIRECTORY_SEPARATOR){echo $cpu_show." | <a href='".$phpSelf."?act=cpu_percentage' target='_blank' class='static'>查看图表</a>";}else{echo "暂时只支持Linux系统";}?>
	</td>
  </tr>
  <tr>
    <td>硬盘使用状况</td>
    <td colspan="5">
		总空间 <?php echo $dt;?>&nbsp;G,
		已用 <font color='#333333'><span id="useSpace"><?php echo $du;?></span></font>&nbsp;G,
		空闲 <font color='#333333'><span id="freeSpace"><?php echo $df;?></span></font>&nbsp;G,
		使用率 <span id="hdPercent"><?php echo $hdPercent;?></span>%
		<div class="bar"><div id="barhdPercent" class="barli_black" style="width:<?php echo $hdPercent;?>%" >&nbsp;</div> </div>
	</td>
  </tr>
  <tr>

		<td>内存使用状况</td>

		<td colspan="5">

<?php

$tmp = array(

    'memTotal', 'memUsed', 'memFree', 'memPercent',

    'memCached', 'memRealPercent',

    'swapTotal', 'swapUsed', 'swapFree', 'swapPercent'

);

foreach ($tmp AS $v) {

    $sysInfo[$v] = $sysInfo[$v] ? $sysInfo[$v] : 0;

}

?>

          物理内存:共

          <font color='#CC0000'><?php echo $memTotal;?> </font>

           , 已用

          <font color='#CC0000'><span id="UsedMemory"><?php echo $mu;?></span></font>

          , 空闲

          <font color='#CC0000'><span id="FreeMemory"><?php echo $mf;?></span></font>

          , 使用率

		  <span id="memPercent"><?php echo $memPercent;?></span>

          <div class="bar"><div id="barmemPercent" class="barli_green" style="width:<?php echo $memPercent?>%" >&nbsp;</div> </div>
<?php
//判断如果cache为0,不显示
if($sysInfo['memCached']>0)
{
?>		
		  Cache化内存为 <span id="CachedMemory"><?php echo $mc;?></span>
		  , 使用率 
          <span id="memCachedPercent"><?php echo $memCachedPercent;?></span>
		  %	| Buffers缓冲为  <span id="Buffers"><?php echo $mb;?></span>
          <div class="bar"><div id="barmemCachedPercent" class="barli_blue" style="width:<?php echo $memCachedPercent?>%" >&nbsp;</div></div>

          真实内存使用
          <span id="memRealUsed"><?php echo $memRealUsed;?></span>
		  , 真实内存空闲
          <span id="memRealFree"><?php echo $memRealFree;?></span>
		  , 使用率
          <span id="memRealPercent"><?php echo $memRealPercent;?></span>
          %
          <div class="bar_1"><div id="barmemRealPercent" class="barli_1" style="width:<?php echo $memRealPercent?>%" >&nbsp;</div></div> 
<?php
}
//判断如果SWAP区为0,不显示
if($sysInfo['swapTotal']>0)
{
?>	
          SWAP区:共
          <?php echo $st;?>
          , 已使用
          <span id="swapUsed"><?php echo $su;?></span>
          , 空闲
          <span id="swapFree"><?php echo $sf;?></span>
          , 使用率
          <span id="swapPercent"><?php echo $swapPercent;?></span>
          %
          <div class="bar"><div id="barswapPercent" class="barli_red" style="width:<?php echo $swapPercent?>%" >&nbsp;</div> </div>

<?php
}	
?>		  

	  </td>

	</tr>
	  <tr>
		<td>系统平均负载</td>
		<td colspan="5" class="w_number"><span id="loadAvg"><?php echo $load;?></span></td>
	</tr>

</table>

<?}?>



<?php if (false !== ($strs = @file("/proc/net/dev"))) : ?>

<table>

    <tr><th colspan="5">网络使用状况</th></tr>

<?php for ($i = 2; $i < count($strs); $i++ ) : ?>

<?php preg_match_all( "/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $strs[$i], $info );?>

     <tr>

        <td width="13%"><?php echo $info[1][0]?> : </td>
        <td width="29%">入网: <font color='#CC0000'><span id="NetInput<?php echo $i?>"><?php echo $NetInput[$i]?></span></font></td>
		<td width="14%">实时: <font color='#CC0000'><span id="NetInputSpeed<?php echo $i?>">0B/s</span></font></td>
        <td width="29%">出网: <font color='#CC0000'><span id="NetOut<?php echo $i?>"><?php echo $NetOut[$i]?></span></font></td>
		<td width="14%">实时: <font color='#CC0000'><span id="NetOutSpeed<?php echo $i?>">0B/s</span></font></td>

    </tr>

<?php endfor; ?>

</table>

<?php endif; ?>



<table width="100%" cellpadding="3" cellspacing="0" align="center">

  <tr>

    <th colspan="4">PHP已编译模块检测</th>

  </tr>

  <tr>

    <td colspan="4"><span class="w_small">

<?php

$able=get_loaded_extensions();

foreach ($able as $key=>$value) {

	if ($key!=0 && $key%13==0) {

		echo '<br />';

	}

	echo "$value&nbsp;&nbsp;";

}

?></span>

    </td>

  </tr>

</table>

<a name="w_php"></a>

<table>

  <tr><th colspan="4">PHP相关参数</th></tr>

  <tr>

    <td width="32%">PHP信息(phpinfo):</td>

    <td width="18%">

		<?php

		$phpSelf = $_SERVER[PHP_SELF] ? $_SERVER[PHP_SELF] : $_SERVER[SCRIPT_NAME];

		$disFuns=get_cfg_var("disable_functions");

		?>

    <?php echo (false!==eregi("phpinfo",$disFuns))? '<font color="red">×</font>' :"<a href='$phpSelf?act=phpinfo' target='_blank'>PHPINFO</a>";?>

    </td>

    <td width="32%">PHP版本(php_version):</td>

    <td width="18%"><?php echo PHP_VERSION;?></td>

  </tr>

  <tr>

    <td>PHP运行方式:</td>

    <td><?php echo strtoupper(php_sapi_name());?></td>

    <td>脚本占用最大内存(memory_limit):</td>

    <td><?php echo show("memory_limit");?></td>

  </tr>

  <tr>

    <td>PHP安全模式(safe_mode):</td>

    <td><?php echo show("safe_mode");?></td>

    <td>POST方法提交最大限制(post_max_size):</td>

    <td><?php echo show("post_max_size");?></td>

  </tr>

  <tr>

    <td>上传文件最大限制(upload_max_filesize):</td>

    <td><?php echo show("upload_max_filesize");?></td>

    <td>浮点型数据显示的有效位数(precision):</td>

    <td><?php echo show("precision");?></td>

  </tr>

  <tr>

    <td>脚本超时时间(max_execution_time):</td>

    <td><?php echo show("max_execution_time");?>秒</td>

    <td>socket超时时间(default_socket_timeout):</td>

    <td><?php echo show("default_socket_timeout");?>秒</td>

  </tr>

  <tr>

    <td>PHP页面根目录(doc_root):</td>

    <td><?php echo show("doc_root");?></td>

    <td>用户根目录(user_dir):</td>

    <td><?php echo show("user_dir");?></td>

  </tr>

  <tr>

    <td>dl()函数(enable_dl):</td>

    <td><?php echo show("enable_dl");?></td>

    <td>指定包含文件目录(include_path):</td>

    <td><?php echo show("include_path");?></td>

  </tr>

  <tr>

    <td>显示错误信息(display_errors):</td>

    <td><?php echo show("display_errors");?></td>

    <td>自定义全局变量(register_globals):</td>

    <td><?php echo show("register_globals");?></td>

  </tr>

  <tr>

    <td>数据反斜杠转义(magic_quotes_gpc):</td>

    <td><?php echo show("magic_quotes_gpc");?></td>

    <td>"&lt;?...?&gt;"短标签(short_open_tag):</td>

    <td><?php echo show("short_open_tag");?></td>

  </tr>

  <tr>

    <td>"&lt;% %&gt;"ASP风格标记(asp_tags):</td>

    <td><?php echo show("asp_tags");?></td>

    <td>忽略重复错误信息(ignore_repeated_errors):</td>

    <td><?php echo show("ignore_repeated_errors");?></td>

  </tr>

  <tr>

    <td>忽略重复的错误源(ignore_repeated_source):</td>

    <td><?php echo show("ignore_repeated_source");?></td>

    <td>报告内存泄漏(report_memleaks):</td>

    <td><?php echo show("report_memleaks");?></td>

  </tr>

  <tr>

    <td>自动字符串转义(magic_quotes_gpc):</td>

    <td><?php echo show("magic_quotes_gpc");?></td>

    <td>外部字符串自动转义(magic_quotes_runtime):</td>

    <td><?php echo show("magic_quotes_runtime");?></td>

  </tr>

  <tr>

    <td>打开远程文件(allow_url_fopen):</td>

    <td><?php echo show("allow_url_fopen");?></td>

    <td>声明argv和argc变量(register_argc_argv):</td>

    <td><?php echo show("register_argc_argv");?></td>

  </tr>
  <tr>
    <td>Cookie 支持:</td>
    <td><?php echo isset($_COOKIE)?'<font color="green">√</font>' : '<font color="red">×</font>';?></td>
    <td>拼写检查(ASpell Library):</td>
    <td><?php echo isfun("aspell_check_raw");?></td>
  </tr>
   <tr>
    <td>高精度数学运算(BCMath):</td>
    <td><?php echo isfun("bcadd");?></td>
    <td>PREL相容语法(PCRE):</td>
    <td><?php echo isfun("preg_match");?></td>
   <tr>
    <td>PDF文档支持:</td>
    <td><?php echo isfun("pdf_close");?></td>
    <td>SNMP网络管理协议:</td>
    <td><?php echo isfun("snmpget");?></td>
  </tr> 
   <tr>
    <td>VMailMgr邮件处理:</td>
    <td><?php echo isfun("vm_adduser");?></td>
    <td>Curl支持:</td>
    <td><?php echo isfun("curl_init");?></td>
  </tr> 
   <tr>
    <td>SMTP支持:</td>
    <td><?php echo get_cfg_var("SMTP")?'<font color="green">√</font>' : '<font color="red">×</font>';?></td>
    <td>SMTP地址:</td>
    <td><?php echo get_cfg_var("SMTP")?get_cfg_var("SMTP"):'<font color="red">×</font>';?></td>
  </tr> 

	<tr>
		<td>默认支持函数(enable_functions):</td>
		<td colspan="3"><a href='<?php echo $phpSelf;?>?act=Function' target='_blank' class='static'>请点这里查看详细!</a></td>		
	</tr>
	<tr>
		<td>被禁用的函数(disable_functions):</td>
		<td colspan="3" class="word">
<?php 
$disFuns=get_cfg_var("disable_functions");
if(empty($disFuns))
{
	echo '<font color=red>×</font>';
}
else
{ 
	//echo $disFuns;
	$disFuns_array =  explode(',',$disFuns);
	foreach ($disFuns_array as $key=>$value) 
	{
		if ($key!=0 && $key%5==0) {
			echo '<br />';
	}
	echo "$value&nbsp;&nbsp;";
}	
}

?>
		</td>
	</tr>

</table>

<a name="w_module"></a>

<!--组件信息-->

<table>

  <tr><th colspan="4" >组件支持</th></tr>

  <tr>

    <td width="32%">FTP支持:</td>

    <td width="18%"><?php echo isfun("ftp_login");?></td>

    <td width="32%">XML解析支持:</td>

    <td width="18%"><?php echo isfun("xml_set_object");?></td>

  </tr>

  <tr>

    <td>Session支持:</td>

    <td><?php echo isfun("session_start");?></td>

    <td>Socket支持:</td>

    <td><?php echo isfun("socket_accept");?></td>

  </tr>

  <tr>

    <td>Calendar支持</td>

    <td><?php echo isfun('cal_days_in_month');?>
	</td>

    <td>允许URL打开文件:</td>

    <td><?php echo show("allow_url_fopen");?></td>

  </tr>

  <tr>

    <td>GD库支持:</td>

    <td>

    <?php

        if(function_exists(gd_info)) {

            $gd_info = @gd_info();

	        echo $gd_info["GD Version"];

	    }else{echo '<font color="red">×</font>';}

	?></td>

    <td>压缩文件支持(Zlib):</td>

    <td><?php echo isfun("gzclose");?></td>

  </tr>

  <tr>

    <td>IMAP电子邮件系统函数库:</td>

    <td><?php echo isfun("imap_close");?></td>

    <td>历法运算函数库:</td>

    <td><?php echo isfun("JDToGregorian");?></td>

  </tr>

  <tr>

    <td>正则表达式函数库:</td>

    <td><?php echo isfun("preg_match");?></td>

    <td>WDDX支持:</td>

    <td><?php echo isfun("wddx_add_vars");?></td>

  </tr>

  <tr>

    <td>Iconv编码转换:</td>

    <td><?php echo isfun("iconv");?></td>

    <td>mbstring:</td>

    <td><?php echo isfun("mb_eregi");?></td>

  </tr>

  <tr>

    <td>高精度数学运算:</td>

    <td><?php echo isfun("bcadd");?></td>

    <td>LDAP目录协议:</td>

    <td><?php echo isfun("ldap_close");?></td>

  </tr>

  <tr>

    <td>MCrypt加密处理:</td>

    <td><?php echo isfun("mcrypt_cbc");?></td>

    <td>哈稀计算:</td>

    <td><?php echo isfun("mhash_count");?></td>

  </tr>

</table>

<a name="w_module_other"></a>
<!--第三方组件信息-->
<table>
  <tr><th colspan="4" >第三方组件</th></tr>
  <tr>
    <td width="32%">Zend版本</td>
    <td width="18%"><?php $zend_version = zend_version();if(empty($zend_version)){echo '<font color=red>×</font>';}else{echo $zend_version;}?></td>
    <td width="32%">
<?php
$PHP_VERSION = PHP_VERSION;
$PHP_VERSION = substr($PHP_VERSION,2,1);
if($PHP_VERSION > 2)
{
	echo "ZendGuardLoader[启用]";
}
else
{
	echo "Zend Optimizer";
}
?>
	</td>
    <td width="18%"><?php if($PHP_VERSION > 2){echo (get_cfg_var("zend_loader.enable"))?'<font color=green>√</font>':'<font color=red>×</font>';} else{if(function_exists('zend_optimizer_version')){	echo zend_optimizer_version();}else{	echo (get_cfg_var("zend_optimizer.optimization_level")||get_cfg_var("zend_extension_manager.optimizer_ts")||get_cfg_var("zend.ze1_compatibility_mode")||get_cfg_var("zend_extension_ts"))?'<font color=green>√</font>':'<font color=red>×</font>';}}?></td>
  </tr>
  <tr>
    <td>eAccelerator</td>
    <td><?php if((phpversion('eAccelerator'))!=''){echo phpversion('eAccelerator');}else{ echo "<font color=red>×</font>";} ?></td>
    <td>ioncube</td>
    <td><?php if(extension_loaded('ionCube Loader')){   $ys = ioncube_loader_iversion();   $gm = ".".(int)substr($ys,3,2);   echo ionCube_Loader_version().$gm;}else{echo "<font color=red>×</font>";}?></td>
  </tr>
  <tr>
    <td>XCache</td>
    <td><?php if((phpversion('XCache'))!=''){echo phpversion('XCache');}else{ echo "<font color=red>×</font>";} ?></td>
    <td>APC</td>
    <td><?php if((phpversion('APC'))!=''){echo phpversion('APC');}else{ echo "<font color=red>×</font>";} ?></td>
  </tr>
</table>

<a name="w_db"></a>

<!--数据库支持-->

<table>

  <tr><th colspan="4">数据库支持</th></tr>

  <tr>

    <td width="32%">MySQL 数据库:</td>

    <td width="18%"><?php echo isfun("mysql_close");?>

    <?php
    if(function_exists("mysql_get_server_info")) {

        $s = @mysql_get_server_info();

        $s = $s ? '&nbsp; mysql_server 版本:'.$s : '';

	    $c = '&nbsp; mysql_client 版本:'.@mysql_get_client_info();

        echo $s;

    }

    ?>

	</td>

    <td width="32%">ODBC 数据库:</td>

    <td width="18%"><?php echo isfun("odbc_close");?></td>

  </tr>

  <tr>

    <td>Oracle 数据库:</td>

    <td><?php echo isfun("ora_close");?></td>

    <td>SQL Server 数据库:</td>

    <td><?php echo isfun("mssql_close");?></td>

  </tr>

  <tr>

    <td>dBASE 数据库:</td>

    <td><?php echo isfun("dbase_close");?></td>

    <td>mSQL 数据库:</td>

    <td><?php echo isfun("msql_close");?></td>

  </tr>

  <tr>

    <td>SQLite 数据库:</td>

    <td><?php if(extension_loaded('sqlite3')) {$sqliteVer = SQLite3::version();echo '<font color=green>√</font> ';echo "SQLite3 Ver ";echo $sqliteVer[versionString];}else {echo isfun("sqlite_close");if(isfun("sqlite_close") == '<font color="green">√</font>') {echo "&nbsp; 版本: ".@sqlite_libversion();}}?></td>

    <td>Hyperwave 数据库:</td>

    <td><?php echo isfun("hw_close");?></td>

  </tr>

  <tr>

    <td>Postgre SQL 数据库:</td>

    <td><?php echo isfun("pg_close"); ?></td>

    <td>Informix 数据库:</td>

    <td><?php echo isfun("ifx_close");?></td>

  </tr>
  <tr>
    <td>DBA 数据库:</td>
    <td><?php echo isfun("dba_close");?></td>
    <td>DBM 数据库:</td>
    <td><?php echo isfun("dbmclose");?></td>
  </tr>    
  <tr>
    <td>FilePro 数据库:</td>
    <td><?php echo isfun("filepro_fieldcount");?></td>
    <td>SyBase 数据库:</td>
    <td><?php echo isfun("sybase_close");?></td>
  </tr> 

</table>

<a name="w_performance"></a><a name="bottom"></a>

<form action="<?php echo $_SERVER[PHP_SELF]."#bottom";?>" method="post">

<!--服务器性能检测-->

<table>

  <tr><th colspan="5">服务器性能检测</th></tr>

  <tr align="center">

    <td width="19%">参照对象</td>

    <td width="17%">整数运算能力检测<br />(1+1运算300万次)</td>

    <td width="17%">浮点运算能力检测<br />(圆周率开平方300万次)</td>

    <td width="17%">数据I/O能力检测<br />(读取10K文件1万次)</td>

    <td width="30%">CPU信息</td>

  </tr>
  <tr align="center">
    <td align="left">美国 LinodeVPS</td>
    <td>0.357秒</td>
    <td>0.802秒</td>
    <td>0.023秒</td>
    <td align="left">4 x Xeon L5520 @ 2.27GHz</td>
  </tr> 

  <tr align="center">

    <td align="left">美国 PhotonVPS.com</td>

    <td>0.431秒</td>

    <td>1.024秒</td>

    <td>0.034秒</td>

    <td align="left">8 x Xeon E5520 @ 2.27GHz</td>

  </tr>

  <tr align="center">

    <td align="left">德国 SpaceRich.com</td>

    <td>0.421秒</td>

    <td>1.003秒</td>

    <td>0.038秒</td>

    <td align="left">4 x Core i7 920 @ 2.67GHz</td>

  </tr>

  <tr align="center">

    <td align="left">美国 RiZie.com</td>

    <td>0.521秒</td>

    <td>1.559秒</td>

    <td>0.054秒</td>

    <td align="left">2 x Pentium4 3.00GHz</td>

  </tr>

  <tr align="center">

    <td align="left">埃及 CitynetHost.com</a></td>

    <td>0.343秒</td>

    <td>0.761秒</td>

    <td>0.023秒</td>

    <td align="left">2 x Core2Duo E4600 @ 2.40GHz</td>

  </tr>

  <tr align="center">

    <td align="left">美国 IXwebhosting.com</td>

    <td>0.535秒</td>

    <td>1.607秒</td>

    <td>0.058秒</td>

    <td align="left">4 x Xeon E5530 @ 2.40GHz</td>

  </tr>

  <tr align="center">

    <td>本台服务器</td>

    <td><?php echo $valInt;?><br /><input class="btn" name="act" type="submit" value="整型测试" /></td>

    <td><?php echo $valFloat;?><br /><input class="btn" name="act" type="submit" value="浮点测试" /></td>

    <td><?php echo $valIo;?><br /><input class="btn" name="act" type="submit" value="IO测试" /></td>

    <td></td>

  </tr>

</table>

<input type="hidden" name="pInt" value="<?php echo $valInt;?>" />

<input type="hidden" name="pFloat" value="<?php echo $valFloat;?>" />

<input type="hidden" name="pIo" value="<?php echo $valIo;?>" />

<a name="w_networkspeed"></a>
<!--网络速度测试-->
<table>
	<tr><th colspan="3">网络速度测试</th></tr>
  <tr>
    <td width="19%" align="center"><input name="act" type="submit" class="btn" value="开始测试" />
        <br />
	向客户端传送1000k字节数据<br />
	带宽比例按理想值计算
	</td>
    <td width="81%" align="center" >

  <table align="center" width="550" border="0" cellspacing="0" cellpadding="0" >
    <tr >
    <td height="15" width="50">带宽</td>
	<td height="15" width="50">1M</td>
    <td height="15" width="50">2M</td>
    <td height="15" width="50">3M</td>
    <td height="15" width="50">4M</td>
    <td height="15" width="50">5M</td>
    <td height="15" width="50">6M</td>
    <td height="15" width="50">7M</td>
    <td height="15" width="50">8M</td>
    <td height="15" width="50">9M</td>
    <td height="15" width="50">10M</td>
    </tr>
   <tr>
    <td colspan="11" class="suduk" ><table align="center" width="550" border="0" cellspacing="0" cellpadding="0" height="8" class="suduk">
    <tr>
      <td class="sudu"  width="<?php 
	if(preg_match("/[^\d-., ]/",$speed))
		{
			echo "0";
		}
	else{
			echo 550*($speed/11000);
		} 
		?>"></td>
      <td class="suduk" width="<?php 
	if(preg_match("/[^\d-., ]/",$speed))
		{
			echo "550";
		}
	else{
			echo 550-550*($speed/11000);
		} 
		?>"></td>
    </tr>
    </table>
   </td>
  </tr>
  </table>
  <?php echo (isset($_GET['speed']))?"下载1000KB数据用时 <font color='#cc0000'>".$_GET['speed']."</font> 毫秒,下载速度:"."<font color='#cc0000'>".$speed."</font>"." kb/s,需测试多次取平均值,超过10M直接看下载速度":"<font color='#cc0000'>&nbsp;未探测&nbsp;</font>" ?>

    </td>
  </tr>
</table>

<a name="w_MySQL"></a>

<!--MySQL数据库连接检测-->

<table>

	<tr><th colspan="3">MySQL数据库连接检测</th></tr>

  <tr>

    <td width="15%"></td>

    <td width="60%">

      地址:<input type="text" name="host" value="localhost" size="10" />

      端口:<input type="text" name="port" value="3306" size="10" />

      用户名:<input type="text" name="login" size="10" />

      密码:<input type="password" name="password" size="10" />

    </td>

    <td width="25%">

      <input class="btn" type="submit" name="act" value="MySQL检测" />

    </td>

  </tr>

</table>

  <?php

  if ($_POST['act'] == 'MySQL检测') {

  	if(function_exists("mysql_close")==1) {

  		$link = @mysql_connect($host.":".$port,$login,$password);

  		if ($link){

  			echo "<script>alert('连接到MySql数据库正常')</script>";

  		} else {

  			echo "<script>alert('无法连接到MySql数据库!')</script>";

  		}

  	} else {

  		echo "<script>alert('服务器不支持MySQL数据库!')</script>";

  	}

  }

	?>
	
<a name="w_function"></a>

<!--函数检测-->

<table>

	<tr><th colspan="3">函数检测</th></tr>

  <tr>

    <td width="15%"></td>

    <td width="60%">

      请输入您要检测的函数:

      <input type="text" name="funName" size="50" />

    </td>

    <td width="25%">

      <input class="btn" type="submit" name="act" align="right" value="函数检测" />

    </td>

  </tr>

  <?php

  if ($_POST['act'] == '函数检测') {

  	echo "<script>alert('$funRe')</script>";

  }

  ?>

</table>

<a name="w_mail"></a>

<!--邮件发送检测-->

<table>

  <tr><th colspan="3">邮件发送检测</th></tr>

  <tr>

    <td width="15%"></td>

    <td width="60%">

      请输入您要检测的邮件地址:

      <input type="text" name="mailAdd" size="50" />

    </td>

    <td width="25%">

    <input class="btn" type="submit" name="act" value="邮件检测" />

    </td>

  </tr>

  <?php

  if ($_POST['act'] == '邮件检测') {

  	echo "<script>alert('$mailRe')</script>";

  }

  ?>

</table>

</form>



	<table>
		<tr>
			<td class="w_foot"><A HREF="http://www.Gimhoy.com" target="_blank"><?php echo $title.$version;?></A></td>
			<td class="w_foot"><?php $run_time = sprintf('%0.4f', microtime_float() - $time_start);?>Processed in <?php echo $run_time?> seconds. <?php echo memory_usage();?> memory usage.</td>
			<td class="w_foot"><a href="#w_top">返回顶部</a></td>
		</tr>
	</table>

</div>

</body>

</html>


QQ影音视频批量获取剧情缩略图 Autohotkey 9945

作者为 发表

Autohotkey

QQ影音5.x新版代码: 

;ControlSend, ahk_parent, !s, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
;ExitApp
#Persistent
#SingleInstance
SetTitleMatchMode, 2
;配置信息
;播放器路径
IfExist, D:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
    QQplayer_path = D:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
IfExist, c:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
    QQplayer_path = c:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
IfExist, D:\Program Files\Tencent\QQPlayer\qqplayer.exe
    QQplayer_path = D:\Program Files\Tencent\QQPlayer\qqplayer.exe
IfExist, c:\Program Files\Tencent\QQPlayer\qqplayer.exe
    QQplayer_path = D:\Program Files\Tencent\QQPlayer\qqplayer.exe
if QQplayer_path =
    {
    FileSelectFile, QQplayer_path, , qqplayer.exe, 请指定QQ影音主程序所在, QQPlyer.exe(*.exe)
    }
;QQ影音5.x更新,连拍张数再播放器设置里面,图片保存在个人图片文件夹下QQplayerPic文件夹内
filter = .rm,.rmvb,.mp4,.wmv,.avi,.mkv,.flv,.f4v,.ts,.3gp,.dat,.vob,.wm,.asf,.rp,.m1v,.m2p,.m2t,.m2ts,.m2v,.mp2v,.mpeg,.tp,.m4v,.m2b,.m4p,.mpeg4,.mov

FileSelectFolder, folder, , 2, 请选择一个批量剧情连拍的视频文件夹路径
if folder <>
    {
    Loop, %folder%\*.*, 0, 0
    {
		if A_LoopFileName Contains %filter%
        {
			run, `"%QQplayer_path%`" `"%A_LoopFileFullPath%`"
			WinWait, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
			WinGetTitle, oldtitle, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
			ToolTip, Found
			Loop, 10
			{
				sleep, 100
				WinGetTitle, Tt, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
				if Tt <> %oldtitle%
					Break
			}
			Sleep, 1000
			ToolTip, Ready
			ControlSend, ahk_parent, {Space}, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
			ToolTip, Pause
			Sleep, 1000
			;ControlSend, ahk_parent, !s, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
			ControlSend, ahk_parent, {Alt Down}s{Alt Up}, ahk_class TXGuiFoundation ahk_exe QQPlayer.exe
			ToolTip, MuiltiShot
			Sleep, 30000 ;等待30秒
			Pause
        }
    }
    MsgBox, 64, 提示, 剧情连拍批处理完毕!
    }
Return

 QQ影音老版本代码:

#Persistent
#SingleInstance
SetTitleMatchMode, 2
;配置信息
;播放器路径
IfExist, D:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
	QQplayer_path = D:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
IfExist, c:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
	QQplayer_path = c:\Program Files (x86)\Tencent\QQPlayer\qqplayer.exe
IfExist, D:\Program Files\Tencent\QQPlayer\qqplayer.exe
	QQplayer_path = D:\Program Files\Tencent\QQPlayer\qqplayer.exe
IfExist, c:\Program Files\Tencent\QQPlayer\qqplayer.exe
	QQplayer_path = D:\Program Files\Tencent\QQPlayer\qqplayer.exe
if QQplayer_path =
	{
	FileSelectFile, QQplayer_path, , qqplayer.exe, 请指定QQ影音主程序所在, QQPlyer.exe(*.exe)
	}
;保存路径
FileSelectFolder, SavePath, , 1, 选择截图保存的目录
;保存文件尾巴
InputBox, Filetail, 保存文件尾巴,请输入,留空不添加。
;筛选格式
filter = .rm,.rmvb,.mp4,.wmv,.avi,.mkv,.flv,.f4v,.ts,.3gp,.dat,.vob,.wm,.asf,.rp,.m1v,.m2p,.m2t,.m2ts,.m2v,.mp2v,.mpeg,.tp,.m4v,.m2b,.m4p,.mpeg4,.mov
;几格X
InputBox, a, 输入,横向几个预览
InputBox, b, 输入,纵向几个预览
oldtitle =
IfNotExist, %SavePath%
FileCreateDir, %SavePath%
;初始化完毕
FileSelectFolder, folder, , 2, 请选择一个批量剧情连拍的视频文件夹路径
if folder <>
	{
	run, %ComSpec% /c dir `"%folder%`" /A-D /b >`"%A_ScriptDir%\list.txt`", Hide
	Process, WaitClose, cmd.exe
	Loop
	{
	FileReadLine, line, %A_ScriptDir%\list.txt, %A_Index%
	if errorlevel
		Break
	if line Contains %filter%
		{
		run, `"%QQplayer_path%`" `"%folder%\%line%`"
		WinWait, QQ影音
		WinActivate, ahk_class QQPlayer Window
		WinGetActiveTitle, oldtitle
		Loop
		{
		sleep, 100
		WinGetActiveTitle, Tt
		if Tt <> %oldtitle%
			Break
		}
		Loop
		{
		WinActivate, ahk_class QQPlayer Window
		WinActivate, QQ影音
		WinGetActiveTitle, Title
		Send, !s
		WinWait, 另存为, , 1
		If errorlevel <> 1
			Break
		}
		WinActivate, #32770
		StringReplace, Title, Title, [高清加速开启],
		StringReplace, Title, Title, %A_Space%- QQ影音
		ControlSetText, Edit1, %SavePath%, 另存为
		ControlSend, Button2, {lbutton}, 另存为
		send, {enter}
		ControlSetText, Edit1, %title%_%Filetail%, 另存为
		ControlSetText, Edit2, %a%, 另存为
		ControlSetText, Edit3, %b%, 另存为
		WinActivate, #32770
		Clipboard =
		ControlSend, Button2, {lbutton}, 另存为
		send, {enter}
		IfWinExist, 确认另存为
			{
			WinActivate, 确认另存为
			send, y
			}
		ClipWait, , 1
		}
	}
	MsgBox, 36, 提示, 剧情连拍批处理完毕,是否打图片保存开文件夹?
	IfMsgBox, Yes
	run, %SavePath%
	}
Return


简单的批量键鼠操作下载图片脚本 Autohotkey 4152

作者为 发表

Autohotkey

z::
ex = 0
Loop
{
if ex = 1
	Break
MouseGetPos, x, y
do:
MouseClick, Right, %x%, %y%,
sleep, 250
Send, s
WinWaitActive, ahk_class #32770, , 1
if Errorlevel
	goto, do
Send, %A_Now%
Send, {Enter}
sleep, 100
Send, {Left}
}
Return

x::
ex = 1
Return

z开始 x中断

批量结束包含关键词程序名的进程 Autohotkey 3949

作者为 发表

Autohotkey

RunWait, %ComSpec% /c tasklist >a.txt, , Hide
InputBox, key, 程序名关键词批量结束, 请输入程序名关键词!,
StringLen, len, key
if len < 2
	{
	MsgBox, 16, 警告, 关键词小于两位,可能会导致系统崩溃,请重试!
	Reload
	}
Loop
{
FileReadLine, line, a.txt, %A_Index%
if errorlevel
	Break
IfInString, line, .exe
	{
	StringSplit, var, line, .,
	IfInString, var1, %key%
		{
		runwait, %ComSpec% /c taskkill /f /IM %var1%.exe, , Hide
		}
	}
}


随机生成测试数据 用户姓名 手机号 Autohotkey 7930

作者为 发表

Autohotkey

InputBox, count, 提示, 请输入要生成的总数
if count =
	Reload
gui, add, text, x0 y0 w200 h20 vtext,
gui, show, x0 y0 w200 h20, 随机生成资料
gui +ToolWindow +AlwaysOnTop
xing = 赵-钱-孙-李-周-吴-郑-王-冯-陈-褚-卫-蒋-沈-韩-杨-朱-秦-尤-许-何-吕-施-张-孔-曹-严-华-金-魏-陶-姜-戚-谢-邹-水-窦-章-云-苏-潘-葛-范-彭-鲁-韦-昌-马-苗-凤-花-方-俞-任-袁-柳-鲍-史-唐-费-岑-薛-雷-贺-倪-汤-殷-罗-毕-郝-邬-安-常-乐-于-时-齐-康-伍-余-元-顾-孟-黄
ming = 刚-强-仁-发-民-国-忠-艺-文-德-志-智-辉-华-军-生-裕-健-炎-宏-毅-坚-石-超-鹏-亮-锦-家-春-磊-勇-正-东-南-斌-武-奎-秋-鑫-伦-朋-隆-宝-靖-俊-杰-友-祖-颂-小-宇-兴-波-荣-峰-祥-思-振-海-凯-远-汉-桥-松-柏-利-大
nvming = 花-华-芳-芬-燕-虹-菁-丽-娟-莘-苹-红-玉-妙-丹-芸-香-蕾-兰-慧-玲-静-茹-怡-紫
StringSplit, x, xing, -
StringSplit, m, ming, -
StringSplit, nm, nvming, -
Loop
{
if A_Index > %count%
	Break
Random, mcount, 1, 2
Random, xnum, 1, x0
Random, xb, 1, 2
nowx = % x%xnum%
if xb = 1
	{
	Random, mnum, 1, m0
	nowm = % m%mnum%
	if mcount = 2
		{
		Random, mnum2, 1, m0
		nowm2 = % m%mnum2%
		nowm = %nowm%%nowm2%
		}
	}
if xb = 2
	{
	Random, mnum, 2, nm0
	nowm = % nm%mnum%
	if mcount = 2
		{
		Random, mnum2, 1, nm0
		nowm2 = % n%mnum2%
		nowm = %nowm%%nowm2%
		}
	}
name = %nowx%%nowm%
Random, nu0, 130, 139
Random, nu1, 1000, 9999
Random, nu2, 1000, 9999
phone = %nu0%%nu1%%nu2%
GuiControl, , text, 第%A_Index%行`, %phone%`,%name%
FileAppend, %phone%`n, %A_ScriptDir%\phone.txt
FileAppend, %name%`n, %A_ScriptDir%\name.txt
}

MsgBox, Ok


开机自动启动多台VMWare虚拟机 Autohotkey脚本 9701

作者为 发表

Autohotkey

#NoTrayIcon
sleep, 3000
run, D:\vmware8\vmware.exe -x D:\vmware8\VOS\sip2\sip2.vmx D:\vmware8\VOS\sip3\sip3.vmx D:\vmware8\VOS\sip4\sip4.vmx D:\vmware8\VOS\sip5\sip5.vmx D:\VM\sip1\sip1.vmx, , Max


Autohotkey生成归属地号段号码字典(用于破解密码) 7613

作者为 发表

Autohotkey

gui, add, edit, x0 y0 w100 h400 ve,
gui, add, button, x0 y400 w100 h20 gstart, 开始
gui, show
Return

start:
GuiControlGet, e
StringSplit, var, e, `n,
idx = 0
Loop
{
FileAppend, %content%, cell.txt
if A_Index > %var0%
	Break
idx += 1
head = % var%idx%
a = -1
content =
Loop
{
a += 1
StringLen, len, a
if len > 4
	Break
if len = 1
	w = 000%a%
if len = 2
	w = 00%a%
if len = 3
	w = 0%a%
if len = 4
	w = %a%
content = %content%%head%%w%`n
}
}
MsgBox, Ok
Return

GuiClose:
ExitApp


售后定时提醒源码 Autohotkey 10829

作者为 发表

Autohotkey

下载 http://pan.baidu.com/s/1temcU

IfNotExist, config.ini
	{
	IniWrite, 0, config.ini, setting, disautorun
	IniWrite, 20130101, config.ini, setting, lastuse
	}
IfNotExist, rules.ini
	{
	FileAppend, +2`n+9`n+19, rules.ini
	}
IfNotExist, %A_Scriptdir%\data\
	FileCreateDir, %A_Scriptdir%\data\
IniRead, disauto, config.ini, setting, disautorun
IniRead, lastuse, config.ini, setting, lastuse
menu, Tray, NoStandard
Menu, tray, add, 查看今日提醒
Menu, tray, add, 销售信息录入
Menu, tray, add, 提醒规则管理
Menu, tray, add, 退出
menu, tray, Default, 查看今日提醒
date = %A_YYYY%%A_MM%%A_DD%
m01 = 0
m02 = 31
m03 = 59
m04 = 90
m05 = 120
m06 = 151
m07 = 181
m08 = 212
m09 = 243
m10 = 273
m11 = 304
m12 = 334
noask = 1
if lastuse < %date%
	{
	sleep, 2000
	goto, 查看今日提醒
	}
Return

查看今日提醒:
if noask = 0
	{
	MsgBox, 36, 询问, 您今天已经查看过全部提醒,是否强制刷新规则及提醒?
	IfMsgBox, No
		goto, show
	IfMsgBox, Yes
		FileDelete, %A_Scriptdir%\data\%date%.csv
	}
jump:
b = %date%
StringLeft, by, b, 4
StringTrimLeft, b, b, 4
StringLeft, bm, b, 2
StringTrimLeft, b, b, 2
StringLeft, bd, b, 2
dy := by-2000
br := dy/4
StringSplit, dr, br, .
dr = %dr1%
bmd = %bm%%bd%
IfInString, br, .000000
	{
	if bmd > 0229
		dr += 1
	}
dm = % m%bm%
dd := bd-1
btmp := dy*365+dm+dr+dd
FileRead, rules, rules.ini
StringSplit, tmp, rules, `n
IfExist, 信息.csv
	{
	FileRead, data, 信息.csv
	StringSplit, line, data, `n,
	}
Else
	{
	MsgBox, 16, 错误, 信息.csv 不存在!`n请右键桌面右下角程序图标来录入信息!
	Return
	}
idx = 0
Loop
{
idx += 1
if idx > %line0%
	Break
content = % line%idx%
if content <>
	{
	StringSplit, var, content, `,
	if var6 <>
		{
		Loop
		{
		if A_Index > %tmp0%
			Break
		temp = % tmp%A_Index%
		if temp <>
				{
				IfInString, temp, +
					{
					StringReplace, tp, temp, +, , All
					if tp is Number
						{
						tempdate := date - tp
						if tempdate = var6
							FileAppend, %temp%`,%var1%`,%var2%`,%var3%`,%var4%`,%var5%`,%var6%`,%var7%`,%var8%`,%var9%`n, %A_Scriptdir%\data\%date%.csv
						}
					}
				Else
					{
					StringReplace, tp, temp, E, , All
					a = %var6%
					StringLeft, ay, a, 4
					StringTrimLeft, a, a, 4
					StringLeft, am, a, 2
					StringTrimLeft, a, a, 2
					StringLeft, ad, a, 2
					cy := ay-2000
					ar := cy/4
					StringSplit, cr, ar, .
					cr = %cr1%
					amd = %am%%ad%
					IfInString, ar, .000000
						{
						if amd > 0229
							cr += 1
						}
					cm = % m%am%
					cd := ad-1
					atmp := cy*365+cm+cr+cd
					x := btmp-atmp
					if x < 1
						Continue
					if tp is Number
						{
						e = %tp%
						xe := x/e
						IfInString, xe, .000000
							FileAppend, %temp%`,%var1%`,%var2%`,%var3%`,%var4%`,%var5%`,%var6%`,%var7%`,%var8%`,%var9%`n, %A_Scriptdir%\data\%date%.csv
						}
					if tp = W
						{
						e = 7
						xe := x/e
						IfInString, xe, .000000
							FileAppend, %temp%`,%var1%`,%var2%`,%var3%`,%var4%`,%var5%`,%var6%`,%var7%`,%var8%`,%var9%`n, %A_Scriptdir%\data\%date%.csv
						}
					if tp = M
						{
						if ad = %bd%
							FileAppend, %temp%`,%var1%`,%var2%`,%var3%`,%var4%`,%var5%`,%var6%`,%var7%`,%var8%`,%var9%`n, %A_Scriptdir%\data\%date%.csv
						}
					if tp = Y
						{
						amd = %am%%ad%
						if amd = %bmd%
							FileAppend, %temp%`,%var1%`,%var2%`,%var3%`,%var4%`,%var5%`,%var6%`,%var7%`,%var8%`,%var9%`n, %A_Scriptdir%\data\%date%.csv
						}
					}
				}
		}
		}
	}
noask = 0
}
show:
IfWinNotExist, 销售信息日常关怀提醒 双击查看/标记
	{
	Gui, 3:Add, Text, x0 y10 w40 h20 , 姓名
	Gui, 3:Add, Edit, x40 y10 w200 h20 v3name
	Gui, 3:Add, Text, x0 y50 w40 h20 , 手机
	Gui, 3:Add, Edit, x40 y50 w200 h20 v3cell
	Gui, 3:Add, Text, x0 y190 w40 h20 , 电话
	Gui, 3:Add, Edit, x40 y190 w200 h20 v3phone
	Gui, 3:Add, Text, x0 y70 w40 h20 , 产品
	Gui, 3:Add, Edit, x40 y70 w200 h20 v3product
	Gui, 3:Add, Text, x0 y90 w40 h40 , 产品信息
	Gui, 3:Add, Edit, x40 y90 w200 h100 v3info
	Gui, 3:Add, MonthCal, x250 y80 w270 h180 v3pdate,
	Gui, 3:Add, Button, x250 y260 w270 h20 gcdate, 查看此日提醒
	Gui, 3:Add, Text, x250 y60 w270 h20 vgdate, 购买时间
	Gui, 3:Add, Text, x0 y30 w40 h20 , QQ
	Gui, 3:Add, Edit, x40 y30 w200 h20 v3qq
	Gui, 3:Add, Text, x0 y210 w40 h50 , 住址
	Gui, 3:Add, Edit, x40 y210 w200 h80 v3site
	Gui, 3:Add, Text, x250 y10 w30 h50 , 备注
	Gui, 3:Add, Edit, x280 y10 w240 h50 v3note
	Gui, 3:Add, ListView, x6 y300 w520 h200 glist, ID|标记|触发规则|姓名|电话|手机|产品型号|产品信息|日期|QQ|地址|备注
	Gui, 3:Show, , 销售信息日常关怀提醒 双击查看/标记
	Gui, 3:Default
	}
IfExist, %A_Scriptdir%\data\%date%.csv
	{
	Loop
	{
	FileReadLine, line, %A_Scriptdir%\data\%date%.csv, %A_Index%
	if errorlevel
		Break
	StringSplit, var, line, `,,
	IniRead, chk, config.ini, %date%, %A_Index%
	if chk = 1
		LV_Add("", A_Index,"√",var1,var2,var3,var4,var5,var6,var7,var8,var9,var10)
	Else
		LV_Add("", A_Index,"",var1,var2,var3,var4,var5,var6,var7,var8,var9,var10)
	}
	LV_ModifyCol()
	}
Return

list:
FocusedRowNumber := LV_GetNext(0, "F")
if FocusedRowNumber
	{
	LV_GetText(id, FocusedRowNumber, 1)
	LV_GetText(mark, FocusedRowNumber, 2)
	if mark <> √
		{
		LV_Modify(FocusedRowNumber, Col, id, "√")
		IniWrite, 1, config.ini, %date%, %id%
		}
	Else
		{
		LV_Modify(FocusedRowNumber, Col, id, "")
		IniDelete, config.ini, %date%, %id%
		}
	FileReadLine, line, %A_Scriptdir%\data\%date%.csv, %id%
	StringSplit, var, line, `,
	name = %var2%
	phone = %var3%
	cell = %var4%
	product = %var5%
	info = %var6%
	pdate = %var7%
	qq = %var8%
	site = %var9%
	note = %var10%
	StringLeft, py, pdate, 4
	StringTrimLeft, p, pdate, 4
	StringLeft, pm, p, 2
	StringTrimLeft, p, p, 2
	StringLeft, pd, p, 2
	pdate = %py%-%pm%-%pd%
	StringReplace, info, info, \n, `n, All
	StringReplace, site, site, \n, `n, All
	StringReplace, note, note, \n, `n, All
	GuiControl, 3:, 3name, %name%
	GuiControl, 3:, 3phone, %phone%
	GuiControl, 3:, 3cell, %cell%
	GuiControl, 3:, 3product, %product%
	GuiControl, 3:, 3info, %info%
	GuiControl, 3:, gdate, 购买时间:%pdate%
	GuiControl, 3:, 3qq, %qq%
	GuiControl, 3:, 3site, %site%
	GuiControl, 3:, 3note, %note%
	}
LV_ModifyCol()
Return

cdate:
GuiControlGet, 3pdate
StringReplace, 3pdate, 3pdate, -, , All
date = %3pdate%
LV_Delete()
FileDelete, %A_Scriptdir%\data\%date%.csv
noask = 1
goto, 查看今日提醒
Return

3GuiClose:
gui 3:Destroy
Return

销售信息录入:
bk = 0
IfWinNotExist, 销售信息录入
	{
	Gui, Add, Text, x0 y10 w40 h20 , 姓名
	Gui, Add, Edit, x40 y10 w200 h20 vname
	Gui, Add, Text, x0 y50 w40 h20 , 手机
	Gui, Add, Edit, x40 y50 w200 h20 vcell
	Gui, Add, Text, x0 y190 w40 h20 , 电话
	Gui, Add, Edit, x40 y190 w200 h20 vphone
	Gui, Add, Text, x0 y70 w40 h20 , 产品
	Gui, Add, Edit, x40 y70 w200 h20 vproduct
	Gui, Add, Text, x0 y90 w40 h40 , 产品信息
	Gui, Add, Edit, x40 y90 w200 h100 vinfo
	Gui, Add, MonthCal, x250 y80 w270 h180 vpdate,
	Gui, Add, Text, x250 y60 w270 h20, 购买时间
	Gui, Add, Button, x250 y260 w270 h30 gsubmit, 提交
	Gui, Add, Text, x0 y30 w40 h20 , QQ
	Gui, Add, Edit, x40 y30 w200 h20 vqq
	Gui, Add, Text, x0 y210 w40 h50 , 住址
	Gui, Add, Edit, x40 y210 w200 h80 vsite
	Gui, Add, Text, x250 y10 w30 h50 , 备注
	Gui, Add, Edit, x280 y10 w240 h50 vnote
	Gui, Show, , 销售信息录入
	}
Else
	WinActivate, 销售信息录入
Return

submit:
GuiControlGet, name
GuiControlGet, phone
GuiControlGet, cell
GuiControlGet, product
GuiControlGet, info
GuiControlGet, pdate
GuiControlGet, qq
GuiControlGet, site
GuiControlGet, note
if name =
	{
	MsgBox, 姓名不能为空!
	Return
	}
if cell =
	{
	MsgBox, 手机不能为空!
	Return
	}
GuiControl, , name,
GuiControl, , phone,
GuiControl, , cell,
GuiControl, , product,
GuiControl, , info,
GuiControl, , qq,
GuiControl, , site,
GuiControl, , note,
StringReplace, info, info, `,, ,, All
StringReplace, info, info, `n, \n, All
StringReplace, site, site, `,, ,, All
StringReplace, site, site, `n, \n, All
StringReplace, note, note, `,, ,, All
StringReplace, note, note, `n, \n, All
StringReplace, note, note, `,, ,, All
StringReplace, pdate, pdate, -, , All
FileAppend, %name%`,%phone%`,%cell%`,%product%`,%info%`,%pdate%`,%qq%`,%site%`,%note%`n, 信息.csv
if bk = 1
	gui, Destroy
Return

提醒规则管理:
FileRead, rules, rules.ini
Gui, 2:add, text, x0 y0 w200 h80, 请输入规则,示例:`n+6则延后6天提醒`nE7则每隔7天`nEW每周`nEM每月`nEY每年,每排一个
gui, 2:add, edit, x0 y80 w200 h200 vrules,
gui, 2:add, button, x0 y280 w200 h20 gsave, 保存
gui, 2:show, , 规则管理
GuiControl, 2:, rules, %rules%
Return

2GuiClose:
MsgBox, 36, 询问, 是否保存修改?
IfMsgBox, Yes
	{
	GuiControlGet, rules
	FileDelete, rules.ini
	FileAppend, %rules%, rules.ini
	}
gui 2:Destroy
Return

save:
GuiControlGet, rules
FileDelete, rules.ini
FileAppend, %rules%, rules.ini
MsgBox, 64, 提示, 已保存完毕!
Return

退出:
IniWrite, %date%, config.ini, setting, lastuse
RegRead, reg, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, attention
if Errorlevel
	goto, addautorun
if reg <> %A_ScriptFullPath%
	goto, addautorun
ExitApp

GuiClose:
MsgBox, 36, 询问, 是否提交当前录入信息?
IfMsgBox, Yes
	{
	bk = 1
	goto, submit
	}
Gui, Destroy
noask = 0
Return

addautorun:
if disauto <> 1
	{
	MsgBox, 67, 提醒, 程序没有加入开机启动,是否加入?`n程序仅在开机加载完成后工作,不影响启动时间。`n取消则不再询问。
	IfMsgBox, Yes
		{
		RegWrite, REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, attention, %A_ScriptFullPath%
		If Errorlevel
			MsgBox, 16, 错误, 没有权限或者被安全软件拦截了,请下次再试!
		}
	IfMsgBox, Cancel
		{
		IniWrite, 1, config.ini, setting, disautorun
		}
	}
ExitApp


批量导入注册表reg文件 Autohotkey 6383

作者为 发表

Autohotkey

show = Please Waitting...
Gui, Font, S8 Cred Bold, Verdana
Gui, Add, Edit, x6 y7 w240 h320 vshow
Gui, Show, x131 y91 h337 w255, 批量导入注册表
GuiControl,, show, %show%
foloder = %A_ScriptDir%\reg\
FileAppend, dir "%foloder%" /b >"%A_ScriptDir%\list.txt", %A_ScriptDir%\list.cmd
run, %A_ScriptDir%\list.cmd, , min
sleep, 1000
GuiControl,, show,
Loop
{
FileReadLine, line, %A_ScriptDir%\list.txt, %A_Index%
if ErrorLevel = 1
	break
path = %foloder%\%line%
SplitPath, path, name
show = %show%`n注册 %name%
GuiControl,, show, %show%
FileAppend, regedit /s "%path%"`n, %A_ScriptDir%\reg.cmd
}
run, %A_ScriptDir%\reg.cmd, , min
FileDelete, %A_ScriptDir%\list.txt
FileDelete, %A_ScriptDir%\list.cmd
FileDelete, %A_ScriptDir%\reg.cmd
ExitApp

GuiClose:
ExitApp


php文档:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>您的IP地址</title>
</head>

<body>

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>

</body>
</html>


脚本(采用VBS发送):

Loop
{
URLDownloadToFile, http://thinkai.net/, ip.html
FileReadLine, ip, ip.html, 10
StringSplit, var, ip, `,
ip = %var1%
if ip <> %old%
	{
	old = %ip%
	FileDelete, mail.vbs
	fileappend, NameSpace = `"http://schemas.microsoft.com/cdo/configuration/`"`n, mail.vbs
	fileappend, Set Email = CreateObject(`"CDO.Message`")`n, mail.vbs
	fileappend, Email.From = `"xxxxx@163.com`"    `n, mail.vbs
	fileappend, Email.To = `"xxxxx@qq.com`"  `n, mail.vbs
	fileappend, Email.Subject = `"IP变动邮件`"`n, mail.vbs
	fileappend, Email.Htmlbody = `"IP:%ip%`"`n, mail.vbs
	fileappend, With Email.Configuration.Fields`n, mail.vbs
	fileappend, .Item(NameSpace&`"sendusing`") = 2`n, mail.vbs
	fileappend, .Item(NameSpace&`"smtpserver`") = `"smtp.163.com`" 'SMTP服务器地址`n, mail.vbs
	fileappend, .Item(NameSpace&`"smtpserverport`") = 25`n, mail.vbs
	fileappend, .Item(NameSpace&`"smtpauthenticate`") = 1`n, mail.vbs
	fileappend, .Item(NameSpace&`"sendusername`") = `"xxxxx`" '邮箱账号`n, mail.vbs
	fileappend, .Item(NameSpace&`"sendpassword`") = `"xxxxx`"'邮箱密码`n, mail.vbs
	fileappend, .update`n, mail.vbs
	fileappend, End With`n, mail.vbs
	fileappend, Email.Send`n, mail.vbs
	run, mail.vbs
	}
Sleep, 60000
}



友情链接:Autohotkey中文论坛Autohotkey中文帮助Autohotkey官网我的B站直播间Autohotkey中文网联系作者免GooglePlay APK下载

 主题设计 • skyfrit.com  Thinkai's Blog | 保留所有权利

43 queries in 0.836 seconds |