최초 등록

This commit is contained in:
jhlee
2020-03-09 11:51:53 +09:00
commit d15e20f6ad
186 changed files with 3551 additions and 0 deletions

BIN
.vs/L2M_MACRO/v16/.suo Normal file

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Build/DLL/OpenCvSharp.dll Normal file

Binary file not shown.

BIN
Build/L2M_MACRO.exe Normal file

Binary file not shown.

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

BIN
Build/L2M_MACRO.pdb Normal file

Binary file not shown.

BIN
Build/OpenCvSharp.Blob.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Build/OpenCvSharp.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,251 @@
// adddevice.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <initguid.h>
#include <setupapi.h>
#include <stdio.h>
#include ".\..\common\common.h"
#include ".\..\common\hidmapper.h"
#include ".\..\common\driverapi.h"
#pragma comment(lib,"setupapi.lib")
#define LEDSHOWTEST
int main(int argc, char* argv[])
{
HANDLE hDevice;
BOOLEAN bRet = FALSE;
int count = 0;
HIDKEYCODE HKeyCode = { 0, }; // 배열로 정의해서 한번에 여러개의 엔트리를 보내는것도 가능하다
HIDMOUSECODE HMouseCode = { 0, }; // 배열로 정의해서 한번에 여러개의 엔트리를 보내는것도 가능하다
_HK_ClientDriverApiInitialize();
hDevice = _HK_ClientDriverApiFindDriverName();
if (hDevice == (HANDLE)-1)
{
return 0;
}
#ifdef LEDEVENTTEST
// 드라이버로 키보드 LED 이벤트를 전달한다
HANDLE hLED_Event = 0;
hLED_Event = CreateEvent(NULL, FALSE, FALSE, NULL);
bRet = _HK_ClientDriverApiSetLEDEvent(hDevice, hLED_Event);
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x53; // NUMLOCK버튼을 누른다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
// 운영체제가 LED를 켜라는 메시지를 전달했는지를 확인한다
WaitForSingleObject(hLED_Event, INFINITE);
// 드라이버로부터 키보드 LED 데이타를 읽어본다
HIDLED HidLedData = { 0, };
_HK_ClientDriverApiQueryIndicators(hDevice, &HidLedData);
if (hLED_Event)
CloseHandle(hLED_Event);
#endif
#ifdef LEDSHOWTEST
/*
for (count = 0; count < 1000; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x53;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x39;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x47;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
}*/
Sleep(2000);
for (count = 0; count < 10; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x13; // NUMLOCK버튼을 누른다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(1000);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
}
/*
for (count = 0; count < 10; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x53; // NUMLOCK버튼을 누른다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0x39; // CAPSLOCK버튼을 누른다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0x47; // SCROLLLOCK버튼을 누른다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.u.Modifier.LWINDOW = 1; // Window 키가 눌려진것처럼 해본다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
HKeyCode.u.Modifier.LWINDOW = 0; // Window 키가 띄어진것처럼 해본다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(100);
}
for (count = 0; count < 1000; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x53;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x39;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x47;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
}
for (count = 0; count < 10; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
// NUMLOCK, CAPSLOCK, SCROLLLOCK버튼을 누른다
HKeyCode.Key[0] = 0x53;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(10);
HKeyCode.Key[0] = 0x39;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(10);
HKeyCode.Key[0] = 0x47;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(10);
HKeyCode.u.Modifier.LWINDOW = 1; // Window 키가 눌려진것처럼 해본다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(10);
HKeyCode.u.Modifier.LWINDOW = 0; // Window 키가 띄어진것처럼 해본다
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
Sleep(10);
}
for (count = 0; count < 1000; count++)
{
// 키보드의 LED를 켜본다
memset(&HKeyCode, 0, sizeof(HIDKEYCODE));
HKeyCode.Key[0] = 0x53;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x39;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0x47;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
HKeyCode.Key[0] = 0;
_HK_ClientDriverApiSimulateKey(hDevice, &HKeyCode);
}
*/
#endif
#ifdef MOUSETEST
srand(GetTickCount());
for (count = 0; count < 500; count++)
{
memset(&HMouseCode, 0, sizeof(HIDMOUSECODE));
int z = rand();
if (z%4 == 0)
{
HMouseCode.X = rand()%40;
HMouseCode.Y = rand() % 40;
}
if (z%4 == 1)
{
HMouseCode.X = (rand() % 40) * -1;
HMouseCode.Y = rand() % 40;
}
if (z%4 == 2)
{
HMouseCode.X = rand() % 40;
HMouseCode.Y = (rand() % 40) * -1;
}
if (z%4 == 3)
{
HMouseCode.X = (rand() % 40) * -1;
HMouseCode.Y = (rand() % 40) * -1;
}
_HK_ClientDriverApiSimulateMouse(handle, &HMouseCode);
Sleep(8);
}
#endif
_HK_ClientDriverApiCloseHandle( hDevice );
return 0;
}

View File

@@ -0,0 +1,176 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.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>{67FC3783-F052-4AA2-8648-FF6E6D1DC6D5}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ClientIOAddDevice</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<ProjectName>ClientIOCall</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</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>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;$(OutDir)DriverApi.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalLibraryDirectories>$(VCToolsInstallDir)\lib\x64;$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;$(OutDir)DriverApi.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;$(OutDir)DriverApi.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;$(OutDir)DriverApi.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ClientIOCall.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,11 @@
<?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'">
<RemoteDebuggerCommand>e:\testpc_desktopshare\clientiocall.exe</RemoteDebuggerCommand>
<DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor>
<RemoteDebuggerWorkingDirectory>e:\testpc_desktopshare</RemoteDebuggerWorkingDirectory>
<RemoteDebuggerServerName>DESKTOP-V7QRG3K</RemoteDebuggerServerName>
<RemoteDebuggerConnection>RemoteWithoutAuthentication</RemoteDebuggerConnection>
<DeploymentDirectory>e:\testpc_desktopshare</DeploymentDirectory>
</PropertyGroup>
</Project>

31
ClientIOCall/ReadMe.txt Normal file
View File

@@ -0,0 +1,31 @@
========================================================================
콘솔 응용 프로그램 : ClientIOAddDevice 프로젝트 개요
========================================================================
응용 프로그램 마법사에서 이 ClientIOAddDevice 응용 프로그램을 만들었습니다.
ClientIOAddDevice 응용 프로그램을 구성하는 각 파일에 대한
요약 설명이 포함되어 있습니다.
ClientIOAddDevice.vcxproj
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다. 파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한 플랫폼, 구성 및 프로젝트 기능에 대한 정보가 포함되어 있습니다.
ClientIOAddDevice.vcxproj.filters
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 필터 파일입니다. 이 파일에는 프로젝트의 파일과 필터 간의 연결 정보가 들어 있습니다. 이러한 연결은 특정 노드에서 유사한 확장명으로 그룹화된 파일을 표시하기 위해 IDE에서 사용됩니다. 예를 들어 ".cpp" 파일은 "소스 파일" 필터와 연결되어 있습니다.
ClientIOAddDevice.cpp
기본 응용 프로그램 소스 파일입니다.
/////////////////////////////////////////////////////////////////////////////
기타 표준 파일:
StdAfx.h, StdAfx.cpp
이 파일은 미리 컴파일된 헤더(PCH) 파일 ClientIOAddDevice.pch와 미리 컴파일된 형식(PCT) 파일 StdAfx.obj를 빌드하는 데 사용됩니다.
/////////////////////////////////////////////////////////////////////////////
기타 참고:
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는 소스 코드 부분을 나타냅니다.
/////////////////////////////////////////////////////////////////////////////

8
ClientIOCall/stdafx.cpp Normal file
View File

@@ -0,0 +1,8 @@
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
// ClientIOAddDevice.pch는 미리 컴파일된 헤더가 됩니다.
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
#include "stdafx.h"
// TODO: 필요한 추가 헤더는
// 이 파일이 아닌 STDAFX.H에서 참조합니다.

15
ClientIOCall/stdafx.h Normal file
View File

@@ -0,0 +1,15 @@
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
// 표준 시스템 포함 파일 또는 프로젝트 관련 포함 파일이
// 들어 있는 포함 파일입니다.
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다.

8
ClientIOCall/targetver.h Normal file
View File

@@ -0,0 +1,8 @@
#pragma once
// SDKDDKVer.h를 포함하면 최고 수준의 가용성을 가진 Windows 플랫폼이 정의됩니다.
// 이전 Windows 플랫폼에 대해 응용 프로그램을 빌드하려는 경우에는 SDKDDKVer.h를 포함하기 전에
// WinSDKVer.h를 포함하고 _WIN32_WINNT 매크로를 지원하려는 플랫폼으로 설정하십시오.
#include <SDKDDKVer.h>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.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">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{69078DB7-F326-4F17-8B3B-297991D7A3C2}</ProjectGuid>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<RootNamespace>ClientIOCallDLL</RootNamespace>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
<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|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$Build\</OutDir>
</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|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalDependencies>$(OutDir)DriverApi.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>$(VCToolsInstallDir)\lib\x64;$(OutDir)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalDependencies />
<AdditionalLibraryDirectories>$(VCToolsInstallDir)\lib\x86;$(OutDir)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalDependencies />
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalDependencies />
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="ClientIOCall_DLL.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="AssemblyInfo.cpp" />
<ClCompile Include="ClientIOCall_DLL.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="app.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,49 @@
<?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;ipp;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>
<ClInclude Include="ClientIOCall_DLL.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="stdafx.h">
<Filter>헤더 파일</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>헤더 파일</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ClientIOCall_DLL.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="AssemblyInfo.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="stdafx.cpp">
<Filter>소스 파일</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc">
<Filter>리소스 파일</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="app.ico">
<Filter>리소스 파일</Filter>
</Image>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@@ -0,0 +1,4 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.24.28314.0
; Generated by VC++ for Common Language Runtime
.file "C:\Users\user\AppData\Local\Temp\.NETFramework,Version=v4.7.2.AssemblyAttributes.cpp"

Binary file not shown.

View File

@@ -0,0 +1,27 @@
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.pch
d:\project\l2m_macro\clientiocall_dll\debug\vc142.pdb
d:\project\l2m_macro\clientiocall_dll\debug\stdafx.obj
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.obj
d:\project\l2m_macro\clientiocall_dll\debug\assemblyinfo.obj
d:\project\l2m_macro\clientiocall_dll\debug\.netframework,version=v4.7.2.assemblyattributes.obj
d:\project\l2m_macro\clientiocall_dll\debug\.netframework,version=v4.7.2.assemblyattributes.asm
d:\project\l2m_macro\clientiocall_dll\debug\app.res
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.vcxprojassemblyreference.cache
d:\project\l2m_macro\$build\clientiocall_dll.pdb
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\cl.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\cl.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\cl.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924-cvtres.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924-cvtres.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924-rc.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924-rc.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.14924.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\link.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\metagen.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\metagen.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\rc.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\rc.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\debug\clientiocall_dll.tlog\rc.write.1.tlog

View File

@@ -0,0 +1,30 @@
stdafx.cpp
AssemblyInfo.cpp
ClientIOCall_DLL.cpp
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(6,1): warning C4273: 'init': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(23,38): message : 'init'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(18,1): warning C4273: 'Destroy': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(24,38): message : 'Destroy'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(24,1): warning C4273: 'KeyDown': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(26,39): message : 'KeyDown'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(45,1): warning C4273: 'KeyUp': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(27,39): message : 'KeyUp'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(68,1): warning C4273: 'pressKey': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(25,39): message : 'pressKey'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(86,1): warning C4273: 'MouseMove': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(28,39): message : 'MouseMove'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(95,1): warning C4273: 'MouseClick': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(29,39): message : 'MouseClick'의 이전 정의를 참조하십시오.
코드를 생성하고 있습니다...
.NETFramework,Version=v4.7.2.AssemblyAttributes.cpp
AssemblyInfo.obj : MSIL 모듈이 발견되었습니다. MSIL에 증분 링크를 사용할 수 없습니다. 전체 링크를 수행하고 있습니다.
D:\Project\L2M_MACRO\$Build\ClientIOCall_DLL.lib 라이브러리 및 D:\Project\L2M_MACRO\$Build\ClientIOCall_DLL.exp 개체를 생성하고 있습니다.
ClientIOCall_DLL.obj : error LNK2028: 해결되지 않은 토큰(0A000064) "unsigned char __cdecl _HK_ClientDriverApiSimulateMouse(void *,struct _HIDMOUSECODE *)" (?_HK_ClientDriverApiSimulateMouse@@$$FYAEPAXPAU_HIDMOUSECODE@@@Z)을(를) "extern "C" int __cdecl MouseMove(int,int)" (?MouseMove@@$$J0YAHHH@Z) 함수에서 참조했습니다.
ClientIOCall_DLL.obj : error LNK2028: 해결되지 않은 토큰(0A000065) "unsigned char __cdecl _HK_ClientDriverApiSimulateKey(void *,struct _HIDKEYCODE *)" (?_HK_ClientDriverApiSimulateKey@@$$FYAEPAXPAU_HIDKEYCODE@@@Z)을(를) "extern "C" int __cdecl KeyDown(unsigned long,unsigned char,unsigned long)" (?KeyDown@@$$J0YAHKEK@Z) 함수에서 참조했습니다.
ClientIOCall_DLL.obj : error LNK2028: 해결되지 않은 토큰(0A000067) "void __cdecl _HK_ClientDriverApiCloseHandle(void *)" (?_HK_ClientDriverApiCloseHandle@@$$FYAXPAX@Z)을(를) "extern "C" int __cdecl Destroy(void)" (?Destroy@@$$J0YAHXZ) 함수에서 참조했습니다.
ClientIOCall_DLL.obj : error LNK2028: 해결되지 않은 토큰(0A000068) "void * __cdecl _HK_ClientDriverApiFindDriverName(void)" (?_HK_ClientDriverApiFindDriverName@@$$FYAPAXXZ)을(를) "extern "C" int __cdecl init(void)" (?init@@$$J0YAHXZ) 함수에서 참조했습니다.
ClientIOCall_DLL.obj : error LNK2019: "void * __cdecl _HK_ClientDriverApiFindDriverName(void)" (?_HK_ClientDriverApiFindDriverName@@$$FYAPAXXZ) 외부 기호(참조 위치: "extern "C" int __cdecl init(void)" (?init@@$$J0YAHXZ) 함수)에서 확인하지 못했습니다.
ClientIOCall_DLL.obj : error LNK2019: "void __cdecl _HK_ClientDriverApiCloseHandle(void *)" (?_HK_ClientDriverApiCloseHandle@@$$FYAXPAX@Z) 외부 기호(참조 위치: "extern "C" int __cdecl Destroy(void)" (?Destroy@@$$J0YAHXZ) 함수)에서 확인하지 못했습니다.
ClientIOCall_DLL.obj : error LNK2019: "unsigned char __cdecl _HK_ClientDriverApiSimulateKey(void *,struct _HIDKEYCODE *)" (?_HK_ClientDriverApiSimulateKey@@$$FYAEPAXPAU_HIDKEYCODE@@@Z) 외부 기호(참조 위치: "extern "C" int __cdecl KeyDown(unsigned long,unsigned char,unsigned long)" (?KeyDown@@$$J0YAHKEK@Z) 함수)에서 확인하지 못했습니다.
ClientIOCall_DLL.obj : error LNK2019: "unsigned char __cdecl _HK_ClientDriverApiSimulateMouse(void *,struct _HIDMOUSECODE *)" (?_HK_ClientDriverApiSimulateMouse@@$$FYAEPAXPAU_HIDMOUSECODE@@@Z) 외부 기호(참조 위치: "extern "C" int __cdecl MouseMove(int,int)" (?MouseMove@@$$J0YAHHH@Z) 함수)에서 확인하지 못했습니다.
D:\Project\L2M_MACRO\$Build\ClientIOCall_DLL.dll : fatal error LNK1120: 8개의 확인할 수 없는 외부 참조입니다.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.7.2:PlatformToolSet=v142:EnableManagedIncrementalBuild=true:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
Debug|Win32|D:\Project\L2M_MACRO\|

View File

@@ -0,0 +1 @@

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ClientIOCall_DLL/Resource.h Normal file

Binary file not shown.

BIN
ClientIOCall_DLL/app.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
ClientIOCall_DLL/app.rc Normal file

Binary file not shown.

View File

@@ -0,0 +1,16 @@
#pragma once
#include "stdafx.h"
#include <windows.h>
#include "..\common\hidmapper.h"
void _HK_ClientDriverApiInitialize();
HANDLE _HK_ClientDriverApiFindDriverName();
BOOLEAN _HK_ClientDriverApiSetLEDEvent(HANDLE hDriverHandle, HANDLE hEvent);
BOOLEAN _HK_ClientDriverApiQueryIndicators(HANDLE hDriverHandle, HIDLED * pIndicators);
BOOLEAN _HK_ClientDriverApiSimulateKey(HANDLE hDriverHandle, HIDKEYCODE * pKeyCode);
BOOLEAN _HK_ClientDriverApiSimulateMouse(HANDLE hDriverHandle, HIDMOUSECODE * pMouseCode);
void _HK_ClientDriverApiCloseHandle(HANDLE hDriverHandle);

View File

@@ -0,0 +1,82 @@
#include <initguid.h>
#ifndef _COMMON_H_
#define _COMMON_H_
#ifdef __cplusplus
extern "C" {
#endif
#define MODE_BYPASS (0)
#define MODE_HOOK (1)
#define MODE_BLOCK (2)
// Server
DEFINE_GUID(GUID_SERVERIODEVICE_KBD,
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x81);
DEFINE_GUID(GUID_SERVERIODEVICE_MOUSE,
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x82);
// Client
DEFINE_GUID(GUID_VUSBBUS,
0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x78);
#define MAX_INPUT_BUFFERING_COUNT (100)
#define TYPE_KEYBOARD (0)
#define TYPE_MOUSE (1)
typedef struct _KEYBOARD_HOOK_INPUT_DATA {
USHORT UnitId;
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
ULONG ExtraInformation;
} KEYBOARD_HOOK_INPUT_DATA, *PKEYBOARD_HOOK_INPUT_DATA;
typedef struct _MOUSE_HOOK_INPUT_DATA {
USHORT UnitId;
USHORT Flags;
union {
ULONG Buttons;
struct {
USHORT ButtonFlags;
USHORT ButtonData;
};
};
ULONG RawButtons;
LONG LastX;
LONG LastY;
ULONG ExtraInformation;
} MOUSE_HOOK_INPUT_DATA, *PMOUSE_HOOK_INPUT_DATA;
#define _IOCTL_KEYBOARD_QUERY_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define _IOCTL_KEYBOARD_SET_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define LED_SCROLLLOCK (1)
#define LED_NUMLOCK (2)
#define LED_CAPSLOCK (4)
typedef struct _KEYBOARD_HOOK_INDICATOR_PARAMETERS {
USHORT UnitId;
USHORT LedFlags;
} KEYBOARD_HOOK_INDICATOR_PARAMETERS, *PKEYBOARD_HOOK_INDICATOR_PARAMETERS;
#define _IOCTL_SERVERIODEVICE_SET_BLOCK CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define _IOCTL_SERVERIODEVICE_CLR_BLOCK CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0801, METHOD_BUFFERED, FILE_ANY_ACCESS)
// Client
#define IOCTL_BUSDRIVER_ADDDEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BUSDRIVER_REMOVEDEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0801, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BUSDRIVER_SENDKEYBOARD CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0810, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BUSDRIVER_SENDMOUSE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0811, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BUSDRIVER_GETKEYBOARD_LED CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0812, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_BUSDRIVER_SENDKEYBOARD_LED_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0813, METHOD_BUFFERED, FILE_ANY_ACCESS)
#ifdef __cplusplus
}
#endif
#endif // _COMMON_H_

View File

@@ -0,0 +1,86 @@
#pragma once
#include "stdafx.h"
#include <windows.h>
typedef struct _LED
{
unsigned char NumLock : 1;
unsigned char CapsLock : 1;
unsigned char ScrollLock : 1;
unsigned char res : 5;
}LED, *PLED;
typedef struct _MODIFIER
{
unsigned char LCTRL : 1;
unsigned char LSHIFT : 1;
unsigned char LALT : 1;
unsigned char LWINDOW : 1;
unsigned char RCTRL : 1;
unsigned char RSHIFT : 1;
unsigned char RALT : 1;
unsigned char RWINDOW : 1;
}MODIFIER, *PMODIFIER;
typedef struct _MOUSEBUTTON
{
unsigned char BUTTON1 : 1;
unsigned char BUTTON2 : 1;
unsigned char BUTTON3 : 1;
unsigned char res : 5;
}MOUSEBUTTON, *PMOUSEBUTTON;
#define HIDSTANDARDKEYARRAYNUMBER (6)
// Define Code
#define HKCODE_EMPTY (0)
typedef struct _HIDKEYCODE
{
union
{
MODIFIER Modifier;
unsigned char ModifierU8;
}u;
unsigned char res;
unsigned char Key[HIDSTANDARDKEYARRAYNUMBER];
}HIDKEYCODE, *PHIDKEYCODE;
typedef struct _HIDLED
{
union
{
LED Led;
unsigned char LedU8;
}u;
}HIDLED, *PHIDLED;
typedef struct _HIDMOUSECODE
{
union
{
MOUSEBUTTON Buttons;
unsigned char ModifierU8;
}u;
unsigned char X;
unsigned char Y;
unsigned char Wheel;
}HIDMOUSECODE, *PHIDMOUSECODE;
typedef struct
{
union
{
MODIFIER Modifier;
unsigned char ModifierU8;
}u;
}MODIFIERTEMP, *PMODIFIERTEMP;
#define MAX_HKEYCODESIZE (256)
typedef struct _HKEYARRAY
{
unsigned short ScanCode;
}HKEYARRAY, *PHKEYARRAY;

BIN
ClientIOCall_DLL/stdafx.cpp Normal file

Binary file not shown.

BIN
ClientIOCall_DLL/stdafx.h Normal file

Binary file not shown.

View File

@@ -0,0 +1,4 @@
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.24.28316.0
; Generated by VC++ for Common Language Runtime
.file "C:\Users\user\AppData\Local\Temp\.NETFramework,Version=v4.7.2.AssemblyAttributes.cpp"

Binary file not shown.

View File

@@ -0,0 +1,19 @@
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.pch
d:\project\l2m_macro\clientiocall_dll\x64\debug\vc142.pdb
d:\project\l2m_macro\clientiocall_dll\x64\debug\stdafx.obj
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.obj
d:\project\l2m_macro\clientiocall_dll\x64\debug\assemblyinfo.obj
d:\project\l2m_macro\clientiocall_dll\x64\debug\.netframework,version=v4.7.2.assemblyattributes.obj
d:\project\l2m_macro\clientiocall_dll\x64\debug\.netframework,version=v4.7.2.assemblyattributes.asm
d:\project\l2m_macro\clientiocall_dll\x64\debug\app.res
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\cl.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\cl.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\cl.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\link.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\link.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\link.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\metagen.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\metagen.write.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\rc.command.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\rc.read.1.tlog
d:\project\l2m_macro\clientiocall_dll\x64\debug\clientiocall_dll.tlog\rc.write.1.tlog

View File

@@ -0,0 +1,23 @@
stdafx.cpp
AssemblyInfo.cpp
ClientIOCall_DLL.cpp
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(6,1): warning C4273: 'init': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(23,38): message : 'init'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(18,1): warning C4273: 'Destroy': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(24,38): message : 'Destroy'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(24,1): warning C4273: 'KeyDown': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(26,39): message : 'KeyDown'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(45,1): warning C4273: 'KeyUp': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(27,39): message : 'KeyUp'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(68,1): warning C4273: 'pressKey': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(25,39): message : 'pressKey'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(86,1): warning C4273: 'MouseMove': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(28,39): message : 'MouseMove'의 이전 정의를 참조하십시오.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.cpp(95,1): warning C4273: 'MouseClick': dll 연결이 일치하지 않습니다.
D:\Project\L2M_MACRO\ClientIOCall_DLL\ClientIOCall_DLL.h(29,39): message : 'MouseClick'의 이전 정의를 참조하십시오.
코드를 생성하고 있습니다...
.NETFramework,Version=v4.7.2.AssemblyAttributes.cpp
AssemblyInfo.obj : MSIL 모듈이 발견되었습니다. MSIL에 증분 링크를 사용할 수 없습니다. 전체 링크를 수행하고 있습니다.
D:\Project\L2M_MACRO\x64\Debug\ClientIOCall_DLL.lib 라이브러리 및 D:\Project\L2M_MACRO\x64\Debug\ClientIOCall_DLL.exp 개체를 생성하고 있습니다.
DriverApi.lib(driverapi.obj) : warning LNK4075: '/EDITANDCONTINUE'이(가) '/INCREMENTAL:NO' 사양으로 인해 무시됩니다.
ClientIOCall_DLL.vcxproj -> D:\Project\L2M_MACRO\x64\Debug\ClientIOCall_DLL.dll

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.7.2:PlatformToolSet=v142:EnableManagedIncrementalBuild=true:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.18362.0
Debug|x64|D:\Project\L2M_MACRO\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Debug/ClientIOCall_DLL.exp Normal file

Binary file not shown.

BIN
Debug/ClientIOCall_DLL.lib Normal file

Binary file not shown.

BIN
Debug/ClientIOCall_DLL.pdb Normal file

Binary file not shown.

153
DriverApi/DriverApi.vcxproj Normal file
View File

@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.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>{BF276BA4-D52D-4F07-970B-A99745E29D1B}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>DriverApi</RootNamespace>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</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 />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\common\DriverApi.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="driverapi.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

Some files were not shown because too many files have changed in this diff Show More