autolaunch.cpp

来自「老外的一个开源项目」· C++ 代码 · 共 79 行

CPP
79
字号
///---------------------------------------------------------------------------------
// Copyright (c) David Vescovi.  All rights reserved.
// Part of Project DrumStix
// Windows Embedded Developers Interest Group (WE-DIG) community project.
// http://www.we-dig.org
//
// autolaunch - automatically launch any .exe in the storage device
//              startup folder.
//---------------------------------------------------------------------------------

#include <windows.h>
#include <string.h>


int WINAPI WinMain(HINSTANCE hInst,
    HINSTANCE hInstPrev,
    LPWSTR lpCmdLine,
    int nCmdShow
	)
{
	wchar_t string[80];
    HANDLE hSearch;
    WIN32_FIND_DATA fData;

	// wait for everything to stablize
	Sleep(1000);

	if (INVALID_HANDLE_VALUE != (hSearch = FindFirstFile(TEXT("\\NOR Flash\\startup\\*.exe"), &fData ))) 
	{
		wcscpy(string,TEXT("\\NOR Flash\\startup\\"));
        if (!CreateProcess(wcscat(string,fData.cFileName),NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL))
			RETAILMSG(1, (TEXT("AutoLaunch: CreateProcess error! %s %d\r\n"),string,GetLastError()));
		else
			RETAILMSG(1, (TEXT("AutoLaunch: %s \r\n"),string));

		while (FindNextFile(hSearch, &fData))
		{
			wcscpy(string,TEXT("\\NOR Flash\\startup\\"));
			if (!CreateProcess(wcscat(string,fData.cFileName),NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL))
				RETAILMSG(1, (TEXT("AutoLaunch: CreateProcess error! %s %d\r\n"),string,GetLastError()));
			else
				RETAILMSG(1, (TEXT("AutoLaunch: %s \r\n"),string));
		}
	}
	else if (INVALID_HANDLE_VALUE != (hSearch = FindFirstFile(TEXT("\\Storage Card\\startup\\*.exe"), &fData ))) 
	{
		wcscpy(string,TEXT("\\Storage Card\\startup\\"));
        if (!CreateProcess(wcscat(string,fData.cFileName),NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL))
			RETAILMSG(1, (TEXT("AutoLaunch: CreateProcess error! %s %d\r\n"),string,GetLastError()));
		else
			RETAILMSG(1, (TEXT("AutoLaunch: %s \r\n"),string));

		while (FindNextFile(hSearch, &fData))
		{
			wcscpy(string,TEXT("\\Storage Card\\startup\\"));
			if (!CreateProcess(wcscat(string,fData.cFileName),NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL))
				RETAILMSG(1, (TEXT("AutoLaunch: CreateProcess error! %s %d\r\n"),string,GetLastError()));
			else
				RETAILMSG(1, (TEXT("AutoLaunch: %s \r\n"),string));
		}
	}
	else
	{
		if (INVALID_HANDLE_VALUE != (hSearch = FindFirstFile(TEXT("\\Windows\\autoapp.exe"), &fData ))) 
		{
			wcscpy(string,TEXT("\\Windows\\"));
			if (!CreateProcess(wcscat(string,fData.cFileName),NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL))
				RETAILMSG(1, (TEXT("AutoLaunch: CreateProcess error! %s %d\r\n"),string,GetLastError()));
			else
				RETAILMSG(1, (TEXT("AutoLaunch: %s \r\n"),string));
		}
	}

	// for registry init launch
	SignalStarted(_wtol(lpCmdLine));

    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?