├── Elevate.sdf ├── Elevate.suo ├── ShellCtxMenu.reg ├── Elevate ├── Elevate.aps ├── Elevate.vcxproj.user ├── resource.h ├── stdafx.h ├── Elevate.vcxproj.filters ├── Elevate.rc ├── main.c ├── Elevate.vcproj └── Elevate.vcxproj ├── README.md ├── LICENSE.md └── Elevate.sln /Elevate.sdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpassing/elevate/HEAD/Elevate.sdf -------------------------------------------------------------------------------- /Elevate.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpassing/elevate/HEAD/Elevate.suo -------------------------------------------------------------------------------- /ShellCtxMenu.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpassing/elevate/HEAD/ShellCtxMenu.reg -------------------------------------------------------------------------------- /Elevate/Elevate.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpassing/elevate/HEAD/Elevate/Elevate.aps -------------------------------------------------------------------------------- /Elevate/Elevate.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | elevate 2 | ======= 3 | 4 | This tool allows you to start a program with elevated privileges from the command line. See [1] for details. 5 | 6 | 7 | [1] http://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/ 8 | -------------------------------------------------------------------------------- /Elevate/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Elevate.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /Elevate/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /*---------------------------------------------------------------------- 4 | * Copyright: 5 | * Johannes Passing (johannes.passing@googlemail.com) 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with this library; if not, write to the Free Software 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | */ 21 | 22 | #define _WIN32_WINNT _WIN32_WINNT_VISTA 23 | #define NTDDI_VERSION NTDDI_VISTA 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include -------------------------------------------------------------------------------- /Elevate.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Elevate", "Elevate\Elevate.vcxproj", "{D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|x64 = Debug|x64 9 | Debug|x86 = Debug|x86 10 | Release|x64 = Release|x64 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Debug|x64.ActiveCfg = Debug|x64 15 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Debug|x64.Build.0 = Debug|x64 16 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Debug|x86.ActiveCfg = Debug|Win32 17 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Debug|x86.Build.0 = Debug|Win32 18 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Release|x64.ActiveCfg = Release|x64 19 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Release|x64.Build.0 = Release|x64 20 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Release|x86.ActiveCfg = Release|Win32 21 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C}.Release|x86.Build.0 = Release|Win32 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /Elevate/Elevate.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | Header Files 28 | 29 | 30 | 31 | 32 | Resource Files 33 | 34 | 35 | -------------------------------------------------------------------------------- /Elevate/Elevate.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // German (Germany) resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) 19 | #ifdef _WIN32 20 | LANGUAGE LANG_GERMAN, SUBLANG_GERMAN 21 | #pragma code_page(1252) 22 | #endif //_WIN32 23 | 24 | #ifdef APSTUDIO_INVOKED 25 | ///////////////////////////////////////////////////////////////////////////// 26 | // 27 | // TEXTINCLUDE 28 | // 29 | 30 | 1 TEXTINCLUDE 31 | BEGIN 32 | "resource.h\0" 33 | END 34 | 35 | 2 TEXTINCLUDE 36 | BEGIN 37 | "#include ""afxres.h""\r\n" 38 | "\0" 39 | END 40 | 41 | 3 TEXTINCLUDE 42 | BEGIN 43 | "\r\n" 44 | "\0" 45 | END 46 | 47 | #endif // APSTUDIO_INVOKED 48 | 49 | 50 | ///////////////////////////////////////////////////////////////////////////// 51 | // 52 | // Version 53 | // 54 | 55 | VS_VERSION_INFO VERSIONINFO 56 | FILEVERSION 1,0,0,2894 57 | PRODUCTVERSION 1,0,0,2894 58 | FILEFLAGSMASK 0x17L 59 | #ifdef _DEBUG 60 | FILEFLAGS 0x1L 61 | #else 62 | FILEFLAGS 0x0L 63 | #endif 64 | FILEOS 0x4L 65 | FILETYPE 0x1L 66 | FILESUBTYPE 0x0L 67 | BEGIN 68 | BLOCK "StringFileInfo" 69 | BEGIN 70 | BLOCK "000004b0" 71 | BEGIN 72 | VALUE "Comments", "Tool for elevating applications on the command line" 73 | VALUE "CompanyName", "Johannes Passing" 74 | VALUE "FileDescription", "Elevate" 75 | VALUE "FileVersion", "1, 0, 0, 2894" 76 | VALUE "InternalName", "Elevate" 77 | VALUE "LegalCopyright", "Copyright (C) 2007" 78 | VALUE "OriginalFilename", "Elevate.exe" 79 | VALUE "ProductName", "Elevate Application" 80 | VALUE "ProductVersion", "1, 0, 0, 2894" 81 | END 82 | END 83 | BLOCK "VarFileInfo" 84 | BEGIN 85 | VALUE "Translation", 0x0, 1200 86 | END 87 | END 88 | 89 | #endif // German (Germany) resources 90 | ///////////////////////////////////////////////////////////////////////////// 91 | 92 | 93 | 94 | #ifndef APSTUDIO_INVOKED 95 | ///////////////////////////////////////////////////////////////////////////// 96 | // 97 | // Generated from the TEXTINCLUDE 3 resource. 98 | // 99 | 100 | 101 | ///////////////////////////////////////////////////////////////////////////// 102 | #endif // not APSTUDIO_INVOKED 103 | 104 | -------------------------------------------------------------------------------- /Elevate/main.c: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | /*---------------------------------------------------------------------- 4 | * Purpose: 5 | * Execute a process on the command line with elevated rights on Vista 6 | * 7 | * Copyright: 8 | * Johannes Passing (johannes.passing@googlemail.com) 9 | * 10 | * This library is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * This library is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with this library; if not, write to the Free Software 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 | */ 24 | 25 | #define BANNER L"(c) 2007 - Johannes Passing - http://int3.de/\n\n" 26 | 27 | 28 | typedef struct _COMMAND_LINE_ARGS 29 | { 30 | BOOL ShowHelp; 31 | BOOL Wait; 32 | BOOL StartComspec; 33 | PCWSTR ApplicationName; 34 | PCWSTR CommandLine; 35 | } COMMAND_LINE_ARGS, *PCOMMAND_LINE_ARGS; 36 | 37 | INT Launch( 38 | __in PCWSTR ApplicationName, 39 | __in PCWSTR CommandLine, 40 | __in BOOL Wait 41 | ) 42 | { 43 | SHELLEXECUTEINFO Shex; 44 | ZeroMemory( &Shex, sizeof( SHELLEXECUTEINFO ) ); 45 | Shex.cbSize = sizeof( SHELLEXECUTEINFO ); 46 | Shex.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_NOCLOSEPROCESS; 47 | Shex.lpVerb = L"runas"; 48 | Shex.lpFile = ApplicationName; 49 | Shex.lpParameters = CommandLine; 50 | Shex.nShow = SW_SHOWNORMAL; 51 | 52 | if ( ! ShellExecuteEx( &Shex ) ) 53 | { 54 | DWORD Err = GetLastError(); 55 | fwprintf( 56 | stderr, 57 | L"%s could not be launched: %d\n", 58 | ApplicationName, 59 | Err ); 60 | return EXIT_FAILURE; 61 | } 62 | 63 | _ASSERTE( Shex.hProcess ); 64 | 65 | if ( Wait ) 66 | { 67 | WaitForSingleObject( Shex.hProcess, INFINITE ); 68 | } 69 | CloseHandle( Shex.hProcess ); 70 | return EXIT_SUCCESS; 71 | } 72 | 73 | INT DispatchCommand( 74 | __in PCOMMAND_LINE_ARGS Args 75 | ) 76 | { 77 | WCHAR AppNameBuffer[ MAX_PATH ]; 78 | WCHAR CmdLineBuffer[ MAX_PATH * 2 ]; 79 | 80 | if ( Args->ShowHelp ) 81 | { 82 | wprintf( 83 | BANNER 84 | L"Execute a process on the command line with elevated rights on Vista\n" 85 | L"\n" 86 | L"Usage: Elevate [-?|-wait|-k] prog [args]\n" 87 | L"-? - Shows this help\n" 88 | L"-wait - Waits until prog terminates\n" 89 | L"-k - Starts the the %%COMSPEC%% environment variable value and\n" 90 | L" executes prog in it (CMD.EXE, 4NT.EXE, etc.)\n" 91 | L"prog - The program to execute\n" 92 | L"args - Optional command line arguments to prog\n" ); 93 | 94 | return EXIT_SUCCESS; 95 | } 96 | 97 | if ( Args->StartComspec ) 98 | { 99 | // 100 | // Resolve COMSPEC 101 | // 102 | if ( 0 == GetEnvironmentVariable( L"COMSPEC", AppNameBuffer, _countof( AppNameBuffer ) ) ) 103 | { 104 | fwprintf( stderr, L"%%COMSPEC%% is not defined\n" ); 105 | return EXIT_FAILURE; 106 | } 107 | Args->ApplicationName = AppNameBuffer; 108 | 109 | // 110 | // Prepend /K and quote arguments 111 | // 112 | if ( FAILED( StringCchPrintf( 113 | CmdLineBuffer, 114 | _countof( CmdLineBuffer ), 115 | L"/K \"%s\"", 116 | Args->CommandLine ) ) ) 117 | { 118 | fwprintf( stderr, L"Creating command line failed\n" ); 119 | return EXIT_FAILURE; 120 | } 121 | Args->CommandLine = CmdLineBuffer; 122 | } 123 | 124 | //wprintf( L"App: %s,\nCmd: %s\n", Args->ApplicationName, Args->CommandLine ); 125 | return Launch( Args->ApplicationName, Args->CommandLine, Args->Wait ); 126 | } 127 | 128 | int __cdecl wmain( 129 | __in int Argc, 130 | __in WCHAR* Argv[] 131 | ) 132 | { 133 | OSVERSIONINFO OsVer; 134 | COMMAND_LINE_ARGS Args; 135 | INT Index; 136 | BOOL FlagsRead = FALSE; 137 | WCHAR CommandLineBuffer[ 260 ] = { 0 }; 138 | 139 | ZeroMemory( &OsVer, sizeof( OSVERSIONINFO ) ); 140 | OsVer.dwOSVersionInfoSize = sizeof( OSVERSIONINFO ); 141 | 142 | ZeroMemory( &Args, sizeof( COMMAND_LINE_ARGS ) ); 143 | Args.CommandLine = CommandLineBuffer; 144 | 145 | // 146 | // Check OS version 147 | // 148 | if ( GetVersionEx( &OsVer ) && 149 | OsVer.dwMajorVersion < 6 ) 150 | { 151 | fwprintf( stderr, L"This tool is for Windows Vista and above only.\n" ); 152 | return EXIT_FAILURE; 153 | } 154 | 155 | // 156 | // Parse command line 157 | // 158 | for ( Index = 1; Index < Argc; Index++ ) 159 | { 160 | if ( ! FlagsRead && 161 | ( Argv[ Index ][ 0 ] == L'-' || Argv[ Index ][ 0 ] == L'/' ) ) 162 | { 163 | PCWSTR FlagName = &Argv[ Index ][ 1 ]; 164 | if ( 0 == _wcsicmp( FlagName, L"?" ) ) 165 | { 166 | Args.ShowHelp = TRUE; 167 | } 168 | else if ( 0 == _wcsicmp( FlagName, L"wait" ) ) 169 | { 170 | Args.Wait = TRUE; 171 | } 172 | else if ( 0 == _wcsicmp( FlagName, L"k" ) ) 173 | { 174 | Args.StartComspec = TRUE; 175 | } 176 | else 177 | { 178 | fwprintf( stderr, L"Unrecognized Flag %s\n", FlagName ); 179 | return EXIT_FAILURE; 180 | } 181 | } 182 | else 183 | { 184 | FlagsRead = TRUE; 185 | if ( Args.ApplicationName == NULL && ! Args.StartComspec ) 186 | { 187 | Args.ApplicationName = Argv[ Index ]; 188 | } 189 | else 190 | { 191 | if ( FAILED( StringCchCat( 192 | CommandLineBuffer, 193 | _countof( CommandLineBuffer ), 194 | Argv[ Index ] ) ) || 195 | FAILED( StringCchCat( 196 | CommandLineBuffer, 197 | _countof( CommandLineBuffer ), 198 | L" " ) ) ) 199 | { 200 | fwprintf( stderr, L"Command Line too long\n" ); 201 | return EXIT_FAILURE; 202 | } 203 | } 204 | } 205 | } 206 | 207 | #ifdef _DEBUG 208 | wprintf( 209 | L"ShowHelp: %s\n" 210 | L"Wait: %s\n" 211 | L"StartComspec: %s\n" 212 | L"ApplicationName: %s\n" 213 | L"CommandLine: %s\n", 214 | Args.ShowHelp ? L"Y" : L"N", 215 | Args.Wait ? L"Y" : L"N", 216 | Args.StartComspec ? L"Y" : L"N", 217 | Args.ApplicationName, 218 | Args.CommandLine ); 219 | #endif 220 | 221 | // 222 | // Validate args 223 | // 224 | if ( Argc <= 1 ) 225 | { 226 | Args.ShowHelp = TRUE; 227 | } 228 | 229 | if ( ! Args.ShowHelp && 230 | ( ( Args.StartComspec && 0 == wcslen( Args.CommandLine ) ) || 231 | ( ! Args.StartComspec && Args.ApplicationName == NULL ) ) ) 232 | { 233 | fwprintf( stderr, L"Invalid arguments\n" ); 234 | return EXIT_FAILURE; 235 | } 236 | 237 | return DispatchCommand( &Args ); 238 | } 239 | 240 | -------------------------------------------------------------------------------- /Elevate/Elevate.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 17 | 18 | 19 | 20 | 21 | 28 | 31 | 34 | 37 | 40 | 43 | 58 | 61 | 64 | 67 | 74 | 77 | 80 | 83 | 86 | 89 | 92 | 95 | 98 | 99 | 106 | 109 | 112 | 115 | 118 | 122 | 137 | 140 | 143 | 146 | 153 | 156 | 159 | 162 | 165 | 168 | 171 | 174 | 177 | 178 | 186 | 189 | 192 | 195 | 198 | 201 | 213 | 216 | 219 | 222 | 231 | 234 | 237 | 240 | 243 | 246 | 249 | 252 | 255 | 256 | 264 | 267 | 270 | 273 | 276 | 280 | 292 | 295 | 298 | 301 | 310 | 313 | 316 | 319 | 322 | 325 | 328 | 331 | 334 | 335 | 336 | 337 | 338 | 339 | 344 | 347 | 348 | 349 | 354 | 357 | 358 | 361 | 362 | 363 | 368 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | -------------------------------------------------------------------------------- /Elevate/Elevate.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {D44F41E2-0CEE-4B9B-825D-1AEBF6DCAB1C} 23 | Elevate 24 | Win32Proj 25 | 26 | 27 | 28 | Application 29 | Unicode 30 | true 31 | 32 | 33 | Application 34 | Unicode 35 | 36 | 37 | Application 38 | Unicode 39 | true 40 | 41 | 42 | Application 43 | Unicode 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | <_ProjectFileVersion>10.0.40219.1 63 | $(SolutionDir)bin\x86\$(Configuration)\ 64 | $(SolutionDir)bin\x86\$(Configuration)\ 65 | true 66 | $(SolutionDir)bin\$(Platform)\$(Configuration)\ 67 | $(SolutionDir)bin\$(Platform)\$(Configuration)\ 68 | true 69 | $(SolutionDir)bin\x86\$(Configuration)\ 70 | $(SolutionDir)bin\x86\$(Configuration)\ 71 | false 72 | $(SolutionDir)bin\$(Platform)\$(Configuration)\ 73 | $(SolutionDir)bin\$(Platform)\$(Configuration)\ 74 | false 75 | 76 | 77 | 78 | Disabled 79 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 80 | true 81 | 82 | 83 | EnableFastChecks 84 | MultiThreadedDebug 85 | 86 | 87 | Level4 88 | EditAndContinue 89 | StdCall 90 | CompileAsC 91 | 92 | 93 | true 94 | Console 95 | MachineX86 96 | 97 | 98 | 99 | 100 | X64 101 | 102 | 103 | Disabled 104 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 105 | true 106 | 107 | 108 | EnableFastChecks 109 | MultiThreadedDebug 110 | 111 | 112 | Level4 113 | ProgramDatabase 114 | StdCall 115 | CompileAsC 116 | 117 | 118 | true 119 | Console 120 | MachineX64 121 | 122 | 123 | 124 | 125 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 126 | 127 | 128 | MultiThreaded 129 | 130 | 131 | Level4 132 | ProgramDatabase 133 | StdCall 134 | CompileAsC 135 | 136 | 137 | true 138 | Console 139 | true 140 | true 141 | MachineX86 142 | 143 | 144 | 145 | 146 | X64 147 | 148 | 149 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 150 | 151 | 152 | MultiThreaded 153 | 154 | 155 | Level4 156 | ProgramDatabase 157 | StdCall 158 | CompileAsC 159 | 160 | 161 | true 162 | Console 163 | true 164 | true 165 | MachineX64 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | --------------------------------------------------------------------------------