精华内容
下载资源
问答
  • Windows计划任务开机启动程序

    千次阅读 2019-08-22 09:47:28
    Windows下需要管理员权限的开机程序启动时,如果Windows UAC等级设置的比较高,那么总是会提示是否启动某某程序的对话框,这对于用户来说体验非常不好,但是通过计划任务设置程序以管理员身份启动就可以完全避免。...

    前言

    Windows下需要管理员权限的开机程序启动时,如果Windows UAC等级设置的比较高,那么总是会提示是否启动某某程序的对话框,这对于用户来说体验非常不好,但是通过计划任务来设置程序以管理员身份启动就可以完全避免。

    下面是C++和C#的实现代码,直接拿来用即可。

    C++代码

       此代码是参考MSDN的里面,稍微进行了一点修改。MSDN例子

    #define _CRT_SECURE_NO_WARNINGS
    #define _WIN32_DCOM
    #include <windows.h>
    #include <iostream>
    #include <stdio.h>
    #include <comdef.h>
    //  Include the task header file.
    #include <taskschd.h>
    #pragma comment(lib, "taskschd.lib")
    #pragma comment(lib, "comsupp.lib")
    using namespace std;
    //是否存在指定名字的计划任务
    bool IsExistScheduler(wchar_t *taskName)
    {
    	//  ------------------------------------------------------
    //  Initialize COM.
    	HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    	if (FAILED(hr))
    	{
    		return false;
    	}
    	//  Set general COM security levels.
    	hr = CoInitializeSecurity(
    		NULL,
    		-1,
    		NULL,
    		NULL,
    		RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
    		RPC_C_IMP_LEVEL_IMPERSONATE,
    		NULL,
    		0,
    		NULL);
    
    	if (FAILED(hr))
    	{
    		CoUninitialize();
    		return false;
    	}
    
    	//  ------------------------------------------------------
    	//  Create a name for the task.
    	LPCWSTR wszTaskName = taskName;
    
    	//  ------------------------------------------------------
    	//  Create an instance of the Task Service. 
    	ITaskService *pService = NULL;
    	hr = CoCreateInstance(CLSID_TaskScheduler,
    		NULL,
    		CLSCTX_INPROC_SERVER,
    		IID_ITaskService,
    		(void**)&pService);
    	if (FAILED(hr))
    	{
    		printf("Failed to create an instance of ITaskService: %x", hr);
    		CoUninitialize();
    		return false;
    	}
    
    	//  Connect to the task service.
    	hr = pService->Connect(_variant_t(), _variant_t(),
    		_variant_t(), _variant_t());
    	if (FAILED(hr))
    	{
    		printf("ITaskService::Connect failed: %x", hr);
    		pService->Release();
    		CoUninitialize();
    		return false;
    	}
    
    	//  ------------------------------------------------------
    	//  Get the pointer to the root task folder.  This folder will hold the
    	//  new task that is registered.
    	ITaskFolder *pRootFolder = NULL;
    	hr = pService->GetFolder(_bstr_t(L"\\"), &pRootFolder);
    	if (FAILED(hr))
    	{
    		printf("Cannot get Root Folder pointer: %x", hr);
    		pService->Release();
    		CoUninitialize();
    		return false;
    	}
    	//查看计划任务是否存在
    	IRegisteredTask *ttt;
    	auto ret=pRootFolder->GetTask(_bstr_t(wszTaskName),&ttt);
    	if (ret != S_OK)
    	{
    		pRootFolder->Release();
    		pService->Release();
    		CoUninitialize();
    		return false;
    	}
    	ttt->Release();
    	pRootFolder->Release();
    	pService->Release();
    	CoUninitialize();
    	return true;
    }
    //创建用户登录启动软件的任务
    //taskName 任务名字
    //executablePath 可执行文件路径
    //creater 创建者
    HRESULT LogonStartScheduler(wchar_t *taskName,wchar_t*executablePath,wchar_t *creater=NULL)
    {
    		//  ------------------------------------------------------
    		//  Initialize COM.
    		HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    		if (FAILED(hr))
    		{
    			return hr;
    		}
    		//  Set general COM security levels.
    		hr = CoInitializeSecurity(
    			NULL,
    			-1,
    			NULL,
    			NULL,
    			RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
    			RPC_C_IMP_LEVEL_IMPERSONATE,
    			NULL,
    			0,
    			NULL);
    
    		if (FAILED(hr))
    		{
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Create a name for the task.
    		LPCWSTR wszTaskName = taskName;
    
    		//  Get the windows directory and set the path to notepad.exe.
    		wstring wstrExecutablePath = executablePath;
    
    
    		//  ------------------------------------------------------
    		//  Create an instance of the Task Service. 
    		ITaskService *pService = NULL;
    		hr = CoCreateInstance(CLSID_TaskScheduler,
    			NULL,
    			CLSCTX_INPROC_SERVER,
    			IID_ITaskService,
    			(void**)&pService);
    		if (FAILED(hr))
    		{
    			printf("Failed to create an instance of ITaskService: %x", hr);
    			CoUninitialize();
    			return hr;
    		}
    
    		//  Connect to the task service.
    		hr = pService->Connect(_variant_t(), _variant_t(),
    			_variant_t(), _variant_t());
    		if (FAILED(hr))
    		{
    			printf("ITaskService::Connect failed: %x", hr);
    			pService->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Get the pointer to the root task folder.  This folder will hold the
    		//  new task that is registered.
    		ITaskFolder *pRootFolder = NULL;
    		hr = pService->GetFolder(_bstr_t(L"\\"), &pRootFolder);
    		if (FAILED(hr))
    		{
    			printf("Cannot get Root Folder pointer: %x", hr);
    			pService->Release();
    			CoUninitialize();
    			return hr;
    		}
    		//查看计划任务是否存在
    		//IRegisteredTask *ttt;
    		//auto ret=pRootFolder->GetTask(_bstr_t(L"OnebotStartScheduler"),&ttt);
    		//if (ret == S_OK)
    		//{
    		//	ttt->Release();
    		//	pRootFolder->Release();
    		//	pService->Release();
    		//	CoUninitialize();
    		//	return 1;
    		//}
    		//  If the same task exists, remove it.
    		pRootFolder->DeleteTask(_bstr_t(wszTaskName), 0);
    		//  Create the task builder object to create the task.
    		ITaskDefinition *pTask = NULL;
    		hr = pService->NewTask(0, &pTask);
    
    		pService->Release();  // COM clean up.  Pointer is no longer used.
    		if (FAILED(hr))
    		{
    			printf("Failed to create a task definition: %x", hr);
    			pRootFolder->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Get the registration info for setting the identification.
    		IRegistrationInfo *pRegInfo = NULL;
    		hr = pTask->get_RegistrationInfo(&pRegInfo);
    		if (FAILED(hr))
    		{
    			printf("\nCannot get identification pointer: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    		if (creater != NULL)
    		{
    			WCHAR *AuthorName = creater;
    			hr = pRegInfo->put_Author(AuthorName);
    			if (FAILED(hr))
    			{
    			pRegInfo->Release();
    				printf("\nCannot put identification info: %x", hr);
    				pRootFolder->Release();
    				pTask->Release();
    				CoUninitialize();
    				return hr;
    			}
    		}
    			pRegInfo->Release();
    		//  ------------------------------------------------------
    		//  Create the settings for the task
    		ITaskSettings *pSettings = NULL;
    		hr = pTask->get_Settings(&pSettings);
    		if (FAILED(hr))
    		{
    			printf("\nCannot get settings pointer: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  Set setting values for the task. 
    		hr= pSettings->put_StartWhenAvailable(VARIANT_TRUE);
    		if (FAILED(hr))
    		{
    			pSettings->Release();
    			printf("\nCannot put setting info: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return 1;
    		}
    		hr = pSettings->put_DisallowStartIfOnBatteries(VARIANT_FALSE);
    		pSettings->Release();
    		if (FAILED(hr))
    		{
    			printf("\nCannot put setting info: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Get the trigger collection to insert the logon trigger.
    		ITriggerCollection *pTriggerCollection = NULL;
    		hr = pTask->get_Triggers(&pTriggerCollection);
    		if (FAILED(hr))
    		{
    			printf("\nCannot get trigger collection: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  Add the logon trigger to the task.
    		ITrigger *pTrigger = NULL;
    		hr = pTriggerCollection->Create(TASK_TRIGGER_LOGON, &pTrigger);
    		pTriggerCollection->Release();
    		if (FAILED(hr))
    		{
    			printf("\nCannot create the trigger: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		ILogonTrigger *pLogonTrigger = NULL;
    		hr = pTrigger->QueryInterface(
    			IID_ILogonTrigger, (void**)&pLogonTrigger);
    		pTrigger->Release();
    		if (FAILED(hr))
    		{
    			printf("\nQueryInterface call failed for ILogonTrigger: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    	
    		hr = pLogonTrigger->put_Id(_bstr_t(L"Trigger1"));
    		if (FAILED(hr))
    			printf("\nCannot put the trigger ID: %x", hr);
    
    		wchar_t computerName[256] = { 0 };
    		wchar_t userName[256] = { 0 };
    		DWORD dwSize = 256;
    		if (!GetComputerNameW(computerName, &dwSize)|| !GetUserNameW(userName, &dwSize))
    		{		
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return S_FALSE;
    		}
    		lstrcatW(computerName, (wchar_t*)L"\\");
    		lstrcatW(computerName, userName);
    		std::wcout << "当前用户名:" << computerName << endl;
    
    		//  Define the user.  The task will execute when the user logs on.
    		//  The specified user must be a user on this computer.  
    		hr = pLogonTrigger->put_UserId(computerName);
    		pLogonTrigger->Release();
    		if (FAILED(hr))
    		{
    			printf("\nCannot add user ID to logon trigger: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Add an Action to the task. This task will execute notepad.exe.     
    		IActionCollection *pActionCollection = NULL;
    
    		//  Get the task action collection pointer.
    		hr = pTask->get_Actions(&pActionCollection);
    		if (FAILED(hr))
    		{
    			printf("\nCannot get Task collection pointer: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  Create the action, specifying that it is an executable action.
    		IAction *pAction = NULL;
    		hr = pActionCollection->Create(TASK_ACTION_EXEC, &pAction);
    		pActionCollection->Release();
    		if (FAILED(hr))
    		{
    			printf("\nCannot create the action: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		IExecAction *pExecAction = NULL;
    		//  QI for the executable task pointer.
    		hr = pAction->QueryInterface(
    			IID_IExecAction, (void**)&pExecAction);
    		pAction->Release();
    		if (FAILED(hr))
    		{
    			printf("\nQueryInterface call failed for IExecAction: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  Set the path of the executable to notepad.exe.
    		hr = pExecAction->put_Path(_bstr_t(wstrExecutablePath.c_str()));
    		pExecAction->Release();
    		if (FAILED(hr))
    		{
    			printf("\nCannot set path of executable: %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		//  ------------------------------------------------------
    		//  Save the task in the root folder.
    		IRegisteredTask *pRegisteredTask = NULL;
    
    		hr = pRootFolder->RegisterTaskDefinition(
    			_bstr_t(wszTaskName),
    			pTask,
    			TASK_CREATE_OR_UPDATE,
    			_variant_t(computerName),
    			_variant_t(),
    			TASK_LOGON_INTERACTIVE_TOKEN,
    			_variant_t(L""),
    			&pRegisteredTask);
    		if (FAILED(hr))
    		{
    			printf("\nError saving the Task : %x", hr);
    			pRootFolder->Release();
    			pTask->Release();
    			CoUninitialize();
    			return hr;
    		}
    
    		printf("\n Success! Task successfully registered. ");
    
    		// Clean up
    		pRootFolder->Release();
    		pTask->Release();
    		pRegisteredTask->Release();
    		CoUninitialize();
    		return 0;
    	
    }

    C#代码

    注意需要安装nuget包TaskScheduler

            /// <summary>
            /// 开机自启
            /// </summary>
            /// <param name="taskName">任务名字</param>
            /// <param name="fileName">可执行文件路径(如果路径存在空格,最好将路径用双引号包起来,"C:\\Program Files (x86)\\123.exe")</param>
            /// <param name="description">任务藐视</param>
            public static void AutoStart(string taskName,string fileName,string description)
            {
                if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(fileName))
                {
                    throw new ArgumentNullException();
                }
                string TaskName = taskName;
                var logonUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                string taskDescription = description;
                string deamonFileName = fileName;
    
                using (var taskService = new TaskService())
                {
                    var tasks = taskService.RootFolder.GetTasks(new System.Text.RegularExpressions.Regex(TaskName));
                    foreach (var t in tasks)
                    {
                        taskService.RootFolder.DeleteTask(t.Name);
                    }
    
                    var task = taskService.NewTask();
                    task.RegistrationInfo.Description = taskDescription;
                    task.Settings.DisallowStartIfOnBatteries = false;//当使用电源时,也运行此计划任务
                    task.Triggers.Add(new LogonTrigger { UserId = logonUser });
                    task.Principal.RunLevel = TaskRunLevel.Highest;
                    task.Actions.Add(new ExecAction(deamonFileName));
    
                    taskService.RootFolder.RegisterTaskDefinition(TaskName, task);
                }
            }

     

    展开全文
  • 设置程序开机启动

    千次阅读 2015-06-22 21:51:45
    程序设为开机启动,有三种方式: (1). 修改注册表  把程序增加到注册表的开机运行项,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 需要注意32位程序在64位系统运行,操作注册表被重定向的问题...
    把程序设为开机启动,有三种方式:
    
    (1). 修改注册表 
    把程序增加到注册表的开机运行项,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    需要注意32位程序在64位系统运行,操作注册表被重定向的问题.
    缺点:只有登陆桌面后程序才会启动.即如果系统只是重启了,但没有输入密码登陆,程序就不能启动

    (2). 添加启动项
    增加执行程序的快捷方式到系统开机启动目录,Windows自动启动放入该文件夹的所有快捷方式,注意WIN7个XP启动目录不一样
    WIN7: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    XP:  C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
    缺点:启动优先级比方法(1)还低,并且同样只有登陆桌面后程序才会启动.

    (3). 设置成服务
    把程序设置成服务,通常只把监控进程,守护进程设置成服务.
    优点:这种启动优先级最高,可以做到在系统启动时就启动,而无需登录系统.
    缺点: 要写单独的服务程序,依靠服务程序来启动执行程序.

    (4). 设置组策略
    设置组策略,这种最简单最有效,可以做到系统启动时就启动程序而无需登录,但无法通过代码实现,只能在本地计算机上手动设置.
    方法:运行gpedit.msc打开组策略,依次选择菜单"计算机配置"->"Windows设置"->"脚本(启动/关机) ",然后在启动项里面浏览添加要开机启动的程序.

    (5). 设置开机自动登录
    设置开机自动登录,这样当系统启动时就会自动登录,而无需用户输入密码.但也无法通过代码实现,只能在本地计算机上手动设置.
    方法:运行命令“ rundll32 netplwiz.dll,UsersRunDll”, 或者命令“ control userpasswords2”也可以,
    然后取消勾选“要使用本机,用户必须输入用户名及密码”.
    注意:这种需要配合方法(1)使用才行,并且一定要注意命令的大小写.


    (6). 设置计划任务
    方法:at命令,自己百度


    其他说明:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run  //和HKEY_CURRENT_USER一样,只是优先级稍微高一点
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce//只生效一次,系统重启后注册表项自动被移除
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices//Win9X的注册表项, XP,WIN7等已经不支持了
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce//Win9X的注册表项, XP,WIN7等已经不支持了


    展开全文
  • Windows设置自己的程序开机自动启动

    万次阅读 多人点赞 2018-12-20 17:49:26
    Windows系统想要快速设置开机自动启动某个程序,可以使用以下几种方法设置: 第一种:设置启动项 1.找到启动文件夹,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start ...2.拷贝需要开机启动的程...

    Windows系统想要快速设置开机自动启动某个程序,可以使用以下几种方法设置:

    第一种:设置启动项

    1.找到启动文件夹,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,或者打开运行,输入shell:startup,回车,也可以快速打开启动文件夹。

    2.拷贝需要开机启动的程序的快捷方式到此文件夹即可。

    3.打开任务管理器-启动查看启动项。

    这样就设置好了,下次计算机启动时,程序也会自动启动的。

    第二种:使用计划任务自启动

    1.新建文本文件DebugStart.txt,打开写入以下内容:

    tasklist|find /i "authSender.exe" && echo started || start "" "D:\Debug\authSender.exe"。

    这条语句不能换行, authSender.exe 是程序名, "D:\Debug\authSender.exe"是此程序所在路径,tasklist|find /i "authSender.exe"是判断进程是否存在,程序是否已经开启,如未开启才会启动程序,然后改后缀名 .txt 为 .bat,双击即可启动程序。(可以在每条语句前使用 :: 来注释一条语句),这种方法还可以批量启动不同程序,只需要在此文件中重启一行,按相同格式写第二个要启动的程序对应的语句即可。

    2.进入任务计划程序窗口,创建任务。

    接着选择触发器选项卡,选择新建,在第一栏开始任务处选择登录时(启动时开始任务需要管理员权限)或启动时(启动时开始任务需要管理员权限),点击确定。由于我们的 bat脚本有做判断,所以不用担心程序会启动多次。

    在操作选项卡选择新建,并选择启动程序选项,以及在程序和脚本处选择刚才编写的.bat程序,点击确定,然后再点击确定(创建任务界面的确定)。

    关闭页面,即可做到开机自动启动程序。

    第三种:通过组策略设置脚本随服务器启动

    1.开始->运行->gpedit.msc->计算机配置->Windows设置->脚本(启动/关机)。其中Win10有很多版本,其中家庭版默认是不提供组策略功能,如果需要给win10的家庭版添加组策略的功能,可以参考https://blog.csdn.net/lwpkjio/article/details/85236808

    2.添加启动脚本,点击确定。

    这样就可以了。

    第四种:添加服务自动运行

    1.开始---运行---cmd---回车,在弹出的窗体中输入如下命令:

    sc create Debug binPath= D:\Debug\authSender.exe start= auto,其中Debug为将要创建的服务名。要删除创建的服务也很简单,使用以下命令即可:sc delete ServiceName

    2.打开控制面板---管理工具---服务(或者 开始---运行---services.msc---确认)打开服务管理器,看看你创建的服务已经在里面了,至此,服务运行已创建完成。

    展开全文
  • 添加开机启动任务计划程序

    千次阅读 2018-02-03 11:24:27
    添加 Microsoft.Win32.TaskScheduler.dll using Microsoft.Win32.TaskScheduler; using System; using System.Collections.Generic; using System.Linq; using System.Text;... /// 任务计划辅助类

    添加 Microsoft.Win32.TaskScheduler.dll


    using Microsoft.Win32.TaskScheduler;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;   


     /// <summary>

        /// 任务计划辅助类
        /// </summary>
        public class TaskServiceHelper
        {
            /// <summary>
            /// Adds the task.
            /// </summary>
            /// <param name="taskName">计划任务名称</param>
            /// <param name="exeFullName">exe执行程序全路径</param>
            /// <param name="description">计划任务描述</param>
            public static void AddTask(string taskName, string exeFullName, string description)
            {
                try
                {
                    if (ExitTask(taskName))
                    {
                        return;
                    }
                    TaskService taskService = new TaskService();
                    TaskDefinition taskDefinition = taskService.NewTask();
                    taskDefinition.RegistrationInfo.Description = description;
                    taskDefinition.Settings.DisallowStartIfOnBatteries = false;
                    LogonTrigger logonTrigger = new LogonTrigger();
                    taskDefinition.Triggers.Add(logonTrigger);
                    taskDefinition.Settings.StopIfGoingOnBatteries = false;
                    taskDefinition.Principal.RunLevel = TaskRunLevel.Highest;
                    taskDefinition.Principal.GroupId = "Administrators";
                    taskDefinition.Actions.Add(new ExecAction(exeFullName, "", null));
                    taskService.RootFolder.RegisterTaskDefinition(taskName, taskDefinition);
                }
                catch (Exception exception)
                {
                    // Log.Error($"添加计划任务失败:{exception.Message}");
                }
            }


            /// <summary>
            /// Exits the task.
            /// </summary>
            /// <param name="taskName">Name of the task.</param>
            /// <returns></returns>
            public static bool ExitTask(string taskName)
            {
                bool isExist = false;
                foreach (Task task in new TaskService().RootFolder.Tasks)
                {
                    if (task.Name.Equals(taskName))
                    {
                        isExist = true;
                        break;
                    }
                }
                return isExist;
            }


            /// <summary>
            /// Deletes the test task.
            /// </summary>
            /// <param name="taskName">Name of the task.</param>
            public static void DeleteTask(string taskName)
            {
                try
                {
                    TaskService ts = new TaskService();
                    ts.RootFolder.DeleteTask(taskName);
                }
                catch (Exception exception)
                {
                    //Log.Error($"删除计划任务失败:{exception.Message}");
                }
            }
        }
    展开全文
  • 之前写windows下配置nginx服务器一文时在文末实现了一种开机启动的方式,就是下载一个winsw程序来实现。此方法也是研究了很久,走了很多弯路(比如多次没注意用管理员身份运行,比如多次参看windows服务是否已启动...
  • windows7系统任务计划程序绕过UAC管理实现程序开机启动.docx
  • WSL设置开机启动程序(含ROOT权限启动配置) 启动任务计划程序(Win+R运行 taskschd.msc 或通过控制面板-系统与安全-管理工具-计划任务) 在右侧操作栏里点【创建基本任务】弹出如下窗口 填写基本任务名称,触发器...
  • 任务计划程序设置软件在电脑重启后启动
  • 1.bat文件的建立 新建文本文件DebugStart.txt,打开写入以下内容: tasklist|find /i "KMX_Daemon.exe" && echo started || start "" "F:\... 程序开机启动后,控制台的程序是看不见cmd窗口的,可以到任务管理器中查看。
  • 接下来介绍一种可行的解决方案:设置 java 程序开机启动 + 崩溃自动重启(当然能避免程序崩溃最好,这是根本解决方法,本文的目的是给你的程序设立最后一道保障)。   实现思路 jar 包开机运行:利用 Windows 系...
  • linux 下设置程序开机启动

    千次阅读 2012-08-31 19:12:52
    可用一些小工具来管理 Ubuntu 的启动选项: 小工具 rcconf: #sudo apt-get rcconf #sudo apt-get install rcconf root 下运行: #sudo rcconf 功能更全的工具:sysv-rc-conf #sudo apt-get upda
  • 任务计划实现开机启动实现

    千次阅读 2011-03-16 10:41:00
    任务计划实现开机启动实现
  • CentOs 设置开机启动自动执行程序

    万次阅读 2020-05-29 16:42:35
    以脚本autostart.sh为例: ...echo '开机自动启动'; 1、赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径) chmod +x /opt/script/autostart.sh 2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容 /opt
  • windows开机启动自定义程序任务

    千次阅读 2019-09-24 13:19:31
    使用 win + r 打开运行窗口,输入shell:startup,单机确定,就会进入系统开机启动程序的文件目录,通常这里都是放应用程序的快捷方式。 第二种 使用windows任务: 右键我的电脑,点击管理。 点击右边的...
  • 用C语言设置程序开机启动

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

    万次阅读 多人点赞 2018-12-06 16:56:21
    Windows10系统设置定时任务 开机启动.bat文件 写了一个小程序,数据库启动服务都是集成一起的。部署在一台电脑上,每次启动都需要手动点击.bat文件,很麻烦,为了方便,配置了开机自启动.bat服务。 打开【控制面板...
  • Openwrt下设置程序开机自动启动

    万次阅读 2016-05-26 15:43:43
    今天在使用Openwrt时,需要将scp到上面的程序设置开机自动启动。按照Linux下设置自动启动的方法并不有效。后来在官方wiki下发现了介绍文章,具体可见Openwrt下http://wiki.openwrt.org/doc/techref/initscripts ...
  • 设置Windows开机自动启动程序有以下几种...2.拷贝需要开机启动程序的快捷方式到此文件夹即可。 3.打开任务管理器-启动查看启动项。 这样就设置好了,下次计算机启动时,程序也会自动启动的。 第二种:使用计划任务
  • 自己写了一个C#程序,将其设置开机启动程序,以Windows服务的形式(这样可以在用户登入之前就启动,快于杀毒软件的启动和桌面程序的启动)
  • windows开机自启python服务(任务计划程序+bat脚本) 怎么让BAT隐藏执行,不显示CMD窗口 有时候我们会启动一些使用解压缩安装的软件,这些软件在win里并没有记录,无法从第三方软件或者是任务管理器中启动软件,这就...
  • 3,任务计划程序:创建任务->填写任务名称和描述,然后一定要选中“不管用户是否登录都要运行”、“不存储密码”、“使用最高权限”。 4,选择触发器->新建触发器->开始任务选择“启动时”->确定 ...
  •   每天上班电脑开机都要打开RTX QQ 开发工具等一堆软件有没有觉得很麻烦,然而一些软件并没有开机启动项,想要做到开机自动批量启动软件其实很简单,使用bat脚本跟Window的定时任务就可以完成,并且不需要管理员...
  • windows下设置开机启动自定义任务

    千次阅读 2014-03-28 09:41:30
    1、在运行中输入”services.msc”,查看”Task Scheduler”服务是否被设置成了”已禁用”,若是,要双击它将...找到"域控制器:允许服务器操作员计划任务",并启用它,退出,可以开始设置计划任务了. 3、打开控制面板--任
  • 创建计划任务实现开机启动

    千次阅读 2019-07-23 21:00:31
    想必实现程序开机启动,是很常见的功能了。无论是恶意程序,还是正常的应用软件,都会提供这个功能,方便用户的使用。程序开机启动,顾名思义,就是计算机开机后,不用人为地去运行程序,程序就可以自己运行起来...
  • 第一种方法:不修改注册表 原理是将程序的快捷方式添加到计算机"...开机启动"; GroupDescription: "{cm:AdditionalIcons}"; [Icons] Name: "{userstartup}\{#MyAppName}"; Filename...
  • 现在的软件很多安装程序都是默认的开机启动,电脑上如果软件的开机启动项多了就会使得电脑的开机速度很慢,这个时候就需要大家手动来设置开机启动项了,那电脑开机启动项在哪里设置呢?小编的电脑的系统是win7的,...
  • ...打开计划任务快捷方式(在 “管理工具”内): C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Task Scheduler.lnk 很多人在问我: 1、Windows Server
  • 之前在Linux centos 7 上安装了apache 和mysql,当时并没有设置开机自动启动。 最近又重新练习网页,每次开机总是要手动启动httpd和mysqld,不方便,就想设置开机自动启动apache和mysql。 Linux centos 7 怎样...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,999
精华内容 24,399
关键字:

任务计划设置程序开机启动