mywindowsservicewinservice.cpp

来自「《VC++2005编程实例》第二章的源代码」· C++ 代码 · 共 46 行

CPP
46
字号
// MyWindowsService.cpp: 主 Windows 服务项目文件。

#include "stdafx.h"
#include <string.h>
#include "MyWindowsServiceWinService.h"

using namespace MyWindowsService;
using namespace System::Text;
using namespace System::Security::Policy;
using namespace System::Reflection;

//要安装/卸载服务,请键入:“MyWindowsService.exe -Install [-u]”
int _tmain(int argc, _TCHAR* argv[])
{
	if (argc >= 2)
	{
		if (argv[1][0] == _T('/'))
		{
			argv[1][0] = _T('-');
		}

		if (_tcsicmp(argv[1], _T("-Install")) == 0)
		{
			array<String^>^ myargs = System::Environment::GetCommandLineArgs();
			array<String^>^ args = gcnew array<String^>(myargs->Length - 1);

			// 用到达程序集的完整路径设置 args[0],
			Assembly^ assem = Assembly::GetExecutingAssembly();
			args[0] = assem->Location;

			Array::Copy(myargs, 2, args, 1, args->Length - 1);
			AppDomain^ dom = AppDomain::CreateDomain(L"execDom");
			Type^ type = System::Object::typeid;
			String^ path = type->Assembly->Location;
			StringBuilder^ sb = gcnew StringBuilder(path->Substring(0, path->LastIndexOf(L"\\")));
			sb->Append(L"\\InstallUtil.exe");
			Evidence^ evidence = gcnew Evidence();
			dom->ExecuteAssembly(sb->ToString(), evidence, args);
		}
	}
	else
	{
		ServiceBase::Run(gcnew MyWindowsServiceWinService());
	}
}

⌨️ 快捷键说明

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