mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Added workaround for old plugins using relative path to Rainmeter.exe
This commit is contained in:
		
							
								
								
									
										46
									
								
								Application/Launcher/Launcher.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								Application/Launcher/Launcher.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					  Copyright (C) 2012 Birunthan Mohanathas
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This program is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					  modify it under the terms of the GNU General Public License
 | 
				
			||||||
 | 
					  as published by the Free Software Foundation; either version 2
 | 
				
			||||||
 | 
					  of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					  GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					  along with this program; if not, write to the Free Software
 | 
				
			||||||
 | 
					  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define WIN32_LEAN_AND_MEAN
 | 
				
			||||||
 | 
					#include <Windows.h>
 | 
				
			||||||
 | 
					#include <ShellAPI.h>
 | 
				
			||||||
 | 
					#include "../../Library/Rainmeter.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					** Entry point.
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						HKEY hKey;
 | 
				
			||||||
 | 
						if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Rainmeter", 0, KEY_QUERY_VALUE | KEY_WOW64_32KEY, &hKey) == ERROR_SUCCESS)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							const DWORD size = MAX_PATH;
 | 
				
			||||||
 | 
							WCHAR buffer[size];
 | 
				
			||||||
 | 
							DWORD type = 0;
 | 
				
			||||||
 | 
							if (RegQueryValueEx(hKey, NULL , NULL, &type, (LPBYTE)buffer, (LPDWORD)&size) == ERROR_SUCCESS && type == REG_SZ)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								SetCurrentDirectory(buffer);
 | 
				
			||||||
 | 
								wcscat(buffer, L"\\Rainmeter.exe");
 | 
				
			||||||
 | 
								ShellExecute(NULL, L"open", buffer, lpCmdLine, NULL, SW_SHOWNORMAL);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							RegCloseKey(hKey);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										190
									
								
								Application/Launcher/Launcher.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								Application/Launcher/Launcher.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,190 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}</ProjectGuid>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <Import Project="$(SolutionDir)\Rainmeter.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					    <PlatformToolset>$(COMPILER64)</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					    <PlatformToolset>$(COMPILER64)</PlatformToolset>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
 | 
				
			||||||
 | 
					    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)TestBench\x32\$(Configuration)\</OutDir>
 | 
				
			||||||
 | 
					    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\x32\$(Configuration)\</IntDir>
 | 
				
			||||||
 | 
					    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
				
			||||||
 | 
					    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)TestBench\x64\$(Configuration)\</OutDir>
 | 
				
			||||||
 | 
					    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\x64\$(Configuration)\</IntDir>
 | 
				
			||||||
 | 
					    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 | 
				
			||||||
 | 
					    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)TestBench\x32\$(Configuration)\</OutDir>
 | 
				
			||||||
 | 
					    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\x32\$(Configuration)\</IntDir>
 | 
				
			||||||
 | 
					    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)TestBench\x64\$(Configuration)\</OutDir>
 | 
				
			||||||
 | 
					    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\x64\$(Configuration)\</IntDir>
 | 
				
			||||||
 | 
					    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Launcher</TargetName>
 | 
				
			||||||
 | 
					    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Launcher</TargetName>
 | 
				
			||||||
 | 
					    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Launcher</TargetName>
 | 
				
			||||||
 | 
					    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Launcher</TargetName>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4018;4090;4114;4267;4351;4786;4800;4996</DisableSpecificWarnings>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ResourceCompile>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <Culture>0x0409</Culture>
 | 
				
			||||||
 | 
					    </ResourceCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <OutputFile>../../TestBench/x32/Debug/Launcher.exe</OutputFile>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Windows</SubSystem>
 | 
				
			||||||
 | 
					      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
 | 
				
			||||||
 | 
					      <TargetMachine>MachineX86</TargetMachine>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4018;4090;4114;4267;4351;4786;4800;4996</DisableSpecificWarnings>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ResourceCompile>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_DEBUG;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <Culture>0x0409</Culture>
 | 
				
			||||||
 | 
					    </ResourceCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <OutputFile>../../TestBench/x64/Debug/Launcher.exe</OutputFile>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Windows</SubSystem>
 | 
				
			||||||
 | 
					      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
 | 
				
			||||||
 | 
					      <TargetMachine>MachineX64</TargetMachine>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <Optimization>MaxSpeed</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4018;4090;4114;4267;4351;4786;4800;4996</DisableSpecificWarnings>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ResourceCompile>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <Culture>0x0409</Culture>
 | 
				
			||||||
 | 
					    </ResourceCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <OutputFile>../../TestBench/x32/Release/Launcher.exe</OutputFile>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>..\Library\x32\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					      <SubSystem>Windows</SubSystem>
 | 
				
			||||||
 | 
					      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
 | 
				
			||||||
 | 
					      <TargetMachine>MachineX86</TargetMachine>
 | 
				
			||||||
 | 
					      <MergeSections>.rdata=.text</MergeSections>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <AdditionalOptions>/GA %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					      <Optimization>MaxSpeed</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4018;4090;4114;4267;4351;4786;4800;4996</DisableSpecificWarnings>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ResourceCompile>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>NDEBUG;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <Culture>0x0409</Culture>
 | 
				
			||||||
 | 
					    </ResourceCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <OutputFile>../../TestBench/x64/Release/Launcher.exe</OutputFile>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>..\Library\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					      <SubSystem>Windows</SubSystem>
 | 
				
			||||||
 | 
					      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
 | 
				
			||||||
 | 
					      <TargetMachine>MachineX64</TargetMachine>
 | 
				
			||||||
 | 
					      <MergeSections>.rdata=.text</MergeSections>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="Launcher.cpp" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										22
									
								
								Application/Launcher/Launcher.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Application/Launcher/Launcher.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{22670730-eb79-4df9-bed9-27fff1350132}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{774a1827-ac91-40b9-ad18-8a3d68983c64}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hpp;hxx;hm;inl</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{a4963a10-e359-400f-86fa-bdce98dd5dc2}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="Launcher.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
@@ -506,6 +506,11 @@ FunctionEnd
 | 
				
			|||||||
	File "..\..\TestBench\${DIR}\Release\Rainmeter.dll"
 | 
						File "..\..\TestBench\${DIR}\Release\Rainmeter.dll"
 | 
				
			||||||
	File "..\..\TestBench\${DIR}\Release\SkinInstaller.exe"
 | 
						File "..\..\TestBench\${DIR}\Release\SkinInstaller.exe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						${If} $InstallPortable != 1
 | 
				
			||||||
 | 
							File "..\..\TestBench\${DIR}\Release\Launcher.exe"
 | 
				
			||||||
 | 
							SetFileAttributes "$INSTDIR\Launcher.exe" HIDDEN
 | 
				
			||||||
 | 
						${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SetOutPath "$INSTDIR\Plugins"
 | 
						SetOutPath "$INSTDIR\Plugins"
 | 
				
			||||||
	File /x *Example*.dll "..\..\TestBench\${DIR}\Release\Plugins\*.dll"
 | 
						File /x *Example*.dll "..\..\TestBench\${DIR}\Release\Plugins\*.dll"
 | 
				
			||||||
!macroend
 | 
					!macroend
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -911,7 +911,7 @@ int CRainmeter::Initialize(LPCWSTR iniPath)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create user skins, themes, addons, and plugins folders if needed
 | 
						// Create user skins, themes, addons, and plugins folders if needed
 | 
				
			||||||
	CreateComponentFolders();
 | 
						CreateComponentFolders(bDefaultIniLocation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create a default Rainmeter.ini file if needed
 | 
						// Create a default Rainmeter.ini file if needed
 | 
				
			||||||
	if (_waccess(iniFile, 0) == -1)
 | 
						if (_waccess(iniFile, 0) == -1)
 | 
				
			||||||
@@ -1180,7 +1180,7 @@ void CRainmeter::CreateDataFile()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CRainmeter::CreateComponentFolders()
 | 
					void CRainmeter::CreateComponentFolders(bool defaultIniLocation)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (CreateDirectory(m_SkinPath.c_str(), NULL))
 | 
						if (CreateDirectory(m_SkinPath.c_str(), NULL))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -1200,23 +1200,37 @@ void CRainmeter::CreateComponentFolders()
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	path = GetUserPluginPath();
 | 
						if (defaultIniLocation)
 | 
				
			||||||
	if (_waccess(path.c_str(), 0) == -1)
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		std::wstring from = GetDefaultPluginPath();
 | 
							path = GetUserPluginPath();
 | 
				
			||||||
		if (_waccess(from.c_str(), 0) != -1)
 | 
							if (_waccess(path.c_str(), 0) == -1)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			CSystem::CopyFiles(from, m_SettingsPath);
 | 
								std::wstring from = GetDefaultPluginPath();
 | 
				
			||||||
 | 
								if (_waccess(from.c_str(), 0) != -1)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									CSystem::CopyFiles(from, m_SettingsPath);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	path = GetAddonPath();
 | 
							path = GetAddonPath();
 | 
				
			||||||
	if (_waccess(path.c_str(), 0) == -1)
 | 
							if (_waccess(path.c_str(), 0) == -1)
 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		std::wstring from = GetDefaultAddonPath();
 | 
					 | 
				
			||||||
		if (_waccess(from.c_str(), 0) != -1)
 | 
					 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			CSystem::CopyFiles(from, m_SettingsPath);
 | 
								std::wstring from = GetDefaultAddonPath();
 | 
				
			||||||
 | 
								if (_waccess(from.c_str(), 0) != -1)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									CSystem::CopyFiles(from, m_SettingsPath);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							path = m_SettingsPath;
 | 
				
			||||||
 | 
							path += L"Rainmeter.exe";
 | 
				
			||||||
 | 
							if (_waccess(path.c_str(), 0) == -1)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								// Create a hidden dummy Rainmeter.exe into SettingsPath for old addon
 | 
				
			||||||
 | 
								// using relative path to Rainmeter.exe
 | 
				
			||||||
 | 
								std::wstring from = m_Path + L"Launcher.exe";
 | 
				
			||||||
 | 
								CSystem::CopyFiles(from, path);
 | 
				
			||||||
 | 
								SetFileAttributes(path.c_str(), FILE_ATTRIBUTE_HIDDEN);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -257,7 +257,7 @@ private:
 | 
				
			|||||||
	void CreateMonitorMenu(HMENU monitorMenu, CMeterWindow* meterWindow);
 | 
						void CreateMonitorMenu(HMENU monitorMenu, CMeterWindow* meterWindow);
 | 
				
			||||||
	void CreateOptionsFile();
 | 
						void CreateOptionsFile();
 | 
				
			||||||
	void CreateDataFile();
 | 
						void CreateDataFile();
 | 
				
			||||||
	void CreateComponentFolders();
 | 
						void CreateComponentFolders(bool defaultIniLocation);
 | 
				
			||||||
	void SetLogging(bool logging);
 | 
						void SetLogging(bool logging);
 | 
				
			||||||
	void TestSettingsFile(bool bDefaultIniLocation);
 | 
						void TestSettingsFile(bool bDefaultIniLocation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Application", "Application\
 | 
				
			|||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Language", "Language\Language.vcxproj", "{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Language", "Language\Language.vcxproj", "{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Launcher", "Application\Launcher\Launcher.vcxproj", "{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library", "Library\Library.vcxproj", "{BE9D2400-7F1C-49D6-8498-5CE495491AD6}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library", "Library\Library.vcxproj", "{BE9D2400-7F1C-49D6-8498-5CE495491AD6}"
 | 
				
			||||||
	ProjectSection(ProjectDependencies) = postProject
 | 
						ProjectSection(ProjectDependencies) = postProject
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A} = {6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A} = {6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}
 | 
				
			||||||
@@ -80,6 +82,14 @@ Global
 | 
				
			|||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.Build.0 = Release|Win32
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.ActiveCfg = Release|x64
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.Build.0 = Release|x64
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.Build.0 = Debug|Win32
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.ActiveCfg = Debug|x64
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Application", "Application\
 | 
				
			|||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Language", "Language\Language.vcxproj", "{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Language", "Language\Language.vcxproj", "{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Launcher", "Application\Launcher\Launcher.vcxproj", "{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library", "Library\Library.vcxproj", "{BE9D2400-7F1C-49D6-8498-5CE495491AD6}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library", "Library\Library.vcxproj", "{BE9D2400-7F1C-49D6-8498-5CE495491AD6}"
 | 
				
			||||||
	ProjectSection(ProjectDependencies) = postProject
 | 
						ProjectSection(ProjectDependencies) = postProject
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A} = {6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A} = {6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}
 | 
				
			||||||
@@ -75,6 +77,14 @@ Global
 | 
				
			|||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.Build.0 = Release|Win32
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.ActiveCfg = Release|x64
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
		{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.Build.0 = Release|x64
 | 
							{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{A50FCF58-CDEA-41A9-B885-4C31E9E2859F}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.Build.0 = Debug|Win32
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
		{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.ActiveCfg = Debug|x64
 | 
							{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user