C语言中关于system("");
本帖最后由 拈花小仙 于 2014-3-22 10:12 编辑请罗列一些关于system("");的用法,调用某些DOS命令时,用法稍有不同的请举例,相同的就不用了。
怎样用system将任意一个程序,移动到任意一个目录,如启动文件夹?
如果将程序自身移动到启动文件夹?
还有增加注册表项,该怎么实现?
int main()
{
system("md c:\\abc");//在c盘根目录建立abc文件夹
system("copy c:\\Windows\\notepad.exe c:\\abc");//把windows目录下的记事本复制到abc文件夹
system("start c:\\abc\\notepad.exe");//执行复制过去的记事本
system("pause");
return(0);
}
希望你能举一反三,dos命令很多,大多数都能用system调用正常
machimilk 发表于 2014-2-20 21:27 static/image/common/back.gif
希望你能举一反三,dos命令很多,大多数都能用system调用正常
如果将程序自身移动到启动文件夹?
还有增加注册表项,该怎么实现? 本帖最后由 machimilk 于 2014-2-20 23:56 编辑
int main()
{
system("reg add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v notapad /t REG_SZ /d c:\\windows\\notepad.exe");
//上面这行就可以把 记事本添加到启动注册表
//另外刚才的例子已经可以执行 指定文件夹下面的程序,你把路径改成启动文件夹,文件名改成你要的就好了
//一定要举一反三啊
system("pause");
return(0);
}
建议你学习一下dos命令
你说的程序本身弄到启动文件夹格式就是
copy 完全路径\你的文件名.exe空格 启动文件夹的完全路径 回车 machimilk 发表于 2014-2-20 23:54 static/image/common/back.gif
建议你学习一下dos命令
你说的程序本身弄到启动文件夹格式就是
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
system("C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs");
return 0;
}启动文件夹的路径我不会写 machimilk 发表于 2014-2-20 23:54 static/image/common/back.gif
建议你学习一下dos命令
你说的程序本身弄到启动文件夹格式就是
还有怎么复制自身文件到启动文件夹,这个程序别人下了,可能会存到不同的文件夹中 本帖最后由 machimilk 于 2014-2-21 00:27 编辑
拈花小仙 发表于 2014-2-21 00:16 static/image/common/back.gif
还有怎么复制自身文件到启动文件夹,这个程序别人下了,可能会存到不同的文件夹中
可以用环境变量啊,"%ALLUSERSPROFILE%\「开始」菜单\程序\启动"当然这是中文版,你要考虑到其他版本
不如用注册表regadd HKLM\software\microsoft\windows\currentversion\run /v "你想起的键名" /t REG_SZ /d "应用程序完整路径" /f machimilk 发表于 2014-2-21 00:24 static/image/common/back.gif
可以用环境变量啊,%system% 之类的
您能写出。复制自身到启动文件夹的代码吗?我会多多追加的 拈花小仙 发表于 2014-2-21 00:27 static/image/common/back.gif
您能写出。复制自身到启动文件夹的代码吗?我会多多追加的
写这个很简单啊,用注册表写就行,你不确定你的程序的路径还是其他 machimilk 发表于 2014-2-21 00:24 static/image/common/back.gif
可以用环境变量啊,"%ALLUSERSPROFILE%\「开始」菜单\程序\启动"当然这是中文版,你要考虑到其他版本
不 ...
还是不懂哦,您能写成代码吗?只需system里面的 machimilk 发表于 2014-2-21 00:30 static/image/common/back.gif
写这个很简单啊,用注册表写就行,你不确定你的程序的路径还是其他
我还想知道启动文件夹的,因为启动文件夹,开机时有快捷键,让启动文件夹不好使。这样防人乱动我电脑哦。 machimilk 发表于 2014-2-21 00:30 static/image/common/back.gif
写这个很简单啊,用注册表写就行,你不确定你的程序的路径还是其他
嗯,我无法找到win7启动文件夹位置,xp好找 拈花小仙 发表于 2014-2-21 00:34 static/image/common/back.gif
嗯,我无法找到win7启动文件夹位置,xp好找
win7的启动文件夹好像是不同的用户位置也不一样,所以还是注册表保险 machimilk 发表于 2014-2-21 00:45 static/image/common/back.gif
win7的启动文件夹好像是不同的用户位置也不一样,所以还是注册表保险
启动文件夹可以开机按shift跳过,我主要想写一个保护自己机器数据的,只是自己用。防同事乱动我电脑 那方法更多了,你可以把你的用户设置密码啊,或者把自己写的这个程序放windows文件夹下面,然后注册表启动指向他,一启动保证开这个程序,然后这个程序设计一个退出的密码,你可以输入密码使用啊 machimilk 发表于 2014-2-21 00:56 static/image/common/back.gif
那方法更多了,你可以把你的用户设置密码啊,或者把自己写的这个程序放windows文件夹下面,然后注册表启动指 ...
还是不能做到插入到启动文件夹吗?用快捷键多方便呀 拈花小仙 发表于 2014-2-21 00:58 static/image/common/back.gif
还是不能做到插入到启动文件夹吗?用快捷键多方便呀
如果你电脑用,放到启动文件夹当然非常容易,如果这个东西想发布,要考虑多个电脑,xp的win7的,各种语言版本还有就是不同的windows登陆用户 启动文件夹位置是不同的,也不是不能做成放启动文件夹,就是非常麻烦不值得,如果你要一按shift就跳过那你成注册表的,检测shift键就好了 拈花小仙 发表于 2014-2-21 00:58 static/image/common/back.gif
还是不能做到插入到启动文件夹吗?用快捷键多方便呀
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
char strUser ={0};//定义一个接收当前登录windows的用户的字符数组
char strDriver={0};//定义一个接收windows系统文件夹的字符数组
char strEXE={0};//定义一个接收当前执行程序的文件名的字符数组
char Drv;//定义一个盘符
DWORD dwSize = 256;
GetUserNameA(strUser,&dwSize);//获取当前登录windows的用户名
GetSystemDirectoryA(strDriver,256);//获取系统文件夹
GetModuleFileNameA(NULL,strEXE,256);
Drv=strDriver;//盘符确定了
char cmd={0};//定义一个最终拼接好的执行字串
OSVERSIONINFOA OSVer;//定义一个接收操作系统版本信息的结构体
OSVer.dwOSVersionInfoSize=sizeof(OSVERSIONINFOA);
GetVersionExA(&OSVer);//获得操作系统信息
if (OSVer.dwMajorVersion>=6)//如果是win7就按win7的方式拼接
{
cout<<"操作系统版本--->Win7或更高"<<endl<<"当前用户名----->"<<strUser<<endl<<"系统文件夹----->"<<strDriver<<endl<<"系统盘符------->"<<Drv<<endl<<"绝对路径文件名->"<<strEXE<<endl;
sprintf_s(cmd, "copy /y \"%s\" \"%c:\\Users\\%s\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\startup\" >nul ",strEXE,Drv,strUser);
}else//如果是xp就按xp的方式拼接命令
{
cout<<"操作系统版本--->WinXP或更低"<<endl<<"当前用户名----->"<<strUser<<endl<<"系统文件夹----->"<<strDriver<<endl<<"系统盘符------->"<<Drv<<endl<<"绝对路径文件名->"<<strEXE<<endl;
sprintf_s(cmd, "copy /y \"%s\" \"%c:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\" >nul ",strEXE,Drv);
}
system("@echo off");//让这命令本身不在命令行显示
system(cmd);//执行拼接好的命令
system("@echo on");//恢复命令行的显示
system("pause");
return(0);
}
页:
[1]