精华内容
下载资源
问答
  • 程序比较简单,用到了C语言获得自身路径和系统路径,修改注册表项等,某些函数不理解可以查看MSDN #include #include char *GetFilename(char *p) //得到一个路径的纯文件名 { int x=strlen(p); char ch='\\\\'; ...
  • C语言设置程序开机自启动

    千次阅读 2019-11-06 20:18:18
    ``当需要使某一程序开机时就启动它,需要把它写进注册表的启动项中。 下面就展示一种简单的写法: #include <windows.h> #include <stdlib.h> #include <stdio.h> void ComputerStart(char *...

    ``当需要使某一程序在开机时就启动它,需要把它写进注册表的启动项中。
    下面就展示一种简单的写法:

    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    void ComputerStart(char *pathName)
    {
    	//找到系统的启动项 
    	char *szSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
    	HKEY hKey;
    
    	//打开注册表启动项 
    	int k = RegOpenKeyExA(HKEY_CURRENT_USER, szSubKey, 0, KEY_ALL_ACCESS, &hKey);
    	if (k == ERROR_SUCCESS)
    	{
    		//添加一个子Key,并设置值,MyStart为启动项名称,自定义设置;
    		RegSetValueEx(hKey, "MyStart", 0, REG_SZ, (BYTE *)pathName, strlen(pathName));
    		//关闭注册表
    		RegCloseKey(hKey);
    		printf("设置成功\n");
    	}
    	else
    	{
    		printf("设置失败  error:%d\n", k);
    	}
    }
    
    int main()
    {
    	char pathName[MAX_PATH];//文件名字最大260个字符  MAX_PATH  260
    	GetCurrentDirectory(MAX_PATH, pathName);//设置字符集为多字节字符集  获取当前文件路径
    
    	sprintf(pathName, "%s\\", pathName);
    	strcat(pathName, "1234.exe");//找到需要开机自启动的程序
    
    	ComputerStart(pathName);
    
    
    	system("pause");
    	return 0;
    }
    

    将该程序放在你所需要开机自启的程序目录下,便可将你所需要的程序写进注册表。该程序具有可移植性,切勿恶搞他人电脑!!!
    在某些情况下也会出现写入失败的问题,根据RegOpenKeyExA函数所返回的错误代码查询错误情况,一般都是注册表路径有误或者没有权限。在项目属相中选择配置属性->链接器->清单文件->UAC执行级别-> requireAdministrator (/level='requireAdministrator),如下图所示:
    在这里插入图片描述

    如何检查是否将某一程序写进了注册表呢?Win+R键,输入msconfig,在所出现的窗口中选顶端的启动栏,便可查看MyStart是否下进了注册表启动项。或者打开任务管理器,在启动栏中也可查看。
    注册表是windows一个重要的数据库,一般情况下不要将某些程序放进注册表,不仅会增长开机时间,而且对某些恶意程序提供了可乘之机。

    展开全文
  • c语言 程序开机自

    万次阅读 2018-09-13 09:46:56
    终于搞定c语言开机自启的实现 (吐槽: 网上文章真是”瓜皮”,bug奇多) 原理: windows 开机会检索注册表,其中有一项 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 是微软 定义的...

    闲来无事,研究下c 语言制作病毒,刚好涉及开机自启,遂写下该文章
    在查阅N多资料和Google后
    终于搞定c语言开机自启的实现
    (吐槽: 网上文章真是"瓜皮",bug奇多)

    原理:
    windows 开机会检索注册表,其中有一项

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    是微软 定义的开机程序检索表
    利用windows api 函数修改该注册表即可实现开机启动程序

    我们手动实现一下:
    1、点击开始——运行,输入regedit打开注册表
    2、找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”打开后,
    点右键 新建-字符串值,输入任意名称,然后右击该名称-修改,
    在“数值数据”栏输入你要自动启动的应用程序文件所在的完整路径的文件名


    活不多说,开码

    需要以下头文件

    	#include <Windows.h>
    	#include <stdio.h>
    

    函数主题如下:

    void HKRunator(char *programName)   //程序名称(**全路径**)
    {
    	HKEY hkey = NULL;
    	DWORD rc;
    
    	rc = RegCreateKeyEx(HKEY_LOCAL_MACHINE,                      //创建一个注册表项,如果有则打开该注册表项
    		"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
    		0,
    		NULL,
    		REG_OPTION_NON_VOLATILE,
    		KEY_WOW64_64KEY | KEY_ALL_ACCESS,    //部分windows系统编译该行会报错, 删掉 “”KEY_WOW64_64KEY | “” 即可
    		NULL,
    		&hkey,
    		NULL);
    
    	if (rc == ERROR_SUCCESS)   
    	{
    		rc = RegSetValueEx(hkey, 
    			"UStealer",
    			0,
    			REG_SZ,
    			(const BYTE *)programName,
    			strlen(programName));
    		if (rc == ERROR_SUCCESS)
    		{
    			RegCloseKey(hkey);
    		}
    	}
    }
    

    如需调用该函数,传入程序全路径名即可。

    展开全文
  • 主要介绍了c++ 写注册表方式让程序开机自启动,需要的朋友可以参考下
  • C语言写一个简单的开机自启动关机小程序 对于我们这些刚学C语言的小白们来说,一个简单且有趣的小程序可以极大的提高我们对C语言的兴趣,而今天我学到了一个开机的时候自启动的一个关机小程序 #include &amp...

    对于我们这些刚学C语言的小白们来说,一个简单且有趣的小程序可以极大的提高我们对C语言的兴趣,而今天我学到了一个开机的时候自启动的一个关机小程序

    #include <stdio.h> 
    #include <string.h> 
    #include <stdlib.h> 
      int main() 
      { 
       char input[20] = {0}; 
       system("shutdown -s -t 60"); 
      again: 
       printf("请注意,你的电脑将会在1分钟后关机,如果输入[我是猪],那就取消关机\n"); 
       scanf("%s", input); 
      if(strcmp(input, "我是猪") == 0)//strcmp 
       { 
        system("shutdown -a"); 
       } 
       else 
      { 
        goto again; 
       } 
       return 0; 
      } 
    

    代码块就是这样
    然后就是将.exe文件放入开机自启动的部位了
    首先,win+R,将运行的对话框打开,在运行对话框输入shell:startup

    确定之后,就会进入C:\Users\AppData\Roaming\Microsoft\Windows\「开始」菜单\程序\启动 这样的一个目录
    在这里插入图片描述
    然后将上面的.exe文件拖入到这个目录下,OK,大功告成!
    这样,每次只要一开机就会自动运行这个关机程序,不想执行这个程序也很简单,只要将.exe文件从那个目录删除就可以了

    展开全文
  • 以前我时常在想,怎么能在Android系统中用C语言来编写应用程序呢?Android系统上的应用程序不都是Java应用程序吗?其实是可以的,读者不妨用adb shell命令连上Android模拟器,在/system/bin目录下可以看到很多C可...

    以前我时常在想,怎么能在Android系统中用C语言来编写应用程序呢?Android系统上的应用程序不都是Java应用程序吗?其实是可以的,读者不妨用adb shell命令连上Android模拟器,在/system/bin目录下可以看到很多C可执行程序,如cat命令。今天,我们就来学习一下怎么在Android系统中添加用C语言编写的可执行程序。

    还是以hello world来讲吧。毕竟大家对这个比较熟。

    进入到Android源代码工程的external目录,创建hello目录,

    caizd@blsx:~/mt6580_androidL$ cd external/
     caizd@blsx:~/mt6580_androidL/external$ mkdir hello
    

    在hello目录中新建hello.c文件,并且添加代码如下:

    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
            printf("Hello World!\n");
            return 0;
    }
    

    这个程序的作用是打印出Hello World!

    然后在hello目录中新建Android.mk文件,添加代码:

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE_TAGS := optional
    
    LOCAL_MODULE := hello
    
    LOCAL_SRC_FILES := $(call all-subdir-c-files)
    
    include $(BUILD_EXECUTABLE)
    

    注意,BUILD_EXECUTABLE表示我们要编译的是可执行程序

    使用mmm命令进行编译:

    caizd@blsx:~/mt6580_androidL/external$ mmm ./external/hello
    

    编译成功后,就可以在out/target/product/inwatch_portal/system/bin/目录下,看到可执行文件hello了。

    然后通过adb工具把hello push到机器的system/bin/,给755权限即可。然后执行adb 进入机器执行./hello,即可看到打印Hello World!,说明操作成功。具体操作命令如下:

    C:\Users\asus>adb root
    adbd is already running as root
    
    C:\Users\asus>adb remount
    remount succeeded
    
    C:\Users\asus>adb push Y:\mt6580_androidL\out\target\product\inwatch_portal\system\bin\hello system/bin
    55 KB/s (5412 bytes in 0.094s)
    
    C:\Users\asus>adb shell
    root@inwatch_portal:/ # cd system/bin
    cd system/bin
    root@inwatch_portal:/system/bin # chmod 755 hello
    chmod 755 hello
    root@inwatch_portal:/system/bin # ./hello
    ./hello
    Hello World!
    root@inwatch_portal:/system/bin #
    

    如果需要这个执行文件在开机之后在后台自动运行,则需要添加以下语句到init.rc的文件或者xxxx.sh中(一定要是能运行的rc文件或者sh文件)。Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行hello在后台:

    1、xxxx.sh中添加:

    	/system/bin/hello &
    

    2、init.rc添加,不需要&:

    Below Android 4.0(安卓4.0之前)

    	service hello /system/bin/hello
    	user root
    	group root
    	oneshot
    

    Above Android 4.0(安卓4.0之后)

    	service hello /system/bin/hello
    	class main
    	user root
    	group root
    	oneshot
    	seclabel u:r:hello:s0   #这句是为加selinux权限添加的,android5.1以后不加则无法启动该服务
    

    当然了,加完了上面这些之后,还需要处理一下Selinux的一些权限的问题,否则会出现如下报错:

    [    4.099220] init: Starting service 'hello'...
    [    4.101726] init: cannot setexeccon('u:r:ehello:s0'): Invalid argument
    [    4.147480] init: Service 'hello' (pid 242) exited with status 12
    

    具体的处理可以参考:添加开机启动服务程序关于Selinux权限问题说明

    展开全文
  • 主要介绍了C#实现将应用程序设置为开机启动的方法,涉及C#针对注册表的写入技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • c语言开机自程序

    2020-02-07 10:39:04
    开机自启的文件目录为HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 在这里面能看所有的开机自启的软件。 而想要自己添加开机自启的软件只需要在右侧空白处右键添加字符串值即可 然后在里面...
  • 1.对于文献【2】中的方法一:向rc.local文件添加启动代码 自启动无效 2.对于文献【2】中的方法二:将程序作为服务启动 自启动无效 3.对于文献【2】中的方法三:...程序自启动成功,相机启动正常。 此外,有些会遇见s
  • 反正就是用不了,于是重新在网上下载了一个,下载完成后开了几次电脑突然才意识到每次运用输入法都要提前运行这个程序,就觉得很麻烦,自己翻了下资料,弄了个自启动的小程序解决一下。 #include &lt;windows....
  • Linux 树莓派设置程序开机自启动

    千次阅读 2017-11-02 14:47:39
    通过 修改 /etc/rc.local 文件 把启动程序的shell命令加入进去即可以 下面以树莓派做实验 sudo nano /etc/rc.local 写入 需要执行程序的绝对路径 如 /home/pi/a.out  再执行reboot 指令重启 再通过 ps -aux|...
  • 1、是登录自己用户时才能开机启C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupusername 替换成 你自己的用户名2、登录所有用户时都能开机启动C:\ProgramData\Microsoft\Windows\...
  • ZYNQ petalinux程序开机自己启动

    千次阅读 2020-03-25 01:32:11
    2,在AM335X里面,在/etc/profile.d里面放入脚本start.sh,加个权限,开机自启动会执行 3,开机自启动脚本,可以放任意位置,我放在/etc/init.d/xxx.sh 写完后,要给权限chmod 777 xxx.sh,chmod a+x xxx.sh 脚本...
  • 之前一篇博文介绍了shell脚本文件的开机启动,地址是http://blog.chinaunix.net/uid-12845622-id-3054126.html,不过有些操作并不好通过shell去执行,也不好做成JNI动态库由上层调用,这时,可能这篇博文就能帮上你...
  • 原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后对这个exe文件进行开机自...
  • //StartupRun("偷闲--开机启动程序", "C:\\Users\\Administrator\\Documents\\Visual Studio 2012\\Projects\\tx\\Release\\tx.exe"); //绝对路径 //StartupRun("偷闲--开机启动程序", ".\\tx.exe");//不可用 ...
  •  你会看到五个根目录,开机自启动的信息写在 HKEY_LOCAL_MACHINE 下面,具体的目录为 SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run  要怎么将开机自启动的信息写入注册表中呢?其实过程很简单,第一步...
  • 修改注册表实现程序开机自启动

    千次阅读 2018-08-03 09:56:50
    修改注册表实现程序开机自启动 2017年09月27日 10:55:37 阅读数:335 注册表简介 何为注册表 注册表相当于Windows下的一个庞大的层次性数据库.  基本上有责系统所有的配置信息 注册表是windows操作系统中的...
  • C语言 设置程序自

    2019-05-07 00:30:51
    // 设置开机自启 // 成功1, 失败0 int SetRun ( char * path , char * msg ) { # define CHK(a) if(a!=ERROR_SUCCESS) return 0; # define REGISTER "Software\\Microsoft\\Windows\\Current...
  • 程序开机自启动,顾名思义,就是计算机开机后,不用人为地去运行程序程序就可以自己运行起来。对于这个功能的,一直都是杀软重点监测的地方。因为,对于病毒来说,重要的不是如何被破坏,而是如何启动。 在过去写...
  • shutdown -f 强行关闭应用程序 shutdown -m \\计算机名 控制远程计算机 shutdown -i 显示“远程关机”图形用户界面,但必须是Shutdown的第一个参数 shutdown -l 注销当前用户 shutdown -r 关机并重启 ...
  • 新建一个winform拖一个checkbox进来。。 然后设置它的changed事件。 已经测试过,可以直接复制使用。 ...private void checkBox1_CheckedChanged(object sender, ... if (checkBox1.Checked) //设置开机自启动 ...
  • 即windows开机时,会自动执行该路径下的文件,如果你的软件设置了相对路径,启动时会默认到C/windows/sysWOW64路径下寻找软件配置文件,而不是到你执行的exe路径下寻找,这样会导致你的文件根本找不到,出现软件卡死...
  • 几种树莓派开机自程序的方法

    千次阅读 2017-05-04 16:35:28
     在用户目录下的 ".profile"文件中添加你要开机启动程序绝对路径 (二) 首先给你的文件增加权限 chmod +x /home/pi/share/ip_acquire.py 开机启动脚本,保存脚本为/etc/init.d/start文件 #!/bin/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,493
精华内容 4,197
关键字:

c语言开机自启动程序

c语言 订阅