完成微信多开和打开计算器
parent
9fac130a24
commit
f1ffe592f3
|
@ -11,3 +11,7 @@ OfficeAssistant_msvc.VC.db
|
||||||
OfficeAssistant_msvc.v12.suo
|
OfficeAssistant_msvc.v12.suo
|
||||||
OfficeAssistant_msvc.sdf
|
OfficeAssistant_msvc.sdf
|
||||||
.vs/
|
.vs/
|
||||||
|
startcalc/Debug/
|
||||||
|
startcalc/Release/
|
||||||
|
wxdk/Debug/
|
||||||
|
wxdk/Release/
|
Binary file not shown.
|
@ -5,16 +5,40 @@ VisualStudioVersion = 14.0.25420.1
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeAssistant_msvc", "OfficeAssistant_msvc\OfficeAssistant_msvc.vcxproj", "{A49230DF-A869-4AA1-8ACA-3C7322530E46}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeAssistant_msvc", "OfficeAssistant_msvc\OfficeAssistant_msvc.vcxproj", "{A49230DF-A869-4AA1-8ACA-3C7322530E46}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxdk", "wxdk\wxdk.vcxproj", "{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "startcalc", "startcalc\startcalc.vcxproj", "{4433F5C3-0237-403B-A997-264E56C78F53}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
Debug|x86 = Debug|x86
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
Release|x86 = Release|x86
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Debug|x86.ActiveCfg = Debug|Win32
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Debug|x86.Build.0 = Debug|Win32
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Release|x64.ActiveCfg = Release|Win32
|
||||||
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Release|x86.ActiveCfg = Release|Win32
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Release|x86.ActiveCfg = Release|Win32
|
||||||
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Release|x86.Build.0 = Release|Win32
|
{A49230DF-A869-4AA1-8ACA-3C7322530E46}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Release|x64.Build.0 = Release|x64
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{4433F5C3-0237-403B-A997-264E56C78F53}.Release|x86.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -69,5 +69,8 @@ void MyButton::mouseReleaseEvent(QMouseEvent *event) {
|
||||||
checked=false;
|
checked=false;
|
||||||
else
|
else
|
||||||
checked=true;
|
checked=true;
|
||||||
|
if (text == "计算器") {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup />
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerCommandArguments>79c86fb12b36dfa33d1a537c9af100b4c7928a9c</LocalDebuggerCommandArguments>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<QtLastBackgroundBuild>2023-07-28T22:55:30.5913647Z</QtLastBackgroundBuild>
|
<QtLastBackgroundBuild>2023-07-29T21:43:00.7608665Z</QtLastBackgroundBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<QtLastBackgroundBuild>2023-07-28T22:55:31.6946123Z</QtLastBackgroundBuild>
|
<QtLastBackgroundBuild>2023-07-29T21:43:07.2652440Z</QtLastBackgroundBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
int WINAPI WinMain(
|
||||||
|
HINSTANCE hInstance,
|
||||||
|
HINSTANCE hPrevInstance,
|
||||||
|
PSTR nCmdLine,
|
||||||
|
int iCmdShow) {
|
||||||
|
WinExec("calc.exe", SW_SHOW);
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
#pragma once
|
||||||
|
#include <Windows.h>
|
||||||
|
typedef enum _SYSTEM_INFORMATION_CLASS {
|
||||||
|
SystemBasicInformation, // 0 Y N
|
||||||
|
SystemProcessorInformation, // 1 Y N
|
||||||
|
SystemPerformanceInformation, // 2 Y N
|
||||||
|
SystemTimeOfDayInformation, // 3 Y N
|
||||||
|
SystemNotImplemented1, // 4 Y N
|
||||||
|
SystemProcessesAndThreadsInformation, // 5 Y N
|
||||||
|
SystemCallCounts, // 6 Y N
|
||||||
|
SystemConfigurationInformation, // 7 Y N
|
||||||
|
SystemProcessorTimes, // 8 Y N
|
||||||
|
SystemGlobalFlag, // 9 Y Y
|
||||||
|
SystemNotImplemented2, // 10 Y N
|
||||||
|
SystemModuleInformation, // 11 Y N
|
||||||
|
SystemLockInformation, // 12 Y N
|
||||||
|
SystemNotImplemented3, // 13 Y N
|
||||||
|
SystemNotImplemented4, // 14 Y N
|
||||||
|
SystemNotImplemented5, // 15 Y N
|
||||||
|
SystemHandleInformation, // 16 Y N
|
||||||
|
SystemObjectInformation, // 17 Y N
|
||||||
|
SystemPagefileInformation, // 18 Y N
|
||||||
|
SystemInstructionEmulationCounts, // 19 Y N
|
||||||
|
SystemInvalidInfoClass1, // 20
|
||||||
|
SystemCacheInformation, // 21 Y Y
|
||||||
|
SystemPoolTagInformation, // 22 Y N
|
||||||
|
SystemProcessorStatistics, // 23 Y N
|
||||||
|
SystemDpcInformation, // 24 Y Y
|
||||||
|
SystemNotImplemented6, // 25 Y N
|
||||||
|
SystemLoadImage, // 26 N Y
|
||||||
|
SystemUnloadImage, // 27 N Y
|
||||||
|
SystemTimeAdjustment, // 28 Y Y
|
||||||
|
SystemNotImplemented7, // 29 Y N
|
||||||
|
SystemNotImplemented8, // 30 Y N
|
||||||
|
SystemNotImplemented9, // 31 Y N
|
||||||
|
SystemCrashDumpInformation, // 32 Y N
|
||||||
|
SystemExceptionInformation, // 33 Y N
|
||||||
|
SystemCrashDumpStateInformation, // 34 Y Y/N
|
||||||
|
SystemKernelDebuggerInformation, // 35 Y N
|
||||||
|
SystemContextSwitchInformation, // 36 Y N
|
||||||
|
SystemRegistryQuotaInformation, // 37 Y Y
|
||||||
|
SystemLoadAndCallImage, // 38 N Y
|
||||||
|
SystemPrioritySeparation, // 39 N Y
|
||||||
|
SystemNotImplemented10, // 40 Y N
|
||||||
|
SystemNotImplemented11, // 41 Y N
|
||||||
|
SystemInvalidInfoClass2, // 42
|
||||||
|
SystemInvalidInfoClass3, // 43
|
||||||
|
SystemTimeZoneInformation, // 44 Y N
|
||||||
|
SystemLookasideInformation, // 45 Y N
|
||||||
|
SystemSetTimeSlipEvent, // 46 N Y
|
||||||
|
SystemCreateSession, // 47 N Y
|
||||||
|
SystemDeleteSession, // 48 N Y
|
||||||
|
SystemInvalidInfoClass4, // 49
|
||||||
|
SystemRangeStartInformation, // 50 Y N
|
||||||
|
SystemVerifierInformation, // 51 Y Y
|
||||||
|
SystemAddVerifier, // 52 N Y
|
||||||
|
SystemSessionProcessesInformation // 53 Y N
|
||||||
|
} SYSTEM_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef NTSTATUS
|
||||||
|
(NTAPI *ZWQUERYSYSTEMINFORMATION)(
|
||||||
|
IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
|
||||||
|
OUT PVOID SystemInformation,
|
||||||
|
IN ULONG SystemInformationLength,
|
||||||
|
OUT PULONG ReturnLength OPTIONAL
|
||||||
|
);
|
||||||
|
typedef enum _OBJECT_INFORMATION_CLASS {
|
||||||
|
ObjectBasicInformation,
|
||||||
|
ObjectNameInformation,
|
||||||
|
ObjectTypeInformation,
|
||||||
|
ObjectAllInformation,
|
||||||
|
ObjectDataInformation
|
||||||
|
} OBJECT_INFORMATION_CLASS;
|
||||||
|
typedef NTSTATUS(NTAPI *NTQUERYOBJECT)(
|
||||||
|
_In_opt_ HANDLE Handle,
|
||||||
|
_In_ OBJECT_INFORMATION_CLASS ObjectInformationClass,
|
||||||
|
_Out_opt_ PVOID ObjectInformation,
|
||||||
|
_In_ ULONG ObjectInformationLength,
|
||||||
|
_Out_opt_ PULONG ReturnLength
|
||||||
|
);
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="14.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="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{4433F5C3-0237-403B-A997-264E56C78F53}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>startcalc</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -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="源文件">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="头文件">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="资源文件">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,294 @@
|
||||||
|
#define KEY "79c86fb12b36dfa33d1a537c9af100b4c7928a9c"
|
||||||
|
#include "openwechat.h"
|
||||||
|
#include <string>
|
||||||
|
#include <wchar.h>
|
||||||
|
#include <cstring>
|
||||||
|
#include <vector>
|
||||||
|
#include <tlhelp32.h>
|
||||||
|
ZWQUERYSYSTEMINFORMATION ZwQuerySystemInformation = (ZWQUERYSYSTEMINFORMATION)GetProcAddress(GetModuleHandleA("ntdll.dll"), "ZwQuerySystemInformation");
|
||||||
|
NTQUERYOBJECT NtQueryObject = (NTQUERYOBJECT)GetProcAddress(
|
||||||
|
GetModuleHandleA("ntdll.dll"), "NtQueryObject");
|
||||||
|
BOOL IsTargetPid(DWORD Pid, std::vector<DWORD> Pids, int num)
|
||||||
|
{
|
||||||
|
for (auto pid:Pids)
|
||||||
|
{
|
||||||
|
if (Pid == pid)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
HANDLE DuplicateHandleEx(DWORD pid, HANDLE h, DWORD flags)
|
||||||
|
{
|
||||||
|
HANDLE hHandle = NULL;
|
||||||
|
|
||||||
|
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
|
||||||
|
if (hProc)
|
||||||
|
{
|
||||||
|
if (!DuplicateHandle(hProc,
|
||||||
|
(HANDLE)h, GetCurrentProcess(),
|
||||||
|
&hHandle, 0, FALSE, /*DUPLICATE_SAME_ACCESS*/flags))
|
||||||
|
{
|
||||||
|
hHandle = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle(hProc);
|
||||||
|
return hHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO {
|
||||||
|
USHORT UniqueProcessId;
|
||||||
|
USHORT CreatorBackTraceIndex;
|
||||||
|
UCHAR ObjectTypeIndex;
|
||||||
|
UCHAR HandleAttributes;
|
||||||
|
USHORT HandleValue;
|
||||||
|
PVOID Object;
|
||||||
|
ULONG GrantedAccess;
|
||||||
|
} SYSTEM_HANDLE_TABLE_ENTRY_INFO, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO;
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
USHORT Length;
|
||||||
|
USHORT MaxLen;
|
||||||
|
USHORT *Buffer;
|
||||||
|
}UNICODE_STRING, *PUNICODE_STRING;
|
||||||
|
typedef struct _OBJECT_NAME_INFORMATION {
|
||||||
|
UNICODE_STRING Name;
|
||||||
|
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _SYSTEM_HANDLE_INFORMATION1 {
|
||||||
|
ULONG NumberOfHandles;
|
||||||
|
SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
|
||||||
|
} SYSTEM_HANDLE_INFORMATION1, *PSYSTEM_HANDLE_INFORMATION1;
|
||||||
|
|
||||||
|
DWORD qureyProcessId(std::wstring name, std::vector<DWORD> *pids) {
|
||||||
|
DWORD pid;
|
||||||
|
PROCESSENTRY32 entry;
|
||||||
|
entry.dwSize = sizeof(PROCESSENTRY32);
|
||||||
|
|
||||||
|
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
|
||||||
|
|
||||||
|
if (Process32First(snapshot, &entry) == TRUE)
|
||||||
|
{
|
||||||
|
while (Process32Next(snapshot, &entry) == TRUE)
|
||||||
|
{
|
||||||
|
if (std::wstring(entry.szExeFile) == name) {
|
||||||
|
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
|
||||||
|
pid = GetProcessId(hProcess);
|
||||||
|
CloseHandle(hProcess);
|
||||||
|
pids->emplace_back(pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CloseHandle(snapshot);
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
BOOL ElevatePrivileges()
|
||||||
|
{
|
||||||
|
HANDLE hToken;
|
||||||
|
TOKEN_PRIVILEGES tkp;
|
||||||
|
tkp.PrivilegeCount = 1;
|
||||||
|
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
|
||||||
|
return FALSE;
|
||||||
|
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid);
|
||||||
|
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
|
||||||
|
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
int PatchWeChat()
|
||||||
|
{
|
||||||
|
DWORD dwSize = 0;
|
||||||
|
POBJECT_NAME_INFORMATION pNameInfo;
|
||||||
|
POBJECT_NAME_INFORMATION pNameType;
|
||||||
|
PVOID pbuffer = NULL;
|
||||||
|
NTSTATUS Status;
|
||||||
|
int nIndex = 0;
|
||||||
|
DWORD dwFlags = 0;
|
||||||
|
char szType[128] = { 0 };
|
||||||
|
char szName[512] = { 0 };
|
||||||
|
PSYSTEM_HANDLE_INFORMATION1 pHandleInfo = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
ElevatePrivileges();
|
||||||
|
std::vector<DWORD> pids;
|
||||||
|
DWORD Num = qureyProcessId(L"WeChat.exe", &pids);
|
||||||
|
if (Num == 0)
|
||||||
|
{
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ZwQuerySystemInformation)
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pbuffer = VirtualAlloc(NULL, 0x1000, MEM_COMMIT, PAGE_READWRITE);
|
||||||
|
|
||||||
|
if (!pbuffer)
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = ZwQuerySystemInformation(SystemHandleInformation, pbuffer, 0x1000, &dwSize);
|
||||||
|
|
||||||
|
if (Status<0)
|
||||||
|
{
|
||||||
|
if ((LONG)0xC0000004L != Status)
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 这里大家可以保证程序的正确性使用循环分配稍好
|
||||||
|
if (NULL != pbuffer)
|
||||||
|
{
|
||||||
|
VirtualFree(pbuffer, 0, MEM_RELEASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dwSize * 2 > 0x4000000) // MAXSIZE
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pbuffer = VirtualAlloc(NULL, dwSize * 2, MEM_COMMIT, PAGE_READWRITE);
|
||||||
|
|
||||||
|
if (!pbuffer)
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = ZwQuerySystemInformation(SystemHandleInformation, pbuffer, dwSize * 2, NULL);
|
||||||
|
|
||||||
|
if (Status<0)
|
||||||
|
{
|
||||||
|
goto Exit0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pHandleInfo = (PSYSTEM_HANDLE_INFORMATION1)pbuffer;
|
||||||
|
|
||||||
|
for (nIndex = 0; nIndex < pHandleInfo->NumberOfHandles; nIndex++)
|
||||||
|
{
|
||||||
|
if (IsTargetPid(pHandleInfo->Handles[nIndex].UniqueProcessId, pids, Num))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
HANDLE hHandle = DuplicateHandleEx(pHandleInfo->Handles[nIndex].UniqueProcessId,
|
||||||
|
(HANDLE)pHandleInfo->Handles[nIndex].HandleValue,
|
||||||
|
DUPLICATE_SAME_ACCESS
|
||||||
|
);
|
||||||
|
if (hHandle == NULL) continue;
|
||||||
|
|
||||||
|
Status = NtQueryObject(hHandle, ObjectNameInformation, szName, 512, &dwFlags);
|
||||||
|
|
||||||
|
if (Status<0)
|
||||||
|
{
|
||||||
|
CloseHandle(hHandle);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = NtQueryObject(hHandle, ObjectTypeInformation, szType, 128, &dwFlags);
|
||||||
|
|
||||||
|
if (Status<0)
|
||||||
|
{
|
||||||
|
CloseHandle(hHandle);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
pNameInfo = (POBJECT_NAME_INFORMATION)szName;
|
||||||
|
pNameType = (POBJECT_NAME_INFORMATION)szType;
|
||||||
|
|
||||||
|
WCHAR TypName[1024] = { 0 };
|
||||||
|
WCHAR Name[1024] = { 0 };
|
||||||
|
|
||||||
|
wcsncpy_s(TypName, (WCHAR*)pNameType->Name.Buffer, pNameType->Name.Length / 2);
|
||||||
|
wcsncpy_s(Name, (WCHAR*)pNameInfo->Name.Buffer, pNameInfo->Name.Length / 2);
|
||||||
|
|
||||||
|
// 匹配是否为需要关闭的句柄名称
|
||||||
|
if (0 == wcscmp(TypName, L"Mutant"))
|
||||||
|
{
|
||||||
|
//WeChat_aj5r8jpxt_Instance_Identity_Mutex_Name
|
||||||
|
//if (wcsstr(Name, L"_WeChat_App_Instance_Identity_Mutex_Name"))
|
||||||
|
if (wcsstr(Name, L"_WeChat_") &&
|
||||||
|
wcsstr(Name, L"_Instance_Identity_Mutex_Name"))
|
||||||
|
{
|
||||||
|
CloseHandle(hHandle);
|
||||||
|
|
||||||
|
hHandle = DuplicateHandleEx(pHandleInfo->Handles[nIndex].UniqueProcessId,
|
||||||
|
(HANDLE)pHandleInfo->Handles[nIndex].HandleValue,
|
||||||
|
DUPLICATE_CLOSE_SOURCE
|
||||||
|
);
|
||||||
|
|
||||||
|
if (hHandle)
|
||||||
|
{
|
||||||
|
ret = ERROR_SUCCESS;
|
||||||
|
CloseHandle(hHandle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = GetLastError();
|
||||||
|
}
|
||||||
|
|
||||||
|
//goto Exit0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle(hHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Exit0:
|
||||||
|
if (NULL != pbuffer)
|
||||||
|
{
|
||||||
|
VirtualFree(pbuffer, 0, MEM_RELEASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
int WINAPI WinMain(
|
||||||
|
HINSTANCE hInstance,
|
||||||
|
HINSTANCE hPrevInstance,
|
||||||
|
PSTR nCmdLine,
|
||||||
|
int iCmdShow
|
||||||
|
) {
|
||||||
|
if (strcmp(nCmdLine, KEY) != 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
int ret = 1;
|
||||||
|
PatchWeChat();
|
||||||
|
WCHAR Path[1024];
|
||||||
|
HKEY hKey = NULL;
|
||||||
|
if (ERROR_SUCCESS != RegOpenKey(HKEY_CURRENT_USER, L"Software\\Tencent\\WeChat", &hKey))
|
||||||
|
{
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD Type = REG_SZ;
|
||||||
|
// WCHAR Path[MAX_PATH] = { 0 };
|
||||||
|
DWORD cbData = MAX_PATH * sizeof(WCHAR);
|
||||||
|
if (ERROR_SUCCESS != RegQueryValueEx(hKey, L"InstallPath", 0, &Type, (LPBYTE)Path, &cbData))
|
||||||
|
{
|
||||||
|
ret = GetLastError();
|
||||||
|
if (hKey)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
WCHAR exe[1024];
|
||||||
|
wcscpy_s(exe, Path);
|
||||||
|
wcscat_s(exe, L"\\WeChat.exe");
|
||||||
|
|
||||||
|
ShellExecute(GetDesktopWindow(), L"open", exe, L"", Path, SW_SHOW);
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
#pragma once
|
||||||
|
#include <Windows.h>
|
||||||
|
typedef enum _SYSTEM_INFORMATION_CLASS {
|
||||||
|
SystemBasicInformation, // 0 Y N
|
||||||
|
SystemProcessorInformation, // 1 Y N
|
||||||
|
SystemPerformanceInformation, // 2 Y N
|
||||||
|
SystemTimeOfDayInformation, // 3 Y N
|
||||||
|
SystemNotImplemented1, // 4 Y N
|
||||||
|
SystemProcessesAndThreadsInformation, // 5 Y N
|
||||||
|
SystemCallCounts, // 6 Y N
|
||||||
|
SystemConfigurationInformation, // 7 Y N
|
||||||
|
SystemProcessorTimes, // 8 Y N
|
||||||
|
SystemGlobalFlag, // 9 Y Y
|
||||||
|
SystemNotImplemented2, // 10 Y N
|
||||||
|
SystemModuleInformation, // 11 Y N
|
||||||
|
SystemLockInformation, // 12 Y N
|
||||||
|
SystemNotImplemented3, // 13 Y N
|
||||||
|
SystemNotImplemented4, // 14 Y N
|
||||||
|
SystemNotImplemented5, // 15 Y N
|
||||||
|
SystemHandleInformation, // 16 Y N
|
||||||
|
SystemObjectInformation, // 17 Y N
|
||||||
|
SystemPagefileInformation, // 18 Y N
|
||||||
|
SystemInstructionEmulationCounts, // 19 Y N
|
||||||
|
SystemInvalidInfoClass1, // 20
|
||||||
|
SystemCacheInformation, // 21 Y Y
|
||||||
|
SystemPoolTagInformation, // 22 Y N
|
||||||
|
SystemProcessorStatistics, // 23 Y N
|
||||||
|
SystemDpcInformation, // 24 Y Y
|
||||||
|
SystemNotImplemented6, // 25 Y N
|
||||||
|
SystemLoadImage, // 26 N Y
|
||||||
|
SystemUnloadImage, // 27 N Y
|
||||||
|
SystemTimeAdjustment, // 28 Y Y
|
||||||
|
SystemNotImplemented7, // 29 Y N
|
||||||
|
SystemNotImplemented8, // 30 Y N
|
||||||
|
SystemNotImplemented9, // 31 Y N
|
||||||
|
SystemCrashDumpInformation, // 32 Y N
|
||||||
|
SystemExceptionInformation, // 33 Y N
|
||||||
|
SystemCrashDumpStateInformation, // 34 Y Y/N
|
||||||
|
SystemKernelDebuggerInformation, // 35 Y N
|
||||||
|
SystemContextSwitchInformation, // 36 Y N
|
||||||
|
SystemRegistryQuotaInformation, // 37 Y Y
|
||||||
|
SystemLoadAndCallImage, // 38 N Y
|
||||||
|
SystemPrioritySeparation, // 39 N Y
|
||||||
|
SystemNotImplemented10, // 40 Y N
|
||||||
|
SystemNotImplemented11, // 41 Y N
|
||||||
|
SystemInvalidInfoClass2, // 42
|
||||||
|
SystemInvalidInfoClass3, // 43
|
||||||
|
SystemTimeZoneInformation, // 44 Y N
|
||||||
|
SystemLookasideInformation, // 45 Y N
|
||||||
|
SystemSetTimeSlipEvent, // 46 N Y
|
||||||
|
SystemCreateSession, // 47 N Y
|
||||||
|
SystemDeleteSession, // 48 N Y
|
||||||
|
SystemInvalidInfoClass4, // 49
|
||||||
|
SystemRangeStartInformation, // 50 Y N
|
||||||
|
SystemVerifierInformation, // 51 Y Y
|
||||||
|
SystemAddVerifier, // 52 N Y
|
||||||
|
SystemSessionProcessesInformation // 53 Y N
|
||||||
|
} SYSTEM_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef NTSTATUS
|
||||||
|
(NTAPI *ZWQUERYSYSTEMINFORMATION)(
|
||||||
|
IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
|
||||||
|
OUT PVOID SystemInformation,
|
||||||
|
IN ULONG SystemInformationLength,
|
||||||
|
OUT PULONG ReturnLength OPTIONAL
|
||||||
|
);
|
||||||
|
typedef enum _OBJECT_INFORMATION_CLASS {
|
||||||
|
ObjectBasicInformation,
|
||||||
|
ObjectNameInformation,
|
||||||
|
ObjectTypeInformation,
|
||||||
|
ObjectAllInformation,
|
||||||
|
ObjectDataInformation
|
||||||
|
} OBJECT_INFORMATION_CLASS;
|
||||||
|
typedef NTSTATUS(NTAPI *NTQUERYOBJECT)(
|
||||||
|
_In_opt_ HANDLE Handle,
|
||||||
|
_In_ OBJECT_INFORMATION_CLASS ObjectInformationClass,
|
||||||
|
_Out_opt_ PVOID ObjectInformation,
|
||||||
|
_In_ ULONG ObjectInformationLength,
|
||||||
|
_Out_opt_ PULONG ReturnLength
|
||||||
|
);
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="14.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="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{EB7371E8-27B1-4A15-9EE5-7BE1BC109FFB}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>wxdk</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140_xp</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\startcalc\openwechat.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="源文件">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="头文件">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="资源文件">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="main.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\startcalc\openwechat.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerCommandArguments>79c86fb12b36dfa33d1a537c9af100b4c7928a9c</LocalDebuggerCommandArguments>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
Loading…
Reference in New Issue