mirror of
https://github.com/Cc28256/CcRemote.git
synced 2025-08-05 08:51:44 +00:00
Compare commits
5 Commits
20200523.1
...
20200528.1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4bd0451420 | ||
![]() |
ef7c96720c | ||
![]() |
d38532055a | ||
![]() |
d396e8777e | ||
![]() |
1bc9a890b1 |
Binary file not shown.
@@ -72,14 +72,14 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<OutDir>..\bin\server\</OutDir>
|
<OutDir>..\..\bin\server</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<OutDir>..\bin\server</OutDir>
|
<OutDir>..\..\bin\server</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LocalDebuggerCommand> ..\\..\bin\server\TestLoadDll.exe</LocalDebuggerCommand>
|
<LocalDebuggerCommand>..\\..\bin\server\TestLoadDll.exe</LocalDebuggerCommand>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@@ -1,36 +0,0 @@
|
|||||||
g:\ccremote\ccremote\ccmaindll\bin\server\ccmaindll.lib
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\ccmaindll.exp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.idb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\pch.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\audio.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\until.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\buffer.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\videomanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\videocap.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\systemmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\shellmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\screenspy.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\screenmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\regeditex.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\manager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\keyboardmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\kernelmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\install.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\dialupass.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\audiomanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\filemanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\ccmaindll.ilk
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\ccmaindll.dll
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\ccmaindll.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\..\bin\server\ccmaindll.dll
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\ccmaindll.write.1u.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog
|
|
@@ -1,4 +1,5 @@
|
|||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||||
|
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
||||||
pch.cpp
|
pch.cpp
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
||||||
Audio.cpp
|
Audio.cpp
|
||||||
@@ -101,4 +102,6 @@ g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'Ge
|
|||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(166): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(166): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||||
LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
|
LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
|
||||||
CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\CcMainDll\..\bin\server\CcMainDll.dll
|
正在创建库 ..\..\bin\server\CcMainDll.lib 和对象 ..\..\bin\server\CcMainDll.exp
|
||||||
|
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
|
||||||
|
CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\CcMainDll\..\..\bin\server\CcMainDll.dll
|
||||||
|
Binary file not shown.
@@ -1,36 +0,0 @@
|
|||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.lib
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.exp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.ipdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.iobj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\pch.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audio.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\until.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\keyboardmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\buffer.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videocap.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\manager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\install.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dialupass.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.dll
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\server.dll\ccmaindll.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\..\bin\server\server.dll\ccmaindll.dll
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\ccmaindll.write.1u.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
|
|
@@ -1,107 +0,0 @@
|
|||||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
pch.cpp
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
Audio.cpp
|
|
||||||
g:\ccremote\ccremote\common\audio.cpp(99): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
ClientSocket.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(69): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(71): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(207): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(324): warning C4018: “>=”: 有符号/无符号不匹配
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(423): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(478): warning C4018: “>=”: 有符号/无符号不匹配
|
|
||||||
Buffer.cpp
|
|
||||||
KeyboardManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(33): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(307): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
until.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
AudioManager.cpp
|
|
||||||
Dialupass.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(139): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(143): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(147): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(208): warning C4996: 'GetVersionExA': 被声明为已否决
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
|
||||||
install.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(7): warning C4101: “Desc”: 未引用的局部变量
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(121): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(120): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
|
|
||||||
KernelManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
Manager.cpp
|
|
||||||
RegEditEx.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(9): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(560): note: 参见“strnicmp”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(100): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(114): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(141): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(111): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(112): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
|
||||||
ScreenManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
|
|
||||||
ScreenSpy.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(363): warning C4018: “>”: 有符号/无符号不匹配
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(384): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(403): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
ShellManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
|
||||||
SystemManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\systemmanager.cpp(111): warning C4018: “<”: 有符号/无符号不匹配
|
|
||||||
VideoCap.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(118): warning C4101: “gCapTureParms”: 未引用的局部变量
|
|
||||||
VideoManager.cpp
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
FileManager.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(271): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(272): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(422): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(594): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(597): warning C4307: “+”: 整型常量溢出
|
|
||||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
|
||||||
dllmain.cpp
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(38): warning C4101: “pEnd”: 未引用的局部变量
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'GetVersionExA': 被声明为已否决
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(166): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
|
||||||
LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
|
|
||||||
正在创建库 ..\bin\server\server.dll\CcMainDll.lib 和对象 ..\bin\server\server.dll\CcMainDll.exp
|
|
||||||
正在生成代码
|
|
||||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(240): warning C4715: “CFileManager::OpenFile”: 不是所有的控件路径都返回值
|
|
||||||
All 364 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
|
||||||
已完成代码的生成
|
|
||||||
CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\CcMainDll\..\bin\server\server.dll\CcMainDll.dll
|
|
@@ -1,2 +0,0 @@
|
|||||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
|
||||||
Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
|
@@ -49,10 +49,13 @@ void CSystemManager::OnReceive(LPBYTE lpBuffer, UINT nSize)
|
|||||||
void CSystemManager::SendProcessList()
|
void CSystemManager::SendProcessList()
|
||||||
{
|
{
|
||||||
UINT nRet = -1;
|
UINT nRet = -1;
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD>getProcessList<73>õ<EFBFBD><C3B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD> --->lpBuffer
|
||||||
LPBYTE lpBuffer = getProcessList();
|
LPBYTE lpBuffer = getProcessList();
|
||||||
if (lpBuffer == NULL)
|
if (lpBuffer == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD> <20><><EFBFBD>ຯ<EFBFBD><E0BAAF>send <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
|
||||||
Send((LPBYTE)lpBuffer, LocalSize(lpBuffer));
|
Send((LPBYTE)lpBuffer, LocalSize(lpBuffer));
|
||||||
LocalFree(lpBuffer);
|
LocalFree(lpBuffer);
|
||||||
}
|
}
|
||||||
@@ -103,11 +106,15 @@ void CSystemManager::SendDialupassList()
|
|||||||
LocalFree(lpBuffer);
|
LocalFree(lpBuffer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
void CSystemManager::KillProcess(LPBYTE lpBuffer, UINT nSize)
|
void CSystemManager::KillProcess(LPBYTE lpBuffer, UINT nSize)
|
||||||
{
|
{
|
||||||
HANDLE hProcess = NULL;
|
HANDLE hProcess = NULL;
|
||||||
DebugPrivilege(SE_DEBUG_NAME, TRUE);
|
DebugPrivilege(SE_DEBUG_NAME, TRUE);
|
||||||
|
|
||||||
|
// <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ܲ<EFBFBD>ֹ<EFBFBD><D6B9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
|
||||||
for (int i = 0; i < nSize; i += 4)
|
for (int i = 0; i < nSize; i += 4)
|
||||||
{
|
{
|
||||||
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, *(LPDWORD)(lpBuffer + i));
|
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, *(LPDWORD)(lpBuffer + i));
|
||||||
@@ -125,17 +132,20 @@ void CSystemManager::KillProcess(LPBYTE lpBuffer, UINT nSize)
|
|||||||
|
|
||||||
LPBYTE CSystemManager::getProcessList()
|
LPBYTE CSystemManager::getProcessList()
|
||||||
{
|
{
|
||||||
HANDLE hSnapshot = NULL;
|
HANDLE hSnapshot = NULL; //<2F><><EFBFBD>վ<EFBFBD><D5BE><EFBFBD>
|
||||||
HANDLE hProcess = NULL;
|
HANDLE hProcess = NULL; //<2F><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD>
|
||||||
HMODULE hModules = NULL;
|
HMODULE hModules = NULL; //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
PROCESSENTRY32 pe32 = {0};
|
PROCESSENTRY32 pe32 = {0};
|
||||||
DWORD cbNeeded;
|
DWORD cbNeeded;
|
||||||
char strProcessName[MAX_PATH] = {0};
|
char strProcessName[MAX_PATH] = {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
LPBYTE lpBuffer = NULL;
|
LPBYTE lpBuffer = NULL; //
|
||||||
DWORD dwOffset = 0;
|
DWORD dwOffset = 0;
|
||||||
DWORD dwLength = 0;
|
DWORD dwLength = 0;
|
||||||
|
|
||||||
|
//<2F><>ȡȨ<C8A1><C8A8>
|
||||||
DebugPrivilege(SE_DEBUG_NAME, TRUE);
|
DebugPrivilege(SE_DEBUG_NAME, TRUE);
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD>
|
||||||
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||||
|
|
||||||
if(hSnapshot == INVALID_HANDLE_VALUE)
|
if(hSnapshot == INVALID_HANDLE_VALUE)
|
||||||
@@ -143,19 +153,27 @@ LPBYTE CSystemManager::getProcessList()
|
|||||||
|
|
||||||
pe32.dwSize = sizeof(PROCESSENTRY32);
|
pe32.dwSize = sizeof(PROCESSENTRY32);
|
||||||
|
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
lpBuffer = (LPBYTE)LocalAlloc(LPTR, 1024);
|
lpBuffer = (LPBYTE)LocalAlloc(LPTR, 1024);
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ƶ˹<C6B6><CBB9>е<EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ǽ<EFBFBD><C7BD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
lpBuffer[0] = TOKEN_PSLIST;
|
lpBuffer[0] = TOKEN_PSLIST;
|
||||||
dwOffset = 1;
|
dwOffset = 1;
|
||||||
|
|
||||||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܾͷ<DCBE><CDB7><EFBFBD>
|
||||||
if(Process32First(hSnapshot, &pe32))
|
if(Process32First(hSnapshot, &pe32))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
//<2F><EFBFBD><F2BFAABD>̾<EFBFBD><CCBE><EFBFBD>
|
||||||
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe32.th32ProcessID);
|
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe32.th32ProcessID);
|
||||||
if ((pe32.th32ProcessID !=0 ) && (pe32.th32ProcessID != 4) && (pe32.th32ProcessID != 8))
|
if ((pe32.th32ProcessID !=0 ) && (pe32.th32ProcessID != 4) && (pe32.th32ProcessID != 8))
|
||||||
{
|
{
|
||||||
|
//ö<>ٵ<EFBFBD>һ<EFBFBD><D2BB>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
EnumProcessModules(hProcess, &hModules, sizeof(hModules), &cbNeeded);
|
EnumProcessModules(hProcess, &hModules, sizeof(hModules), &cbNeeded);
|
||||||
|
|
||||||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
GetModuleFileNameEx(hProcess, hModules, strProcessName, sizeof(strProcessName));
|
GetModuleFileNameEx(hProcess, hModules, strProcessName, sizeof(strProcessName));
|
||||||
|
|
||||||
// <20>˽<EFBFBD><CBBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
// <20>˽<EFBFBD><CBBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
||||||
@@ -164,6 +182,8 @@ LPBYTE CSystemManager::getProcessList()
|
|||||||
if (LocalSize(lpBuffer) < (dwOffset + dwLength))
|
if (LocalSize(lpBuffer) < (dwOffset + dwLength))
|
||||||
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, (dwOffset + dwLength), LMEM_ZEROINIT|LMEM_MOVEABLE);
|
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, (dwOffset + dwLength), LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||||
|
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD>memcpy<70><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2BBBAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݽṹ<DDBD><E1B9B9> <20><><EFBFBD><EFBFBD>ID+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+0+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+0
|
||||||
memcpy(lpBuffer + dwOffset, &(pe32.th32ProcessID), sizeof(DWORD));
|
memcpy(lpBuffer + dwOffset, &(pe32.th32ProcessID), sizeof(DWORD));
|
||||||
dwOffset += sizeof(DWORD);
|
dwOffset += sizeof(DWORD);
|
||||||
|
|
||||||
@@ -174,9 +194,9 @@ LPBYTE CSystemManager::getProcessList()
|
|||||||
dwOffset += lstrlen(strProcessName) + 1;
|
dwOffset += lstrlen(strProcessName) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while(Process32Next(hSnapshot, &pe32));
|
while(Process32Next(hSnapshot, &pe32));//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
//<2F><>lpbuffer<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ
|
||||||
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, dwOffset, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, dwOffset, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||||
|
|
||||||
DebugPrivilege(SE_DEBUG_NAME, FALSE);
|
DebugPrivilege(SE_DEBUG_NAME, FALSE);
|
||||||
@@ -250,6 +270,9 @@ bool CALLBACK CSystemManager::EnumWindowsProc(HWND hwnd, LPARAM lParam)
|
|||||||
LPBYTE CSystemManager::getWindowsList()
|
LPBYTE CSystemManager::getWindowsList()
|
||||||
{
|
{
|
||||||
LPBYTE lpBuffer = NULL;
|
LPBYTE lpBuffer = NULL;
|
||||||
|
|
||||||
|
//ö<><C3B6><EFBFBD><EFBFBD>Ļ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>еĶ<D0B5><C4B6>㴰<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>һ<EFBFBD><D2BB>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//EnumWindows<77><73>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>ֱ<EFBFBD><D6B1>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĶ<D0B5><C4B6>㴰<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ص<DFBB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FALSE.
|
||||||
EnumWindows((WNDENUMPROC)EnumWindowsProc, (LPARAM)&lpBuffer);
|
EnumWindows((WNDENUMPROC)EnumWindowsProc, (LPARAM)&lpBuffer);
|
||||||
lpBuffer[0] = TOKEN_WSLIST;
|
lpBuffer[0] = TOKEN_WSLIST;
|
||||||
return lpBuffer;
|
return lpBuffer;
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\vc141.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\vc141.idb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.obj
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\testloaddll.ilk
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\testloaddll.exe
|
|
||||||
g:\ccremote\ccremote\ccmaindll\bin\server\testloaddll.pdb
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\..\bin\server\testloaddll.exe
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.write.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.write.1.tlog
|
|
@@ -1,3 +1,3 @@
|
|||||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||||
TestLoadDll.cpp
|
TestLoadDll.cpp
|
||||||
TestLoadDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\TestLoadDll\..\bin\server\TestLoadDll.exe
|
TestLoadDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
|
||||||
|
@@ -12,7 +12,7 @@ int main()
|
|||||||
//载入服务端dll
|
//载入服务端dll
|
||||||
HMODULE hServerDll = LoadLibrary(".\\..\\..\\bin\\server\\CcMainDll.dll");
|
HMODULE hServerDll = LoadLibrary(".\\..\\..\\bin\\server\\CcMainDll.dll");
|
||||||
//HMODULE hServerDll = LoadLibrary(".\server.dll");
|
//HMODULE hServerDll = LoadLibrary(".\server.dll");
|
||||||
//声明导出函数类型--查看上一节导出的TestRun函数
|
//声明导出函数类型--导出的TestRun函数
|
||||||
typedef void(_cdecl *TestRunT)(char* strHost, int nPort);
|
typedef void(_cdecl *TestRunT)(char* strHost, int nPort);
|
||||||
//寻找dll中导出函数
|
//寻找dll中导出函数
|
||||||
TestRunT pTestRunT = (TestRunT)GetProcAddress(hServerDll, "TestFun");
|
TestRunT pTestRunT = (TestRunT)GetProcAddress(hServerDll, "TestFun");
|
||||||
|
@@ -72,11 +72,11 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<OutDir>..\bin\server</OutDir>
|
<OutDir>..\..\bin\server</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<OutDir>..\bin\server</OutDir>
|
<OutDir>..\..\bin\server</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
@@ -95,6 +95,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
@@ -112,6 +113,8 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
Binary file not shown.
Binary file not shown.
222
CcRemote/CcRemote/CShellDlg.cpp
Normal file
222
CcRemote/CcRemote/CShellDlg.cpp
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
// CShellDlg.cpp: 实现文件
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "CcRemote.h"
|
||||||
|
#include "CShellDlg.h"
|
||||||
|
#include "afxdialogex.h"
|
||||||
|
#include "..\..\common\macros.h"
|
||||||
|
|
||||||
|
// CShellDlg 对话框
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(CShellDlg, CDialog)
|
||||||
|
|
||||||
|
CShellDlg::CShellDlg(CWnd* pParent, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||||
|
: CDialog(IDD_SHELL, pParent)
|
||||||
|
{
|
||||||
|
m_iocpServer = pIOCPServer;
|
||||||
|
m_pContext = pContext;
|
||||||
|
m_nCurSel = 0;
|
||||||
|
m_hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_CMDSHELL));
|
||||||
|
}
|
||||||
|
|
||||||
|
CShellDlg::~CShellDlg()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CShellDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialog::DoDataExchange(pDX);
|
||||||
|
DDX_Control(pDX, IDC_EDIT, m_edit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(CShellDlg, CDialog)
|
||||||
|
ON_WM_CLOSE()
|
||||||
|
ON_WM_SIZE()
|
||||||
|
ON_EN_CHANGE(IDC_EDIT, &CShellDlg::OnEnChangeEdit)
|
||||||
|
ON_WM_CTLCOLOR()
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
// CShellDlg 消息处理程序
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::OnClose()
|
||||||
|
{
|
||||||
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
|
m_pContext->m_Dialog[0] = 0;
|
||||||
|
closesocket(m_pContext->m_Socket);
|
||||||
|
CDialog::OnClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::OnSize(UINT nType, int cx, int cy)
|
||||||
|
{
|
||||||
|
CDialog::OnSize(nType, cx, cy);
|
||||||
|
ResizeEdit();
|
||||||
|
// TODO: 在此处添加消息处理程序代码
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::ResizeEdit(void)
|
||||||
|
{
|
||||||
|
if (m_edit.m_hWnd == NULL)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RECT rectClient;
|
||||||
|
RECT rectEdit;
|
||||||
|
GetClientRect(&rectClient);
|
||||||
|
rectEdit.left = 0;
|
||||||
|
rectEdit.top = 0;
|
||||||
|
rectEdit.right = rectClient.right;
|
||||||
|
rectEdit.bottom = rectClient.bottom;
|
||||||
|
m_edit.MoveWindow(&rectEdit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CShellDlg::OnInitDialog()
|
||||||
|
{
|
||||||
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
|
// TODO: 在此添加额外的初始化
|
||||||
|
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||||
|
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||||
|
//得到当前窗口的数据大小 初始化时这个值应该为0
|
||||||
|
m_nCurSel = m_edit.GetWindowTextLength();
|
||||||
|
|
||||||
|
//得到服务端的IP并显示到窗口的标题上
|
||||||
|
CString str;
|
||||||
|
sockaddr_in sockAddr;
|
||||||
|
memset(&sockAddr, 0, sizeof(sockAddr));
|
||||||
|
int nSockAddrLen = sizeof(sockAddr);
|
||||||
|
BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen);
|
||||||
|
str.Format("\\\\%s - 远程终端", bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "");
|
||||||
|
SetWindowText(str);
|
||||||
|
|
||||||
|
m_edit.SetLimitText(MAXDWORD); // 设置最大长度
|
||||||
|
|
||||||
|
// 通知远程控制端对话框已经打开
|
||||||
|
BYTE bToken = COMMAND_NEXT;
|
||||||
|
m_iocpServer->Send(m_pContext, &bToken, sizeof(BYTE));
|
||||||
|
|
||||||
|
|
||||||
|
//---------改变窗口大小触发动态调整-------|
|
||||||
|
CRect rect;
|
||||||
|
GetWindowRect(&rect);
|
||||||
|
rect.bottom += 20;
|
||||||
|
MoveWindow(rect);
|
||||||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::OnEnChangeEdit()
|
||||||
|
{
|
||||||
|
// TODO: 如果该控件是 RICHEDIT 控件,它将不
|
||||||
|
// 发送此通知,除非重写 CDialog::OnInitDialog()
|
||||||
|
// 函数并调用 CRichEditCtrl().SetEventMask(),
|
||||||
|
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
|
||||||
|
int len = m_edit.GetWindowTextLength();
|
||||||
|
if (len < m_nCurSel)
|
||||||
|
m_nCurSel = len;
|
||||||
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HBRUSH CShellDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||||
|
{
|
||||||
|
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||||
|
|
||||||
|
// TODO: 在此更改 DC 的任何特性
|
||||||
|
if ((pWnd->GetDlgCtrlID() == IDC_EDIT) && (nCtlColor == CTLCOLOR_EDIT))
|
||||||
|
{
|
||||||
|
COLORREF clr = RGB(255, 255, 255);
|
||||||
|
pDC->SetTextColor(clr); //设置白色的文本
|
||||||
|
clr = RGB(0, 0, 0);
|
||||||
|
pDC->SetBkColor(clr); //设置黑色的背景
|
||||||
|
return CreateSolidBrush(clr); //作为约定,返回背景色对应的刷子句柄
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||||
|
}
|
||||||
|
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||||
|
return hbr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::OnReceiveComplete(void)
|
||||||
|
{
|
||||||
|
AddKeyBoardData();
|
||||||
|
m_nReceiveLength = m_edit.GetWindowTextLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CShellDlg::AddKeyBoardData(void)
|
||||||
|
{
|
||||||
|
// 最后填上0
|
||||||
|
m_pContext->m_DeCompressionBuffer.Write((LPBYTE)"", 1);
|
||||||
|
CString strResult = (char*)m_pContext->m_DeCompressionBuffer.GetBuffer(0);
|
||||||
|
|
||||||
|
//替换掉原来的换行符 可能cmd 的换行同w32下的编辑控件的换行符不一致
|
||||||
|
strResult.Replace("\n", "\r\n");
|
||||||
|
//得到当前窗口的字符个数
|
||||||
|
int len = m_edit.GetWindowTextLength();
|
||||||
|
//将光标定位到该位置并选中指定个数的字符
|
||||||
|
m_edit.SetSel(len, len);
|
||||||
|
//用传递过来的数据替换掉该位置的字符
|
||||||
|
m_edit.ReplaceSel(strResult);
|
||||||
|
//重新得到字符的大小
|
||||||
|
m_nCurSel = m_edit.GetWindowTextLength();
|
||||||
|
//现在我们基本弄明白了 数据传输到主控端后的处理
|
||||||
|
//那主控端的数据时怎样传递到服务端上的呢??
|
||||||
|
//我们注意到,我们在使用远程终端时 ,发送的每一个命令行 都有一个换行符 就是一个回车
|
||||||
|
//要找到这个回车的处理我们就要到PreTranslateMessage函数的定义
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CShellDlg::PreTranslateMessage(MSG* pMsg)
|
||||||
|
{
|
||||||
|
// TODO: 在此添加专用代码和/或调用基类
|
||||||
|
//如果是键盘按下
|
||||||
|
if (pMsg->message == WM_KEYDOWN)
|
||||||
|
{
|
||||||
|
// 屏蔽VK_ESCAPE、VK_DELETE
|
||||||
|
if (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_DELETE)
|
||||||
|
return true;
|
||||||
|
//如果是可编辑框的回车键
|
||||||
|
if (pMsg->wParam == VK_RETURN && pMsg->hwnd == m_edit.m_hWnd)
|
||||||
|
{
|
||||||
|
//得到窗口的数据大小
|
||||||
|
int len = m_edit.GetWindowTextLength();
|
||||||
|
CString str;
|
||||||
|
//得到窗口的字符数据
|
||||||
|
m_edit.GetWindowText(str);
|
||||||
|
//加入换行符
|
||||||
|
str += "\r\n";
|
||||||
|
//注意gh0st是怎样得到当前的数据的 得到整个的缓冲区再加上原有的字符的位置,其实就是用户当前输入的数据了
|
||||||
|
//然后将数据发送出去。。。。。。。。。。。。。。。 整个分析就完毕了。。。。。。
|
||||||
|
m_iocpServer->Send(m_pContext, (LPBYTE)str.GetBuffer(0) + m_nCurSel, str.GetLength() - m_nCurSel);
|
||||||
|
m_nCurSel = m_edit.GetWindowTextLength();
|
||||||
|
}
|
||||||
|
// 限制VK_BACK
|
||||||
|
if (pMsg->wParam == VK_BACK && pMsg->hwnd == m_edit.m_hWnd)
|
||||||
|
{
|
||||||
|
if (m_edit.GetWindowTextLength() <= m_nReceiveLength)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Ctrl没按下
|
||||||
|
if (pMsg->message == WM_CHAR && GetKeyState(VK_CONTROL) >= 0)
|
||||||
|
{
|
||||||
|
int len = m_edit.GetWindowTextLength();
|
||||||
|
m_edit.SetSel(len, len);
|
||||||
|
// 用户删除了部分内容,改变m_nCurSel
|
||||||
|
if (len < m_nCurSel)
|
||||||
|
m_nCurSel = len;
|
||||||
|
}
|
||||||
|
return CDialog::PreTranslateMessage(pMsg);
|
||||||
|
}
|
46
CcRemote/CcRemote/CShellDlg.h
Normal file
46
CcRemote/CcRemote/CShellDlg.h
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "include/IOCPServer.h"
|
||||||
|
|
||||||
|
// CShellDlg 对话框
|
||||||
|
|
||||||
|
class CShellDlg : public CDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(CShellDlg)
|
||||||
|
|
||||||
|
public:
|
||||||
|
CShellDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||||
|
virtual ~CShellDlg();
|
||||||
|
|
||||||
|
// 对话框数据
|
||||||
|
#ifdef AFX_DESIGN_TIME
|
||||||
|
enum { IDD = IDD_SHELL };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||||
|
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
public:
|
||||||
|
CEdit m_edit;
|
||||||
|
private:
|
||||||
|
HICON m_hIcon;
|
||||||
|
ClientContext* m_pContext;
|
||||||
|
CIOCPServer* m_iocpServer;
|
||||||
|
UINT m_nCurSel;
|
||||||
|
UINT m_nReceiveLength;
|
||||||
|
public:
|
||||||
|
afx_msg void OnClose();
|
||||||
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||||
|
|
||||||
|
void ResizeEdit(void);
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
afx_msg void OnEnChangeEdit();
|
||||||
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||||
|
|
||||||
|
void OnReceiveComplete(void);
|
||||||
|
private:
|
||||||
|
void AddKeyBoardData(void);
|
||||||
|
public:
|
||||||
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||||
|
};
|
186
CcRemote/CcRemote/CSystemDlg.cpp
Normal file
186
CcRemote/CcRemote/CSystemDlg.cpp
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
// CSystemDlg.cpp: 实现文件
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "CcRemote.h"
|
||||||
|
#include "CSystemDlg.h"
|
||||||
|
#include "afxdialogex.h"
|
||||||
|
#include "..\..\common\macros.h"
|
||||||
|
|
||||||
|
|
||||||
|
// CSystemDlg 对话框
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(CSystemDlg, CDialog)
|
||||||
|
|
||||||
|
CSystemDlg::CSystemDlg(CWnd* pParent /*=nullptr*/, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||||
|
: CDialog(IDD_SYSTEM, pParent)
|
||||||
|
{
|
||||||
|
m_iocpServer = pIOCPServer; //就是一个赋值没什么特别的我们到oninitdialog
|
||||||
|
m_pContext = pContext;
|
||||||
|
m_hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_SYSTEM));
|
||||||
|
}
|
||||||
|
|
||||||
|
CSystemDlg::~CSystemDlg()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialog::DoDataExchange(pDX);
|
||||||
|
DDX_Control(pDX, IDC_TAB, m_tab);
|
||||||
|
DDX_Control(pDX, IDC_LIST_WINDOWS, m_list_windows);
|
||||||
|
DDX_Control(pDX, IDC_LIST_PROCESS, m_list_process);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(CSystemDlg, CDialog)
|
||||||
|
ON_WM_SIZE()
|
||||||
|
ON_WM_CLOSE()
|
||||||
|
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, &CSystemDlg::OnTcnSelchangeTab)
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
// CSystemDlg 消息处理程序
|
||||||
|
|
||||||
|
void CSystemDlg::AdjustList(void)
|
||||||
|
{
|
||||||
|
RECT rectClient;
|
||||||
|
RECT rectList;
|
||||||
|
GetClientRect(&rectClient);
|
||||||
|
rectList.left = 0;
|
||||||
|
rectList.top = 29;
|
||||||
|
rectList.right = rectClient.right;
|
||||||
|
rectList.bottom = rectClient.bottom;
|
||||||
|
|
||||||
|
m_list_process.MoveWindow(&rectList);
|
||||||
|
m_list_windows.MoveWindow(&rectList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::OnSize(UINT nType, int cx, int cy)
|
||||||
|
{
|
||||||
|
CDialog::OnSize(nType, cx, cy);
|
||||||
|
AdjustList();
|
||||||
|
// TODO: 在此处添加消息处理程序代码
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::OnClose()
|
||||||
|
{
|
||||||
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
|
|
||||||
|
CDialog::OnClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
|
||||||
|
{
|
||||||
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
|
ShowSelectWindow();
|
||||||
|
*pResult = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::ShowSelectWindow(void)
|
||||||
|
{
|
||||||
|
switch (m_tab.GetCurSel())
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
m_list_windows.ShowWindow(SW_HIDE);
|
||||||
|
m_list_process.ShowWindow(SW_SHOW);
|
||||||
|
if (m_list_process.GetItemCount() == 0)
|
||||||
|
GetProcessList();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
m_list_windows.ShowWindow(SW_SHOW);
|
||||||
|
m_list_process.ShowWindow(SW_HIDE);
|
||||||
|
if (m_list_windows.GetItemCount() == 0)
|
||||||
|
//GetWindowsList();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::GetProcessList(void)
|
||||||
|
{
|
||||||
|
BYTE bToken = COMMAND_PSLIST;
|
||||||
|
m_iocpServer->Send(m_pContext, &bToken, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CSystemDlg::OnInitDialog()
|
||||||
|
{
|
||||||
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
|
// TODO: 在此添加额外的初始化
|
||||||
|
|
||||||
|
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||||
|
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||||
|
|
||||||
|
|
||||||
|
CString str;
|
||||||
|
sockaddr_in sockAddr;
|
||||||
|
memset(&sockAddr, 0, sizeof(sockAddr));
|
||||||
|
int nSockAddrLen = sizeof(sockAddr);
|
||||||
|
BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen); //得到连接的ip
|
||||||
|
str.Format("\\\\%s - 系统管理", bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "");
|
||||||
|
SetWindowText(str);//设置对话框标题
|
||||||
|
|
||||||
|
|
||||||
|
m_tab.InsertItem(0, "进程管理"); //为tab设置标题
|
||||||
|
m_tab.InsertItem(1, "窗口管理");
|
||||||
|
m_tab.InsertItem(2, "拨号密码");
|
||||||
|
|
||||||
|
m_list_process.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化进程的列表
|
||||||
|
m_list_process.InsertColumn(0, "映像名称", LVCFMT_LEFT, 100);
|
||||||
|
m_list_process.InsertColumn(1, "PID", LVCFMT_LEFT, 50);
|
||||||
|
m_list_process.InsertColumn(2, "程序路径", LVCFMT_LEFT, 400);
|
||||||
|
|
||||||
|
m_list_windows.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化 窗口管理的列表
|
||||||
|
m_list_windows.InsertColumn(0, "PID", LVCFMT_LEFT, 50);
|
||||||
|
m_list_windows.InsertColumn(1, "窗口名称", LVCFMT_LEFT, 300);
|
||||||
|
|
||||||
|
|
||||||
|
AdjustList(); //各个列表的大小
|
||||||
|
ShowProcessList(); //由于第一个发送来的消息后面紧跟着进程的数据所以把数据显示到列表当中
|
||||||
|
ShowSelectWindow(); //显示列表
|
||||||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSystemDlg::ShowProcessList(void)
|
||||||
|
{
|
||||||
|
char *lpBuffer = (char *)(m_pContext->m_DeCompressionBuffer.GetBuffer(1));
|
||||||
|
char *strExeFile;
|
||||||
|
char *strProcessName;
|
||||||
|
DWORD dwOffset = 0;
|
||||||
|
CString str;
|
||||||
|
m_list_process.DeleteAllItems();
|
||||||
|
//遍历发送来的每一个字符别忘了他的数据结构啊 Id+进程名+0+完整名+0
|
||||||
|
int i;
|
||||||
|
for (i = 0; dwOffset < m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1; i++)
|
||||||
|
{
|
||||||
|
LPDWORD lpPID = LPDWORD(lpBuffer + dwOffset); //这里得到进程ID
|
||||||
|
strExeFile = lpBuffer + dwOffset + sizeof(DWORD); //进程名就是ID之后的啦
|
||||||
|
strProcessName = strExeFile + lstrlen(strExeFile) + 1; //完整名就是进程名之后的啦
|
||||||
|
//他的数据结构的构建很巧妙
|
||||||
|
|
||||||
|
m_list_process.InsertItem(i, strExeFile); //将得到的数据加入到列表当中
|
||||||
|
str.Format("%5u", *lpPID);
|
||||||
|
m_list_process.SetItemText(i, 1, str);
|
||||||
|
m_list_process.SetItemText(i, 2, strProcessName);
|
||||||
|
// ItemData 为进程ID
|
||||||
|
m_list_process.SetItemData(i, *lpPID);
|
||||||
|
|
||||||
|
dwOffset += sizeof(DWORD) + lstrlen(strExeFile) + lstrlen(strProcessName) + 2; //跳过这个数据结构 进入下一个循环
|
||||||
|
}
|
||||||
|
|
||||||
|
str.Format("程序路径 / %d", i);
|
||||||
|
LVCOLUMN lvc;
|
||||||
|
lvc.mask = LVCF_TEXT;
|
||||||
|
lvc.pszText = str.GetBuffer(0);
|
||||||
|
lvc.cchTextMax = str.GetLength();
|
||||||
|
m_list_process.SetColumn(2, &lvc); //在列表中显示有多少个进程
|
||||||
|
}
|
43
CcRemote/CcRemote/CSystemDlg.h
Normal file
43
CcRemote/CcRemote/CSystemDlg.h
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "include/IOCPServer.h"
|
||||||
|
|
||||||
|
// CSystemDlg 对话框
|
||||||
|
|
||||||
|
class CSystemDlg : public CDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(CSystemDlg)
|
||||||
|
|
||||||
|
public:
|
||||||
|
CSystemDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||||
|
virtual ~CSystemDlg();
|
||||||
|
|
||||||
|
// 对话框数据
|
||||||
|
#ifdef AFX_DESIGN_TIME
|
||||||
|
enum { IDD = IDD_SYSTEM };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||||
|
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
public:
|
||||||
|
CTabCtrl m_tab;
|
||||||
|
CListCtrl m_list_windows;
|
||||||
|
CListCtrl m_list_process;
|
||||||
|
private:
|
||||||
|
HICON m_hIcon;
|
||||||
|
ClientContext* m_pContext;
|
||||||
|
CIOCPServer* m_iocpServer;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void AdjustList(void);
|
||||||
|
void ShowSelectWindow(void);
|
||||||
|
void GetProcessList(void);
|
||||||
|
|
||||||
|
public:
|
||||||
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||||
|
afx_msg void OnClose();
|
||||||
|
afx_msg void OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult);
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
void ShowProcessList(void);
|
||||||
|
};
|
@@ -26,6 +26,17 @@ CCcRemoteApp::CCcRemoteApp()
|
|||||||
// 支持重新启动管理器
|
// 支持重新启动管理器
|
||||||
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
|
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
|
||||||
|
|
||||||
|
//打开文件句柄,检查QQwry.dat是村存在,然后给publi变量设置BOOL值
|
||||||
|
HANDLE hFile = CreateFile("QQwry.dat", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
|
||||||
|
if (hFile != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
m_bIsQQwryExist = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_bIsQQwryExist = false;
|
||||||
|
}
|
||||||
|
CloseHandle(hFile);
|
||||||
// TODO: 在此处添加构造代码,
|
// TODO: 在此处添加构造代码,
|
||||||
// 将所有重要的初始化放置在 InitInstance 中
|
// 将所有重要的初始化放置在 InitInstance 中
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@ class CCcRemoteApp : public CWinApp
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CCcRemoteApp();
|
CCcRemoteApp();
|
||||||
|
bool m_bIsQQwryExist;
|
||||||
CIniFile m_IniFile;//配置文件对象
|
CIniFile m_IniFile;//配置文件对象
|
||||||
// 重写
|
// 重写
|
||||||
public:
|
public:
|
||||||
|
Binary file not shown.
@@ -76,12 +76,14 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>..\..\bin</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>..\..\bin</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
@@ -199,9 +201,12 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\common\macros.h" />
|
||||||
<ClInclude Include="CcRemote.h" />
|
<ClInclude Include="CcRemote.h" />
|
||||||
<ClInclude Include="CcRemoteDlg.h" />
|
<ClInclude Include="CcRemoteDlg.h" />
|
||||||
<ClInclude Include="CSettingDlg.h" />
|
<ClInclude Include="CSettingDlg.h" />
|
||||||
|
<ClInclude Include="CShellDlg.h" />
|
||||||
|
<ClInclude Include="CSystemDlg.h" />
|
||||||
<ClInclude Include="framework.h" />
|
<ClInclude Include="framework.h" />
|
||||||
<ClInclude Include="include\Buffer.h" />
|
<ClInclude Include="include\Buffer.h" />
|
||||||
<ClInclude Include="include\CpuUsage.h" />
|
<ClInclude Include="include\CpuUsage.h" />
|
||||||
@@ -211,6 +216,7 @@
|
|||||||
<ClInclude Include="pch.h" />
|
<ClInclude Include="pch.h" />
|
||||||
<ClInclude Include="PublicStruct.h" />
|
<ClInclude Include="PublicStruct.h" />
|
||||||
<ClInclude Include="Resource.h" />
|
<ClInclude Include="Resource.h" />
|
||||||
|
<ClInclude Include="SEU_QQwry.h" />
|
||||||
<ClInclude Include="targetver.h" />
|
<ClInclude Include="targetver.h" />
|
||||||
<ClInclude Include="TrueColorToolBar.h" />
|
<ClInclude Include="TrueColorToolBar.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -218,6 +224,8 @@
|
|||||||
<ClCompile Include="CcRemote.cpp" />
|
<ClCompile Include="CcRemote.cpp" />
|
||||||
<ClCompile Include="CcRemoteDlg.cpp" />
|
<ClCompile Include="CcRemoteDlg.cpp" />
|
||||||
<ClCompile Include="CSettingDlg.cpp" />
|
<ClCompile Include="CSettingDlg.cpp" />
|
||||||
|
<ClCompile Include="CShellDlg.cpp" />
|
||||||
|
<ClCompile Include="CSystemDlg.cpp" />
|
||||||
<ClCompile Include="include\Buffer.cpp">
|
<ClCompile Include="include\Buffer.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
|
||||||
@@ -239,6 +247,7 @@
|
|||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="SEU_QQwry.cpp" />
|
||||||
<ClCompile Include="TrueColorToolBar.cpp" />
|
<ClCompile Include="TrueColorToolBar.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -249,6 +258,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Image Include="res\CcRemote.ico" />
|
<Image Include="res\CcRemote.ico" />
|
||||||
|
<Image Include="res\cmdshell.ico" />
|
||||||
|
<Image Include="res\system.ico" />
|
||||||
<Image Include="res\toolbar1.bmp" />
|
<Image Include="res\toolbar1.bmp" />
|
||||||
<Image Include="res\ToolBar_Main.bmp" />
|
<Image Include="res\ToolBar_Main.bmp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@@ -63,6 +63,18 @@
|
|||||||
<ClInclude Include="CSettingDlg.h">
|
<ClInclude Include="CSettingDlg.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\common\macros.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="SEU_QQwry.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="CShellDlg.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="CSystemDlg.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="CcRemote.cpp">
|
<ClCompile Include="CcRemote.cpp">
|
||||||
@@ -92,6 +104,15 @@
|
|||||||
<ClCompile Include="CSettingDlg.cpp">
|
<ClCompile Include="CSettingDlg.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="SEU_QQwry.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="CShellDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="CSystemDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="CcRemote.rc">
|
<ResourceCompile Include="CcRemote.rc">
|
||||||
@@ -113,5 +134,11 @@
|
|||||||
<Image Include="res\ToolBar_Main.bmp">
|
<Image Include="res\ToolBar_Main.bmp">
|
||||||
<Filter>资源文件</Filter>
|
<Filter>资源文件</Filter>
|
||||||
</Image>
|
</Image>
|
||||||
|
<Image Include="res\cmdshell.ico">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\system.ico">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@@ -8,13 +8,16 @@
|
|||||||
#include "CcRemoteDlg.h"
|
#include "CcRemoteDlg.h"
|
||||||
#include "afxdialogex.h"
|
#include "afxdialogex.h"
|
||||||
#include "CSettingDlg.h"
|
#include "CSettingDlg.h"
|
||||||
|
#include "..\..\common\macros.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define new DEBUG_NEW
|
#define new DEBUG_NEW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
CCcRemoteDlg *g_pCcRemoteDlg = NULL; //声明全局变量
|
||||||
|
|
||||||
CIOCPServer *m_iocpServer = NULL;
|
CIOCPServer *m_iocpServer = NULL;
|
||||||
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
|
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
|
||||||
@@ -58,6 +61,13 @@ CCcRemoteDlg::CCcRemoteDlg(CWnd* pParent /*=nullptr*/)
|
|||||||
: CDialogEx(IDD_CCREMOTE_DIALOG, pParent)
|
: CDialogEx(IDD_CCREMOTE_DIALOG, pParent)
|
||||||
{
|
{
|
||||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||||
|
//iCount = 0;
|
||||||
|
g_pCcRemoteDlg = this;
|
||||||
|
if (((CCcRemoteApp *)AfxGetApp())->m_bIsQQwryExist)//APP初始化会检查文件是否存在
|
||||||
|
{
|
||||||
|
m_QQwry = new SEU_QQwry;
|
||||||
|
m_QQwry->SetPath("QQWry.Dat");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCcRemoteDlg::DoDataExchange(CDataExchange* pDX)
|
void CCcRemoteDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
@@ -70,6 +80,8 @@ void CCcRemoteDlg::DoDataExchange(CDataExchange* pDX)
|
|||||||
BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
||||||
//-------------自定义------------
|
//-------------自定义------------
|
||||||
ON_MESSAGE(UM_ICONNOTIFY, (LRESULT(__thiscall CWnd::*)(WPARAM, LPARAM))OnIconNotify)
|
ON_MESSAGE(UM_ICONNOTIFY, (LRESULT(__thiscall CWnd::*)(WPARAM, LPARAM))OnIconNotify)
|
||||||
|
ON_MESSAGE(WM_ADDTOLIST,OnAddToList)
|
||||||
|
ON_MESSAGE(WM_OPENSHELLDIALOG, OnOpenShellDialog)
|
||||||
|
|
||||||
//-------------系统-------------
|
//-------------系统-------------
|
||||||
ON_WM_SYSCOMMAND()
|
ON_WM_SYSCOMMAND()
|
||||||
@@ -104,7 +116,6 @@ void CALLBACK CCcRemoteDlg::NotifyProc(LPVOID lpParam, ClientContext *pContext,
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
::MessageBox(NULL, "有连接到来!!", "", NULL);
|
|
||||||
switch (nCode)
|
switch (nCode)
|
||||||
{
|
{
|
||||||
case NC_CLIENT_CONNECT:
|
case NC_CLIENT_CONNECT:
|
||||||
@@ -118,7 +129,7 @@ void CALLBACK CCcRemoteDlg::NotifyProc(LPVOID lpParam, ClientContext *pContext,
|
|||||||
//ProcessReceive(pContext); //这里是有数据到来 但没有完全接收
|
//ProcessReceive(pContext); //这里是有数据到来 但没有完全接收
|
||||||
break;
|
break;
|
||||||
case NC_RECEIVE_COMPLETE:
|
case NC_RECEIVE_COMPLETE:
|
||||||
//ProcessReceiveComplete(pContext); //这里时完全接收 处理发送来的数据 跟进 ProcessReceiveComplete
|
ProcessReceiveComplete(pContext); //这里时完全接收 处理发送来的数据 跟进 ProcessReceiveComplete
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -201,7 +212,7 @@ BOOL CCcRemoteDlg::OnInitDialog()
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
m_OnlineCount = 0;//初始上线数为0
|
||||||
InitSystemMenu();//初始化系统托盘
|
InitSystemMenu();//初始化系统托盘
|
||||||
InitToolBar();//初始化工具栏按钮控件
|
InitToolBar();//初始化工具栏按钮控件
|
||||||
InitMyMenu();//初始化菜单控件
|
InitMyMenu();//初始化菜单控件
|
||||||
@@ -378,7 +389,7 @@ int CCcRemoteDlg::InitList()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CCcRemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing)
|
void CCcRemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing, ClientContext*pContext)
|
||||||
{
|
{
|
||||||
m_CList_Online.InsertItem(0, strIP); //默认为0行 这样所有插入的新列都在最上面
|
m_CList_Online.InsertItem(0, strIP); //默认为0行 这样所有插入的新列都在最上面
|
||||||
m_CList_Online.SetItemText(0, ONLINELIST_ADDR, strAddr); //设置列的显示字符 这里 ONLINELIST_ADDR等 为第二节课中的枚举类型 用这样的方法
|
m_CList_Online.SetItemText(0, ONLINELIST_ADDR, strAddr); //设置列的显示字符 这里 ONLINELIST_ADDR等 为第二节课中的枚举类型 用这样的方法
|
||||||
@@ -387,6 +398,7 @@ void CCcRemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName, CS
|
|||||||
m_CList_Online.SetItemText(0, ONLINELIST_CPU, strCPU);
|
m_CList_Online.SetItemText(0, ONLINELIST_CPU, strCPU);
|
||||||
m_CList_Online.SetItemText(0, ONLINELIST_VIDEO, strVideo);
|
m_CList_Online.SetItemText(0, ONLINELIST_VIDEO, strVideo);
|
||||||
m_CList_Online.SetItemText(0, ONLINELIST_PING, strPing);
|
m_CList_Online.SetItemText(0, ONLINELIST_PING, strPing);
|
||||||
|
m_CList_Online.SetItemData(0, (DWORD)pContext);
|
||||||
ShowMessage(true, strIP + "主机上线");
|
ShowMessage(true, strIP + "主机上线");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,10 +442,10 @@ void CCcRemoteDlg::ShowMessage(bool bIsOK, CString strMsg)
|
|||||||
void CCcRemoteDlg::Test()
|
void CCcRemoteDlg::Test()
|
||||||
{
|
{
|
||||||
ShowMessage(true, "软件初始化成功...");
|
ShowMessage(true, "软件初始化成功...");
|
||||||
AddList("192.168.0.1", "本机局域网", "CHANG", "Windows7", "2.2GHZ", "有", "123232");
|
//AddList("192.168.0.1", "本机局域网", "CHANG", "Windows7", "2.2GHZ", "有", "123232");
|
||||||
AddList("192.168.10.1", "本机局域网", "WANG", "Windows10", "2.2GHZ", "无", "111111");
|
//AddList("192.168.10.1", "本机局域网", "WANG", "Windows10", "2.2GHZ", "无", "111111");
|
||||||
AddList("192.168.18.25", "本机局域网", "LIU", "Windows8", "2.2GHZ", "有", "654321");
|
//AddList("192.168.18.25", "本机局域网", "LIU", "Windows8", "2.2GHZ", "有", "654321");
|
||||||
AddList("192.168.97.162", "本机局域网", "SHANG", "WindowsXP", "2.2GHZ", "无", "123456");
|
//AddList("192.168.97.162", "本机局域网", "SHANG", "WindowsXP", "2.2GHZ", "无", "123456");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,6 +488,8 @@ void CCcRemoteDlg::OnOnlineCmd()
|
|||||||
{
|
{
|
||||||
// TODO: 在此添加命令处理程序代码
|
// TODO: 在此添加命令处理程序代码
|
||||||
MessageBox("CMD");
|
MessageBox("CMD");
|
||||||
|
BYTE bToken = COMMAND_SHELL;
|
||||||
|
SendSelectCommand(&bToken,sizeof(BYTE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -712,4 +726,247 @@ void CCcRemoteDlg::ListenPort()
|
|||||||
if (nMaxConnection == 0)
|
if (nMaxConnection == 0)
|
||||||
nMaxConnection = 10000;
|
nMaxConnection = 10000;
|
||||||
Activate(nPort, nMaxConnection); //开始监听
|
Activate(nPort, nMaxConnection); //开始监听
|
||||||
|
}
|
||||||
|
|
||||||
|
//控制命令都要经过这个函数
|
||||||
|
void CCcRemoteDlg::ProcessReceiveComplete(ClientContext *pContext)
|
||||||
|
{
|
||||||
|
if (pContext == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 如果管理对话框打开,交给相应的对话框处理
|
||||||
|
CDialog *dlg = (CDialog *)pContext->m_Dialog[1]; //这里就是ClientContext 结构体的int m_Dialog[2];
|
||||||
|
|
||||||
|
// 交给窗口处理
|
||||||
|
if (pContext->m_Dialog[0] > 0) //这里查看是否给他赋值了,如果赋值了就把数据传给功能窗口处理
|
||||||
|
{
|
||||||
|
switch (pContext->m_Dialog[0])
|
||||||
|
{
|
||||||
|
//case FILEMANAGER_DLG:
|
||||||
|
// ((CFileManagerDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
//case SCREENSPY_DLG:
|
||||||
|
// ((CScreenSpyDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
//case WEBCAM_DLG:
|
||||||
|
// ((CWebCamDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
//case AUDIO_DLG:
|
||||||
|
// ((CAudioDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
//case KEYBOARD_DLG:
|
||||||
|
// ((CKeyBoardDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
//case SYSTEM_DLG:
|
||||||
|
// ((CSystemDlg *)dlg)->OnReceiveComplete();
|
||||||
|
// break;
|
||||||
|
case SHELL_DLG:
|
||||||
|
((CShellDlg *)dlg)->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (pContext->m_DeCompressionBuffer.GetBuffer(0)[0]) //如果没有赋值就判断是否是上线包和打开功能功能窗口
|
||||||
|
{ //讲解后回到ClientContext结构体
|
||||||
|
/*case TOKEN_AUTH: // 要求验证
|
||||||
|
m_iocpServer->Send(pContext, (PBYTE)m_PassWord.GetBuffer(0), m_PassWord.GetLength() + 1);
|
||||||
|
break;
|
||||||
|
case TOKEN_HEARTBEAT: // 回复心跳包
|
||||||
|
{
|
||||||
|
BYTE bToken = COMMAND_REPLAY_HEARTBEAT;
|
||||||
|
m_iocpServer->Send(pContext, (LPBYTE)&bToken, sizeof(bToken));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;*/
|
||||||
|
case TOKEN_LOGIN: // 上线包
|
||||||
|
|
||||||
|
{
|
||||||
|
//这里处理上线
|
||||||
|
if (m_iocpServer->m_nMaxConnections <= g_pCcRemoteDlg->m_CList_Online.GetItemCount())
|
||||||
|
{
|
||||||
|
closesocket(pContext->m_Socket);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pContext->m_bIsMainSocket = true;
|
||||||
|
g_pCcRemoteDlg->PostMessage(WM_ADDTOLIST, 0, (LPARAM)pContext);
|
||||||
|
}
|
||||||
|
// 激活
|
||||||
|
BYTE bToken = COMMAND_ACTIVED;
|
||||||
|
m_iocpServer->Send(pContext, (LPBYTE)&bToken, sizeof(bToken));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
/*case TOKEN_DRIVE_LIST: // 驱动器列表
|
||||||
|
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事,太菜
|
||||||
|
g_pConnectView->PostMessage(WM_OPENMANAGERDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_BITMAPINFO: //
|
||||||
|
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事
|
||||||
|
g_pConnectView->PostMessage(WM_OPENSCREENSPYDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_WEBCAM_BITMAPINFO: // 摄像头
|
||||||
|
g_pConnectView->PostMessage(WM_OPENWEBCAMDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_AUDIO_START: // 语音
|
||||||
|
g_pConnectView->PostMessage(WM_OPENAUDIODIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_KEYBOARD_START:
|
||||||
|
g_pConnectView->PostMessage(WM_OPENKEYBOARDDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_PSLIST:
|
||||||
|
g_pConnectView->PostMessage(WM_OPENPSLISTDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;*/
|
||||||
|
case TOKEN_SHELL_START:
|
||||||
|
g_pCcRemoteDlg->PostMessage(WM_OPENSHELLDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
// 命令停止当前操作
|
||||||
|
default:
|
||||||
|
closesocket(pContext->m_Socket);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LRESULT CCcRemoteDlg::OnAddToList(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
CString strIP, strAddr, strPCName, strOS, strCPU, strVideo, strPing;
|
||||||
|
|
||||||
|
//注意这里的 ClientContext 正是发送数据时从列表里取出的数据
|
||||||
|
ClientContext *pContext = (ClientContext *)lParam;
|
||||||
|
if (pContext == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
CString strToolTipsText;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//int nCnt = m_pListCtrl->GetItemCount();
|
||||||
|
|
||||||
|
// 不合法的数据包
|
||||||
|
if (pContext->m_DeCompressionBuffer.GetBufferLen() != sizeof(LOGININFO))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
LOGININFO* LoginInfo = (LOGININFO*)pContext->m_DeCompressionBuffer.GetBuffer();
|
||||||
|
|
||||||
|
// ID
|
||||||
|
//CString str;
|
||||||
|
//str.Format("%d", m_nCount++);
|
||||||
|
|
||||||
|
// IP地址
|
||||||
|
//int i = m_pListCtrl->InsertItem(nCnt, str, 15);
|
||||||
|
|
||||||
|
// 外网IP
|
||||||
|
|
||||||
|
sockaddr_in sockAddr;
|
||||||
|
memset(&sockAddr, 0, sizeof(sockAddr));
|
||||||
|
int nSockAddrLen = sizeof(sockAddr);
|
||||||
|
BOOL bResult = getpeername(pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen);
|
||||||
|
CString IPAddress = bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "";
|
||||||
|
//m_pListCtrl->SetItemText(i, 1, IPAddress);
|
||||||
|
strIP = IPAddress;
|
||||||
|
|
||||||
|
// 内网IP
|
||||||
|
//m_pListCtrl->SetItemText(i, 2, inet_ntoa(LoginInfo->IPAddress));
|
||||||
|
//strAddr=inet_ntoa(LoginInfo->IPAddress);
|
||||||
|
// 主机名
|
||||||
|
//m_pListCtrl->SetItemText(i, 3, LoginInfo->HostName);
|
||||||
|
strPCName = LoginInfo->HostName;
|
||||||
|
// 系统
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 显示输出信息
|
||||||
|
char *pszOS = NULL;
|
||||||
|
switch (LoginInfo->OsVerInfoEx.dwPlatformId)
|
||||||
|
{
|
||||||
|
|
||||||
|
case VER_PLATFORM_WIN32_NT:
|
||||||
|
if (LoginInfo->OsVerInfoEx.dwMajorVersion <= 4)
|
||||||
|
pszOS = "NT";
|
||||||
|
if (LoginInfo->OsVerInfoEx.dwMajorVersion == 5 && LoginInfo->OsVerInfoEx.dwMinorVersion == 0)
|
||||||
|
pszOS = "2000";
|
||||||
|
if (LoginInfo->OsVerInfoEx.dwMajorVersion == 5 && LoginInfo->OsVerInfoEx.dwMinorVersion == 1)
|
||||||
|
pszOS = "XP";
|
||||||
|
if (LoginInfo->OsVerInfoEx.dwMajorVersion == 5 && LoginInfo->OsVerInfoEx.dwMinorVersion == 2)
|
||||||
|
pszOS = "2003";
|
||||||
|
if (LoginInfo->OsVerInfoEx.dwMajorVersion == 6 && LoginInfo->OsVerInfoEx.dwMinorVersion == 0)
|
||||||
|
pszOS = "Vista"; // Just Joking
|
||||||
|
}
|
||||||
|
strOS.Format
|
||||||
|
(
|
||||||
|
"%s SP%d (Build %d)",
|
||||||
|
//OsVerInfo.szCSDVersion,
|
||||||
|
pszOS,
|
||||||
|
LoginInfo->OsVerInfoEx.wServicePackMajor,
|
||||||
|
LoginInfo->OsVerInfoEx.dwBuildNumber
|
||||||
|
);
|
||||||
|
//m_pListCtrl->SetItemText(i, 4, strOS);
|
||||||
|
|
||||||
|
// CPU
|
||||||
|
strCPU.Format("%dMHz", LoginInfo->CPUClockMhz);
|
||||||
|
//m_pListCtrl->SetItemText(i, 5, str);
|
||||||
|
|
||||||
|
// Speed
|
||||||
|
strPing.Format("%d", LoginInfo->dwSpeed);
|
||||||
|
//m_pListCtrl->SetItemText(i, 6, str);
|
||||||
|
|
||||||
|
|
||||||
|
strVideo = LoginInfo->bIsWebCam ? "有" : "--";
|
||||||
|
//m_pListCtrl->SetItemText(i, 7, str);
|
||||||
|
|
||||||
|
strToolTipsText.Format("New Connection Information:\nHost: %s\nIP : %s\nOS : Windows %s", LoginInfo->HostName, IPAddress, strOS);
|
||||||
|
|
||||||
|
if (((CCcRemoteApp *)AfxGetApp())->m_bIsQQwryExist)
|
||||||
|
{
|
||||||
|
|
||||||
|
strAddr = m_QQwry->IPtoAdd(IPAddress);
|
||||||
|
|
||||||
|
//strToolTipsText += "\nArea: ";
|
||||||
|
//strToolTipsText += str;
|
||||||
|
}
|
||||||
|
// 指定唯一标识
|
||||||
|
//m_pListCtrl->SetItemData(i, (DWORD) pContext); //这里将服务端的套接字等信息加入列表中保存
|
||||||
|
AddList(strIP, strAddr, strPCName, strOS, strCPU, strVideo, strPing, pContext);
|
||||||
|
}
|
||||||
|
catch (...) {}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCcRemoteDlg::SendSelectCommand(PBYTE pData, UINT nSize)
|
||||||
|
{
|
||||||
|
// TODO: 在此处添加实现代码
|
||||||
|
//取得选中的哪一个服务端list位置
|
||||||
|
POSITION pos = m_CList_Online.GetFirstSelectedItemPosition(); //iterator for the CListCtrl
|
||||||
|
while (pos) //so long as we have a valid POSITION, we keep iterating
|
||||||
|
{
|
||||||
|
int nItem = m_CList_Online.GetNextSelectedItem(pos);
|
||||||
|
|
||||||
|
//从列表条目中取出ClientContext结构体
|
||||||
|
//上线的时候传进的一个ClientContext值
|
||||||
|
ClientContext* pContext = (ClientContext*)m_CList_Online.GetItemData(nItem);
|
||||||
|
// 发送获得驱动器列表数据包
|
||||||
|
m_iocpServer->Send(pContext, pData, nSize); //调用 m_iocpServer 的Send 函数发送数据 查看m_iocpServer 定义
|
||||||
|
|
||||||
|
//Save the pointer to the new item in our CList
|
||||||
|
} //EO while(pos) -- at this point we have deleted the moving items and stored them in memoryt .
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//打开终端管理窗口
|
||||||
|
LRESULT CCcRemoteDlg::OnOpenShellDialog(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
ClientContext *pContext = (ClientContext *)lParam;
|
||||||
|
//这里定义远程终端的对话框,转到远程终端的CShellDlg类的定义 先查看对话框界面后转到OnInitDialog
|
||||||
|
CShellDlg *dlg = new CShellDlg(this, m_iocpServer, pContext);
|
||||||
|
|
||||||
|
// 设置父窗口为卓面
|
||||||
|
dlg->Create(IDD_SHELL, GetDesktopWindow());
|
||||||
|
dlg->ShowWindow(SW_SHOW);
|
||||||
|
|
||||||
|
pContext->m_Dialog[0] = SHELL_DLG;
|
||||||
|
pContext->m_Dialog[1] = (int)dlg;
|
||||||
|
return 0;
|
||||||
}
|
}
|
@@ -4,6 +4,8 @@
|
|||||||
#include "TrueColorToolBar.h"
|
#include "TrueColorToolBar.h"
|
||||||
#include "PublicStruct.h"
|
#include "PublicStruct.h"
|
||||||
#include "include/IOCPServer.h"
|
#include "include/IOCPServer.h"
|
||||||
|
#include "SEU_QQwry.h"
|
||||||
|
#include "CShellDlg.h"
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
@@ -43,6 +45,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
//--------------变量及常量----------------
|
//--------------变量及常量----------------
|
||||||
|
SEU_QQwry *m_QQwry;
|
||||||
int m_OnlineCount;//上线计数
|
int m_OnlineCount;//上线计数
|
||||||
CBrush m_brush;//绘色函数
|
CBrush m_brush;//绘色函数
|
||||||
CMenu popup;//LIST菜单变量
|
CMenu popup;//LIST菜单变量
|
||||||
@@ -79,7 +82,7 @@ private:
|
|||||||
void InitStatusBar();//初始化状态控件
|
void InitStatusBar();//初始化状态控件
|
||||||
void InitToolBar();//初始化工具条按钮控件
|
void InitToolBar();//初始化工具条按钮控件
|
||||||
void InitSystemMenu();//初始化系统托盘菜单
|
void InitSystemMenu();//初始化系统托盘菜单
|
||||||
void AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing);
|
void AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing, ClientContext*pContext);
|
||||||
void ShowMessage(bool bIsOK, CString strMsg);//显示日志
|
void ShowMessage(bool bIsOK, CString strMsg);//显示日志
|
||||||
void Test();
|
void Test();
|
||||||
|
|
||||||
@@ -88,10 +91,12 @@ private:
|
|||||||
static void CALLBACK NotifyProc(LPVOID lpParam, ClientContext* pContext, UINT nCode);
|
static void CALLBACK NotifyProc(LPVOID lpParam, ClientContext* pContext, UINT nCode);
|
||||||
void Activate(UINT nPort, UINT nMaxConnections);//监听端口
|
void Activate(UINT nPort, UINT nMaxConnections);//监听端口
|
||||||
|
|
||||||
|
static void ProcessReceiveComplete(ClientContext *pContext);
|
||||||
public:
|
public:
|
||||||
//-------------自定义消息处理-------------
|
//-------------自定义消息处理-------------
|
||||||
afx_msg void OnIconNotify(WPARAM wParam, LPARAM lParam);
|
afx_msg void OnIconNotify(WPARAM wParam, LPARAM lParam);
|
||||||
|
afx_msg LRESULT OnAddToList(WPARAM wParam, LPARAM lParam);
|
||||||
|
afx_msg LRESULT OnOpenShellDialog(WPARAM, LPARAM);
|
||||||
|
|
||||||
//-------------系统消息处理-------------
|
//-------------系统消息处理-------------
|
||||||
afx_msg void OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult);
|
afx_msg void OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult);
|
||||||
@@ -109,5 +114,7 @@ public:
|
|||||||
afx_msg void OnMainClose();
|
afx_msg void OnMainClose();
|
||||||
afx_msg void OnMainBuild();
|
afx_msg void OnMainBuild();
|
||||||
afx_msg void OnMainAbout();
|
afx_msg void OnMainAbout();
|
||||||
afx_msg void OnClose();
|
afx_msg void OnClose();
|
||||||
|
private:
|
||||||
|
void SendSelectCommand(PBYTE pData, UINT nSize);
|
||||||
};
|
};
|
||||||
|
@@ -25,3 +25,44 @@ enum
|
|||||||
UM_ICONNOTIFY = WM_USER + 0x100,
|
UM_ICONNOTIFY = WM_USER + 0x100,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
WM_CLIENT_CONNECT = WM_APP + 0x1001,
|
||||||
|
WM_CLIENT_CLOSE,
|
||||||
|
WM_CLIENT_NOTIFY,
|
||||||
|
WM_DATA_IN_MSG,
|
||||||
|
WM_DATA_OUT_MSG,
|
||||||
|
|
||||||
|
|
||||||
|
WM_ADDTOLIST = WM_USER + 102, // <20><><EFBFBD>ӵ<EFBFBD><D3B5>б<EFBFBD><D0B1><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||||
|
WM_REMOVEFROMLIST, // <20><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ͼ<EFBFBD><CDBC>ɾ<EFBFBD><C9BE>
|
||||||
|
WM_OPENMANAGERDIALOG, // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
WM_OPENSCREENSPYDIALOG, // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
|
||||||
|
WM_OPENWEBCAMDIALOG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
|
||||||
|
WM_OPENAUDIODIALOG, // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
WM_OPENKEYBOARDDIALOG, // <20><EFBFBD><F2BFAABC>̼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||||||
|
WM_OPENPSLISTDIALOG, // <20><EFBFBD><F2BFAABD>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
WM_OPENSHELLDIALOG, // <20><><EFBFBD><EFBFBD>shell<6C><6C><EFBFBD><EFBFBD>
|
||||||
|
WM_RESETPORT, // <20>ı<EFBFBD><C4B1>˿<EFBFBD>
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
FILEMANAGER_DLG = 1,
|
||||||
|
SCREENSPY_DLG,
|
||||||
|
WEBCAM_DLG,
|
||||||
|
AUDIO_DLG,
|
||||||
|
KEYBOARD_DLG,
|
||||||
|
SYSTEM_DLG,
|
||||||
|
SHELL_DLG
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE bToken; // = 1
|
||||||
|
OSVERSIONINFOEX OsVerInfoEx; // <20>汾<EFBFBD><E6B1BE>Ϣ
|
||||||
|
int CPUClockMhz; // CPU<50><55>Ƶ
|
||||||
|
IN_ADDR IPAddress; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
|
||||||
|
char HostName[50]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
bool bIsWebCam; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||||
|
DWORD dwSpeed; // <20><><EFBFBD><EFBFBD>
|
||||||
|
}LOGININFO;
|
||||||
|
|
||||||
|
@@ -2,20 +2,13 @@ g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.pch
|
|||||||
g:\ccremote\ccremote\ccremote\ccremote\release\vc141.pdb
|
g:\ccremote\ccremote\ccremote\ccremote\release\vc141.pdb
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\pch.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\pch.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\truecolortoolbar.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\truecolortoolbar.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\release\seu_qqwry.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\inifile.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\inifile.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\cpuusage.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\cpuusage.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\release\cshelldlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\csettingdlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\csettingdlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremotedlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\ccremotedlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.obj
|
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\iocpserver.obj
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\buffer.obj
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.res
|
|
||||||
g:\ccremote\ccremote\ccremote\release\ccremote.exe
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.command.1.tlog
|
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.command.1.tlog
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.read.1.tlog
|
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.read.1.tlog
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.write.1.tlog
|
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.write.1.tlog
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\link.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\link.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.command.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.read.1.tlog
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.write.1.tlog
|
|
||||||
|
@@ -1,17 +1,31 @@
|
|||||||
pch.cpp
|
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||||
|
pch.cpp
|
||||||
CcRemote.cpp
|
CcRemote.cpp
|
||||||
CcRemoteDlg.cpp
|
CcRemoteDlg.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(148): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(159): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(153): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(164): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
|
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(305): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(322): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(788): warning C4018: “<=”: 有符号/无符号不匹配
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(867): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(294): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(311): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
|
||||||
CSettingDlg.cpp
|
CSettingDlg.cpp
|
||||||
|
CShellDlg.cpp
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(95): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
|
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(122): warning C4018: “<”: 有符号/无符号不匹配
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
||||||
|
CSystemDlg.cpp
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\csystemdlg.cpp(127): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
|
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
CpuUsage.cpp
|
CpuUsage.cpp
|
||||||
IniFile.cpp
|
IniFile.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\inifile.cpp(33): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
g:\ccremote\ccremote\ccremote\ccremote\inifile.cpp(33): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||||
|
SEU_QQwry.cpp
|
||||||
TrueColorToolBar.cpp
|
TrueColorToolBar.cpp
|
||||||
Buffer.cpp
|
Buffer.cpp
|
||||||
IOCPServer.cpp
|
IOCPServer.cpp
|
||||||
@@ -22,6 +36,6 @@ g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(719): warning C499
|
|||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(768): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(768): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(914): warning C4018: “>=”: 有符号/无符号不匹配
|
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(914): warning C4018: “>=”: 有符号/无符号不匹配
|
||||||
正在生成代码
|
正在生成代码
|
||||||
All 405 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
All 473 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||||
已完成代码的生成
|
已完成代码的生成
|
||||||
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\Release\CcRemote.exe
|
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||||
|
Binary file not shown.
436
CcRemote/CcRemote/SEU_QQwry.cpp
Normal file
436
CcRemote/CcRemote/SEU_QQwry.cpp
Normal file
@@ -0,0 +1,436 @@
|
|||||||
|
/*********************************************************************
|
||||||
|
* SEU_QQwry.cpp
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:<3A><><EFBFBD><EFBFBD>IP<49><50><EFBFBD>ݿ<EFBFBD> QQWry.dat<61>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;
|
||||||
|
*********************************************************************/
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "SEU_QQwry.h"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#undef THIS_FILE
|
||||||
|
static char THIS_FILE[]=__FILE__;
|
||||||
|
#define new DEBUG_NEW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
// Construction/Destruction
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
SEU_QQwry::SEU_QQwry()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
SEU_QQwry::~SEU_QQwry()
|
||||||
|
{
|
||||||
|
CloseQQwry();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* OpenQQwry(CString szFileName)
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD>ݿ<EFBFBD><DDBF>ļ<EFBFBD><C4BC>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQWry.dat<61>ļ<EFBFBD>
|
||||||
|
*********************************************************************/
|
||||||
|
bool SEU_QQwry::OpenQQwry(CString szFileName)
|
||||||
|
{
|
||||||
|
if(!m_file.Open(szFileName,CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone))
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SEU_QQwry::CloseQQwry()
|
||||||
|
{
|
||||||
|
if(m_bOpen)m_file.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SEU_QQwry::GetBE()
|
||||||
|
{
|
||||||
|
if(!m_bOpen)return false;
|
||||||
|
m_file.Seek(0,CFile::begin);
|
||||||
|
if(m_file.Read(&m_be,sizeof(BE))>0)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* GetStartIPInfo(int iIndex)
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ö<EFBFBD>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49>ε<EFBFBD><CEB5><EFBFBD>ʼIP
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:
|
||||||
|
*********************************************************************/
|
||||||
|
int SEU_QQwry::GetStartIPInfo(int iIndex)
|
||||||
|
{
|
||||||
|
BYTE buf[MAXBUF];
|
||||||
|
int ioff;
|
||||||
|
if(!m_bOpen) return 0;
|
||||||
|
ioff=m_be.uBOff+iIndex*7;
|
||||||
|
if(ioff>m_be.uEOff) return 0;
|
||||||
|
m_file.Seek(m_be.uBOff+iIndex*7,CFile::begin);
|
||||||
|
m_file.Read(&m_ipoff,sizeof(IPOFF));
|
||||||
|
ioff=(m_ipoff.off1+m_ipoff.off2*256+m_ipoff.off3*256*256);
|
||||||
|
m_file.Seek(ioff,CFile::begin);
|
||||||
|
m_file.Read(&m_ei,sizeof(EndInfo));
|
||||||
|
|
||||||
|
if(m_ei.buf[0]!=1 && m_ei.buf[0]!=2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=1;//û<><C3BB><EFBFBD><EFBFBD>
|
||||||
|
for(int i=0;i<MAXBUF;i++)
|
||||||
|
{
|
||||||
|
if(m_ei.buf[i]==0)
|
||||||
|
{
|
||||||
|
if(m_ei.buf[i+1]==2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=2;//Local <20><>
|
||||||
|
m_ei.offset1=m_ei.buf[i+2]+
|
||||||
|
m_ei.buf[i+3]*256+
|
||||||
|
m_ei.buf[i+4]*256*256;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(m_ei.buf[0]==2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=3;//Country <20><> local<61><6C><EFBFBD><EFBFBD>
|
||||||
|
m_ei.offset1=m_ei.buf[1]+m_ei.buf[2]*256+m_ei.buf[3]*256*256;
|
||||||
|
if(m_ei.buf[4]!=2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=3;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_ei.bMode=4;//Country<72><79> local<61><6C>
|
||||||
|
m_ei.offset2=m_ei.buf[5]+m_ei.buf[6]*256+m_ei.buf[7]*256*256;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(m_ei.buf[0]==1)
|
||||||
|
{
|
||||||
|
m_ei.offset1=m_ei.buf[1]+m_ei.buf[2]*256+m_ei.buf[3]*256*256;
|
||||||
|
m_file.Seek(m_ei.offset1,CFile::begin);
|
||||||
|
m_file.Read(buf,MAXBUF);
|
||||||
|
memcpy(m_ei.buf,buf,MAXBUF);
|
||||||
|
m_ei.bMode=0;
|
||||||
|
if(m_ei.buf[0]!=2)
|
||||||
|
{
|
||||||
|
for(int i=0;i<MAXBUF;i++)
|
||||||
|
{
|
||||||
|
if(m_ei.buf[i]==0)
|
||||||
|
{
|
||||||
|
if(m_ei.buf[i+1]!=2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=5;//1 û<><C3BB><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_ei.bMode=6;//1 Country<72><79><EFBFBD><EFBFBD> Local <20><>
|
||||||
|
m_ei.offset2=m_ei.buf[i+2]+
|
||||||
|
m_ei.buf[i+3]*256+
|
||||||
|
m_ei.buf[i+4]*256*256;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
if(m_ei.buf[4]!=2)
|
||||||
|
{
|
||||||
|
m_ei.bMode=7;// 1 Country<72><79> Local<61><6C><EFBFBD><EFBFBD>
|
||||||
|
m_ei.offset2=m_ei.buf[1]+
|
||||||
|
m_ei.buf[2]*256+
|
||||||
|
m_ei.buf[3]*256*256;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_ei.bMode=8;// 1 Country<72><79> Local<61><6C>
|
||||||
|
m_ei.offset1=m_ei.buf[1]+
|
||||||
|
m_ei.buf[2]*256+
|
||||||
|
m_ei.buf[3]*256*256;
|
||||||
|
m_ei.offset2=m_ei.buf[5]+
|
||||||
|
m_ei.buf[6]*256+
|
||||||
|
m_ei.buf[7]*256*256;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ioff;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SEU_QQwry::GetRecordCount(void)//<2F>õ<EFBFBD><C3B5>ܵ<EFBFBD>IP<49><50>¼<EFBFBD><C2BC>
|
||||||
|
{
|
||||||
|
if(!m_bOpen) return 0;
|
||||||
|
if((m_be.uEOff-m_be.uBOff)<0) return 0;
|
||||||
|
return (m_be.uEOff-m_be.uBOff)/7+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString SEU_QQwry::GetStr(int ioffset)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>Ϣ
|
||||||
|
{
|
||||||
|
if(ioffset>m_be.uEOff) return "";
|
||||||
|
BYTE ch;
|
||||||
|
CString buf="";
|
||||||
|
m_file.Seek(ioffset,CFile::begin);
|
||||||
|
int i=0;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
m_file.Read(&ch,1);
|
||||||
|
if(ch==0)
|
||||||
|
break;
|
||||||
|
buf+=ch;
|
||||||
|
i++;
|
||||||
|
if(i>50)break;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* GetCountryLocal(int index)
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ַ
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:
|
||||||
|
*********************************************************************/
|
||||||
|
CString SEU_QQwry::GetCountryLocal(int index)
|
||||||
|
{
|
||||||
|
if(index<0 || index>GetRecordCount()-1)
|
||||||
|
return "û<EFBFBD>в鵽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ";
|
||||||
|
return GetCountryLocal(m_ei.bMode,GetStartIPInfo(index)+4);
|
||||||
|
}
|
||||||
|
|
||||||
|
CString SEU_QQwry::GetCountryLocal(BYTE bMode,int ioffset)
|
||||||
|
{
|
||||||
|
CString buf="";
|
||||||
|
if(bMode==1)//X û<><C3BB><EFBFBD><EFBFBD>
|
||||||
|
{
|
||||||
|
buf=GetStr(ioffset);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr();
|
||||||
|
}
|
||||||
|
if(bMode==2)//X Country<72><79><EFBFBD><EFBFBD> Local <20><>
|
||||||
|
{
|
||||||
|
buf=GetStr(ioffset);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(m_ei.offset1);
|
||||||
|
}
|
||||||
|
if(bMode==3)//2 Country<72><79> local<61><6C><EFBFBD><EFBFBD>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset1);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(ioffset+4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bMode==4)//2 Country<72><79> local<61><6C>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset1);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(m_ei.offset2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bMode==5)//1 û<><C3BB><EFBFBD><EFBFBD>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset1);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bMode==6)//1 Country<72><79><EFBFBD><EFBFBD> Local <20><>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset1);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(m_ei.offset2);
|
||||||
|
}
|
||||||
|
if(bMode==7)//1 Country<72><79> Local <20><><EFBFBD><EFBFBD>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset2);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(m_ei.offset1+4);
|
||||||
|
}
|
||||||
|
if(bMode==8)//1 Country<72><79> Local<61><6C>
|
||||||
|
{
|
||||||
|
buf=GetStr(m_ei.offset1);
|
||||||
|
buf+=" ";
|
||||||
|
buf+=GetStr(m_ei.offset2);
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString SEU_QQwry::GetStr()
|
||||||
|
{
|
||||||
|
BYTE ch;
|
||||||
|
CString buf="";
|
||||||
|
int i=0;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
m_file.Read(&ch,1);
|
||||||
|
if(ch==0)
|
||||||
|
break;
|
||||||
|
buf+=ch;
|
||||||
|
i++;
|
||||||
|
if(i>50)break;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* SaveToFile()
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ļ<EFBFBD>
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:
|
||||||
|
*********************************************************************/
|
||||||
|
void SEU_QQwry::SaveToFile(CString Name)
|
||||||
|
{
|
||||||
|
CString str1,str2;
|
||||||
|
DWORD dwBytesWrite;
|
||||||
|
HANDLE hFile = INVALID_HANDLE_VALUE;
|
||||||
|
hFile = CreateFile(Name+".txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
|
||||||
|
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
if (hFile == INVALID_HANDLE_VALUE)
|
||||||
|
return;
|
||||||
|
int ioff;
|
||||||
|
m_buf.Format("Total %d\r\n",GetRecordCount());//<2F>õ<EFBFBD><C3B5>ܼ<EFBFBD>¼
|
||||||
|
WriteFile(hFile, m_buf.GetBuffer(0), m_buf.GetLength(), &dwBytesWrite, NULL);
|
||||||
|
|
||||||
|
for(m_i=0;m_i<GetRecordCount();m_i++)
|
||||||
|
{
|
||||||
|
ioff=GetStartIPInfo(m_i);//<2F>õ<EFBFBD><C3B5><EFBFBD>ʼ<EFBFBD><CABC>IP<49><50>Ϣ
|
||||||
|
str1.Format("%d.%d.%d.%d",m_ipoff.b3,m_ipoff.b2,m_ipoff.b1,m_ipoff.b0);//<2F><>ʼIP
|
||||||
|
str2.Format("%d.%d.%d.%d",m_ei.b3,m_ei.b2,m_ei.b1,m_ei.b0);//<2F><><EFBFBD><EFBFBD>IP
|
||||||
|
m_buf.Format("%-15s %-15s %s\r\n",
|
||||||
|
str1,str2,GetCountryLocal(m_ei.bMode,ioff+4));
|
||||||
|
WriteFile(hFile, m_buf.GetBuffer(0), m_buf.GetLength(), &dwBytesWrite, NULL);
|
||||||
|
}
|
||||||
|
CloseHandle(hFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* IPtoAdd(CString szIP)
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD>IP<49>ҵ<EFBFBD><D2B5><EFBFBD>ַ
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:
|
||||||
|
*********************************************************************/
|
||||||
|
CString SEU_QQwry::IPtoAdd(CString szIP)
|
||||||
|
{
|
||||||
|
if(szIP=="")return "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD>ַ";
|
||||||
|
return GetCountryLocal(GetIndex(szIP));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* GetIndex(CString szIP)
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD>IP<49>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:
|
||||||
|
*********************************************************************/
|
||||||
|
int SEU_QQwry::GetIndex(CString szIP)
|
||||||
|
{
|
||||||
|
int index=-1;
|
||||||
|
DWORD dwInputIP;
|
||||||
|
DWORD dwStartIP;
|
||||||
|
dwInputIP=IPtoDWORD(szIP);
|
||||||
|
//<2F><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȿ<D9B6>һЩ
|
||||||
|
int iT;
|
||||||
|
int iB,iE;
|
||||||
|
iB=0;
|
||||||
|
iE=GetRecordCount()-1;
|
||||||
|
iT=iE/2;
|
||||||
|
|
||||||
|
while(iB<iE)
|
||||||
|
{
|
||||||
|
dwStartIP=GetSIP(iT);
|
||||||
|
if(dwInputIP==dwStartIP)
|
||||||
|
{
|
||||||
|
index =iT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if((iE-iB)<=1)
|
||||||
|
{
|
||||||
|
for(int i=iB;i<=iE;i++)
|
||||||
|
{
|
||||||
|
dwStartIP=GetSIP(i);
|
||||||
|
if(dwStartIP<=dwInputIP && dwInputIP<=m_dwLastIP)
|
||||||
|
{
|
||||||
|
index=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dwInputIP>dwStartIP)
|
||||||
|
{
|
||||||
|
iB=iT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iE=iT;
|
||||||
|
}
|
||||||
|
iT=iB+(iE-iB)/2;
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>DWORD<52><44><EFBFBD>͵<EFBFBD>IP,GetIndex(CString szIP)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||||
|
DWORD SEU_QQwry::GetSIP(int index)
|
||||||
|
{
|
||||||
|
DWORD ip;
|
||||||
|
BYTE b[3];
|
||||||
|
int ioff;
|
||||||
|
if(!m_bOpen)return -1;
|
||||||
|
if(index>GetRecordCount()-1)return -1;
|
||||||
|
if(index<0)return -1;
|
||||||
|
ioff=m_be.uBOff+index*7;
|
||||||
|
m_file.Seek(ioff,CFile::begin);
|
||||||
|
m_file.Read(&ip,4);
|
||||||
|
m_file.Read(b,3);
|
||||||
|
ioff=b[0]+b[1]*256+b[2]*256*256;
|
||||||
|
m_file.Seek(ioff,CFile::begin);
|
||||||
|
m_file.Read(&m_dwLastIP,4);
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
//תCStringΪDWORD,GetIndex(CString szIP)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
||||||
|
DWORD SEU_QQwry::IPtoDWORD(CString szIP)
|
||||||
|
{
|
||||||
|
DWORD iIP;
|
||||||
|
BYTE b[4];
|
||||||
|
CString szTemp;
|
||||||
|
char ch;
|
||||||
|
int iLen;
|
||||||
|
int iXB;
|
||||||
|
szIP+=".";
|
||||||
|
memset(b,0,4);
|
||||||
|
iLen=szIP.GetLength();
|
||||||
|
iXB=0;
|
||||||
|
iIP=0;
|
||||||
|
for(int i=0;i<iLen;i++)
|
||||||
|
{
|
||||||
|
ch=szIP.GetAt(i);
|
||||||
|
szTemp+=ch;
|
||||||
|
if(ch=='.')
|
||||||
|
{
|
||||||
|
b[iXB]=atoi(szTemp);
|
||||||
|
szTemp="";
|
||||||
|
iXB++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iIP=b[0]*256*256*256+b[1]*256*256+b[2]*256+b[3];
|
||||||
|
return iIP;
|
||||||
|
}
|
||||||
|
/*************************************************************/
|
||||||
|
|
||||||
|
void SEU_QQwry::SetPath(CString path)
|
||||||
|
{
|
||||||
|
m_bOpen=OpenQQwry(path);
|
||||||
|
GetBE();
|
||||||
|
}
|
82
CcRemote/CcRemote/SEU_QQwry.h
Normal file
82
CcRemote/CcRemote/SEU_QQwry.h
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
/*********************************************************************
|
||||||
|
* SEU_QQwry.h
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* ˵<><CBB5>:<3A><><EFBFBD><EFBFBD>IP<49><50><EFBFBD>ݿ<EFBFBD> QQWry.dat<61>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
*
|
||||||
|
* <20><><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;
|
||||||
|
*********************************************************************/
|
||||||
|
#include "pch.h"
|
||||||
|
#if !defined(AFX_SEU_QQWRY_H)
|
||||||
|
#define AFX_SEU_QQWRY_H
|
||||||
|
|
||||||
|
#if _MSC_VER > 1000
|
||||||
|
#pragma once
|
||||||
|
#endif // _MSC_VER > 1000
|
||||||
|
|
||||||
|
#define MAXBUF 50
|
||||||
|
|
||||||
|
typedef struct _tagEndInfo
|
||||||
|
{
|
||||||
|
BYTE b0;
|
||||||
|
BYTE b1;
|
||||||
|
BYTE b2;
|
||||||
|
BYTE b3;
|
||||||
|
BYTE buf[MAXBUF];
|
||||||
|
BYTE bMode;
|
||||||
|
int offset1;
|
||||||
|
int offset2;
|
||||||
|
}EndInfo,PEndInfo;
|
||||||
|
|
||||||
|
typedef struct _tagIPOFF
|
||||||
|
{
|
||||||
|
BYTE b0;
|
||||||
|
BYTE b1;
|
||||||
|
BYTE b2;
|
||||||
|
BYTE b3;
|
||||||
|
BYTE off1;
|
||||||
|
BYTE off2;
|
||||||
|
BYTE off3;
|
||||||
|
}IPOFF,*PIPOFF;
|
||||||
|
|
||||||
|
typedef struct _tagBE
|
||||||
|
{
|
||||||
|
int uBOff;
|
||||||
|
int uEOff;
|
||||||
|
}BE,*PBE;
|
||||||
|
|
||||||
|
class SEU_QQwry
|
||||||
|
{
|
||||||
|
public://<2F><>ͨ<EFBFBD>û<EFBFBD><C3BB>ӿں<D3BF><DABA><EFBFBD>
|
||||||
|
void SetPath(CString path);//<2F><><EFBFBD><EFBFBD>QQWry.dat<61><74>·<EFBFBD><C2B7>
|
||||||
|
CString IPtoAdd(CString szIP);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP,<2C><><EFBFBD><EFBFBD>IP<49><50>Ӧ<EFBFBD>ĵ<EFBFBD>ַ
|
||||||
|
void SaveToFile(CString Name);//<2F><>QQWry.dat<61>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||||
|
|
||||||
|
public://<2F><EFBFBD><DFBC>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
DWORD m_dwLastIP;
|
||||||
|
CString GetCountryLocal(int index);
|
||||||
|
DWORD GetSIP(int index);
|
||||||
|
DWORD IPtoDWORD(CString szIP);
|
||||||
|
int GetIndex(CString szIP);
|
||||||
|
CString GetStr(void);
|
||||||
|
CString GetCountryLocal(BYTE bMode,int ioffset);
|
||||||
|
CString GetStr(int ioffset);
|
||||||
|
int GetRecordCount(void);
|
||||||
|
int m_i;
|
||||||
|
int GetStartIPInfo(int iIndex);
|
||||||
|
CString m_buf;
|
||||||
|
bool GetBE(void);
|
||||||
|
bool OpenQQwry(CString szFileName);//<2F><><EFBFBD><EFBFBD>QQwry<72><79><EFBFBD>ݿ<EFBFBD>
|
||||||
|
void CloseQQwry(void);//<2F>ر<EFBFBD>QQwry<72><79><EFBFBD>ݿ<EFBFBD>
|
||||||
|
BE m_be;
|
||||||
|
IPOFF m_ipoff;
|
||||||
|
EndInfo m_ei;
|
||||||
|
SEU_QQwry();
|
||||||
|
virtual ~SEU_QQwry();
|
||||||
|
private:
|
||||||
|
bool m_bOpen;
|
||||||
|
CFile m_file;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // !defined(AFX_SEU_QQWRY_H)
|
@@ -84,7 +84,7 @@ public:
|
|||||||
m_ioType = ioType;
|
m_ioType = ioType;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//lang2.1_3
|
|
||||||
|
|
||||||
struct ClientContext //<2F><EFBFBD><F2B5A5B7><EFBFBD>ClientContext<78>ṹ<EFBFBD><E1B9B9>Ȼ<EFBFBD><C8BB><EFBFBD>ص<EFBFBD> SendSelectCommand
|
struct ClientContext //<2F><EFBFBD><F2B5A5B7><EFBFBD>ClientContext<78>ṹ<EFBFBD><E1B9B9>Ȼ<EFBFBD><C8BB><EFBFBD>ص<EFBFBD> SendSelectCommand
|
||||||
{
|
{
|
||||||
|
@@ -12,6 +12,8 @@
|
|||||||
// 添加要在此处预编译的标头
|
// 添加要在此处预编译的标头
|
||||||
#include "framework.h"
|
#include "framework.h"
|
||||||
#include <afxcontrolbars.h>
|
#include <afxcontrolbars.h>
|
||||||
|
#include <afxwin.h>
|
||||||
|
#include <afxwin.h>
|
||||||
|
|
||||||
#endif //PCH_H
|
#endif //PCH_H
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 108 KiB |
BIN
CcRemote/CcRemote/res/cmdshell.ico
Normal file
BIN
CcRemote/CcRemote/res/cmdshell.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
BIN
CcRemote/CcRemote/res/system.ico
Normal file
BIN
CcRemote/CcRemote/res/system.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
@@ -17,11 +17,21 @@
|
|||||||
#define IDR_MENU3 137
|
#define IDR_MENU3 137
|
||||||
#define IDR_MENU_NOTIFY 137
|
#define IDR_MENU_NOTIFY 137
|
||||||
#define IDD_DIALOG_SETTING 138
|
#define IDD_DIALOG_SETTING 138
|
||||||
|
#define IDD_SHELL 140
|
||||||
|
#define IDI_ICON1 142
|
||||||
|
#define IDI_CMDSHELL 142
|
||||||
|
#define IDD_SYSTEM 143
|
||||||
|
#define IDI_SYSTM 146
|
||||||
|
#define IDI_SYSTEM 146
|
||||||
#define IDC_ONLINE 1000
|
#define IDC_ONLINE 1000
|
||||||
#define IDC_LIST2 1001
|
#define IDC_LIST2 1001
|
||||||
#define IDC_MESSAGE 1001
|
#define IDC_MESSAGE 1001
|
||||||
#define IDC_EDIT_PORT 1002
|
#define IDC_EDIT_PORT 1002
|
||||||
#define IDC_EDIT_MAX 1003
|
#define IDC_EDIT_MAX 1003
|
||||||
|
#define IDC_EDIT 1003
|
||||||
|
#define IDC_TAB 1004
|
||||||
|
#define IDC_LIST_WINDOWS 1005
|
||||||
|
#define IDC_LIST_PROCESS 1006
|
||||||
#define ID_ONLINE_32771 32771
|
#define ID_ONLINE_32771 32771
|
||||||
#define ID_ONLINE_32772 32772
|
#define ID_ONLINE_32772 32772
|
||||||
#define ID_ONLINE_32773 32773
|
#define ID_ONLINE_32773 32773
|
||||||
@@ -72,9 +82,9 @@
|
|||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 140
|
#define _APS_NEXT_RESOURCE_VALUE 147
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32817
|
#define _APS_NEXT_COMMAND_VALUE 32817
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1003
|
#define _APS_NEXT_CONTROL_VALUE 1006
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -5,7 +5,7 @@ echo *.aps *.idb *.ncp *.obj *.pch *.tmp *.sbr
|
|||||||
echo ----------------------------------------------------
|
echo ----------------------------------------------------
|
||||||
pause
|
pause
|
||||||
|
|
||||||
del /F /Q /S *.aps *.idb *.ipdb *.iobj *.db *.ncp *.obj *.pch *.sbr *.tmp *.pdb *.bsc *.ilk *.sdf *.ncb *.dep *.ipch *.tlog *.dll *.exp
|
del /F /Q /S *.aps *.idb *.ipdb *.iobj *.db *.ncp *.obj *.pch *.sbr *.tmp *.pdb *.bsc *.ilk *.sdf *.ncb *.dep *.ipch *.tlog *.exp
|
||||||
|
|
||||||
|
|
||||||
pause
|
pause
|
||||||
|
Binary file not shown.
BIN
bin/QQwry.dat
Normal file
BIN
bin/QQwry.dat
Normal file
Binary file not shown.
BIN
bin/server/CcMainDll.dll
Normal file
BIN
bin/server/CcMainDll.dll
Normal file
Binary file not shown.
BIN
bin/server/CcMainDll.id2
Normal file
BIN
bin/server/CcMainDll.id2
Normal file
Binary file not shown.
BIN
bin/server/CcMainDll.til
Normal file
BIN
bin/server/CcMainDll.til
Normal file
Binary file not shown.
BIN
bin/server/TestLoadDll.exe
Normal file
BIN
bin/server/TestLoadDll.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user