XFTP 보조 동기 화 서버 도구 (VC +)
이제 주요 절 차 를 여러분 과 공유 하고 자신 도 기록 하 겠 습 니 다.
일 을 잘 하려 면 먼저 그 그릇 을 이 롭 게 해 야 한다.
A. 우선, 백 엔 드 서버 소프트웨어 를 업로드 하려 고 합 니 다. 저 는 XFTP 를 선 택 했 습 니 다. 물론 다른 FTP 도구 도 마찬가지 입 니 다.
B. 그 다음 에 vs 와 그의 자체 도구 인 spy + 를 더 하면 만사 가 다 잘 될 것 입 니 다.
사고의 방향 을 실현 하 다.
XFTP 를 통 해 백 엔 드 서버 에 대응 하 는 디 렉 터 리 아래 에 업로드 합 니 다. 이때 백 엔 드 서버 는 프론트 서버 의 기본 디 렉 터 리 구조 와 일치 합 니 다. 적어도 주요 채널 디 렉 터 리 는 일치 합 니 다. 이것 은 우리 뒤에 프론트 서버 군 으로 동기 화 하 는 데 가장 기본 적 인 이론 적 근 거 를 찾 았 습 니 다.사용자 가 XFTP 를 통 해 동기 화 할 파일 을 업로드 한 후에 미리 시작 한 이 보조 도 구 를 통 해 방금 파일 이 있 는 디 렉 터 리 구 조 를 자동 으로 찾 아 백 엔 드 프로그램 에 전달 하고 백 엔 드 프로그램 은 보조 도 구 를 통 해 전 송 된 디 렉 터 리 구 조 를 통 해 백 엔 드 기기 의 지정 한 파일 을 찾 아 셸 문 구 를 다른 전단 기 에 동기 화 합 니 다.이렇게 한 후에 다음 과 같은 조작 과정 이 형성 되 었 다. XFTP 업로드 --> 보조 도구 에서 동기 화 -> 배경 프로그램 이 보조 도구 전송 경 로 를 자동 으로 가 져 와 전단 기 에 동기 화 하 는 것 은 매우 번 거 로 운 과정 이 었 다. 앞으로 동기 화 버튼 만 있 으 면 된다.
구체 적 인 실현 방법 (주체 실현 과 무관 한 문 구 를 많이 제거 했다)
//
CWnd* pDesktopWnd = CWnd::GetDesktopWindow();
//
CWnd* pWnd = pDesktopWnd->GetWindow(GW_CHILD);
while (pWnd != NULL)
{
//
CString strWindowText= _T("");
::GetWindowText(pWnd->GetSafeHwnd(), strWindowText.GetBuffer(256), 256);
strWindowText.ReleaseBuffer();
if(strWindowText.Find("Xftp 1.3")!=-1)
{
fHwnd = pWnd->GetSafeHwnd();
break;
}
//
pWnd = pWnd->GetWindow(GW_HWNDNEXT);
}
hWnd = fHwnd;
hWnd=::FindWindowEx(hWnd,0,"MDIClient",0);
hWnd=::FindWindowEx(hWnd,0,0,strFTP); //
hWnd=::FindWindowEx(hWnd,0,"AfxFrameOrView42",0);
hWnd=::FindWindowEx(hWnd,0,"ComboBoxEx32",0);
hWnd=::FindWindowEx(hWnd,0,"ComboBox",0);
hWnd=::FindWindowEx(hWnd,0,"Edit",0);
char buf[MAX_PATH];
//
::SendMessage(hWnd,WM_GETTEXT,MAX_PATH,(LPARAM)buf);
hWnd = fHwnd;
hWnd=::FindWindowEx(hWnd,0,"MDIClient",0);
hWnd=::FindWindowEx(hWnd,0,0,"22.22.22.222"); //
hWnd=::FindWindowEx(hWnd,0,"AfxFrameOrView42",0);
int count;
int i;
BOOL bResult = FALSE;
HWND hWndNextChild = ::GetWindow(hWnd,GW_CHILD);
//
while (::IsWindow(hWndNextChild))
{
if (::GetParent(hWndNextChild) == hWnd)
{
//
char Class[MAX_PATH];
::GetClassName(hWndNextChild,Class,MAX_PATH);
if(!strcmp(Class,"SysListView32"))
{
if(::IsWindowVisible(hWndNextChild))// , ftp 2
{
count = 0;
count = (int)::SendMessage(hWndNextChild,LVM_GETITEMCOUNT,0,0);
if(count)
{
hListview = hWndNextChild;
bResult = TRUE;
}
}
}
}
hWndNextChild = ::GetWindow(hWndNextChild,GW_HWNDNEXT);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java swing drawImagegetImage 가 즉시 돌아 오기 때문에 그림 이 불 러 올 때 까지 기다 리 지 않 고 프로그램 에서 다른 작업 을 수행 할 수 있 습 니 다.성능 을 향상 시 킬 수 있 지만 효과 적 인 프로그램 은 더 많은 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.