bat和java神之配合
java获取管理员权限,然后移动文件到开机自启动文件夹下
Java是没办法获取到管理员权限的,但是java可以执行.bat文件,.bat文件是可以获取管理员权限的。
因此实现步骤如下:
一、新建wakeUpBate.bat文件,主要是通过本bat进行文件移动操作
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
xcopy "D:\bate\1.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\"
- 其中这个是获取管理员权限
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
- 这个是移动文件,比如D:\bate\1.lnk下的1.lnk快捷文件到开机自启动文件下
xcopy "D:\bate\1.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\"
二、java调用bat
/**
* 唤醒bat文件
* @param locationCmd
*/
private static void callCmd(String locationCmd){
StringBuilder sb = new StringBuilder();
try {
Process child = Runtime.getRuntime().exec(locationCmd);
InputStream in = child.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(in));
String line;
while((line=bufferedReader.readLine())!=null)
{
sb.append(line + "\n");
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
System.out.println(e);
}
System.out.println("cmd_success");
} catch (IOException e) {
System.out.println(e);
}
}
设置wamp自启动
修改bat文件
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
sc config wampapache64 start= auto
sc config wampmysqld64 start= auto
额外补充
bat和java神之配合部分的记录就先到这!接下来,是一些整理的c++要点概要!
数组的形参定义
答:可以定义为:
- int(*s)[9] : 二维数组指针, 指针 s(第一维) , 指针 s 指向的数组(第二维);
- int *s[9] : 指针数组, 一个数组里面存放的元素是指针。
实参和形参
- 使用地址作为实参传给形参, 形参和实参指向内存中同一块区域, 实参与形参是同一对象;
- 值传递时, 实参是形参的备份。
extern “C”
extern "C"指令中的 C, 表示的一种编译和连接规约, 而不是一种语言。 C 表示符合 C 语言的编译和连接规约的任何语言, 如 Fortran、 assembler 等。
字符指针和字符数组
- 字符数组由若干个元素组成, 每个元素为一个字符, 而字符指针变量中存放的是地址(字符串中第一个字符的地址) , 绝不是将字符串放到字符指针变量中。
- 赋值方式。 可以对字符指针变量赋值, 但不能对数组名赋值。
- 可以采用下面方法对字符指针变量赋值:
char *a;//a 为字符指针变量
a="I love China!";//将字符串首元素地址赋给指针变量合法。 但赋给 a 的不是字符串, 而是字符串第一个元素的地址
- 不能用以下办法对字符数组名赋值:
char str[14]; str[0]='I'; //对字符数组元素赋值, 合法
str="I love China!"; //数组名是地址, 是常量, 不能被赋值, 非法
- 初始化的含义。
- 对字符指针变量赋初值:
char *a="I love China!"; //定义字符指针变量 a, 并把字符串第一个元素的地址赋给 a
等价于
char *a; //定义字符指针变量 a
a="I love China!"; //把字符串第一个元素的地址赋给 a
- 而对于数组的初始化:
char str[14]="I love China!"; //定义字符数组 str, 并把字符串赋给数组中各元素
不等价于
char str[14]; //定义数组 str
str[]="I love China!"; //企图把字符串赋给数组中各元素, 错误
数组可以在定义时对各元素赋初值, 但不能用赋值语句对字符数组中全部元素整体赋值。