2014-11-27 2 views
0

Windows에서 cwRsync를 사용하여 디렉터리를 동기화하고 있습니다. Visual C++ 코드 (Visual Sudio 2008)에서 명령 줄을 통해 호출합니다. CreateProcess() 함수를 사용하여 실행합니다. 트러블 : Windows XP에서 동기화가 작동합니다. Windows 7 및 8에서는 동기화가 작동하지 않습니다. cmd.exe에서 직접 명령 줄을 테스트하면 제대로 작동합니다.명령 줄 CreateProcess-WinXP에서 실행되지만 Win7 및 Win8에서는 실행되지 않습니다.

Windows 7 및 8 내부에서 CreateProcess의 문제점은 무엇입니까? 함수가 OK를 반환하기 때문에 오류 메시지가 없습니다.

고토

+0

관리자 권한 ??? – leppie

+0

생성 된 .exe에 권한이 없습니까? Windows XP 대신 Windows 7/8에서 – Koto

+0

"관리자 권한으로 실행"으로 .exe를 실행했지만 Windows 7/8에서는 rsync 명령이 아직 실행되지 않습니다. – Koto

답변

0

해결책을 찾았습니다. 문제는 전에하지만 Win7에

BOOL WINAPI CreateProcess(
    _In_opt_  LPCTSTR lpApplicationName, 
    _Inout_opt_ LPTSTR lpCommandLine, 
    _In_opt_  LPSECURITY_ATTRIBUTES lpProcessAttributes, 
    _In_opt_  LPSECURITY_ATTRIBUTES lpThreadAttributes, 
    _In_   BOOL bInheritHandles, 
    _In_   DWORD dwCreationFlags, 
    _In_opt_  LPVOID lpEnvironment, 
    _In_opt_  LPCTSTR lpCurrentDirectory, 
    _In_   LPSTARTUPINFO lpStartupInfo, 
    _Out_  LPPROCESS_INFORMATION lpProcessInformation 
); 

에서 XP에서 작동 CreateProcess를()의 내 사용에 관한 것입니다 :

lpApplicationName = NULL

lpCommandLine = C : \ cwRsync \ rsync.exe - 재귀/cygdrive/D/문서// cygdrive/F/문서/

윈도우 XP => 확인을하지만, 윈도우 7 => KO 이제

:

,

lpaApplicationName = C : \ cwRsync \ rsync.exe

lpCommandLine = --recursive/cygdrive/D/문서// cygdrive/F/문서/

윈도우 XP => OK 윈도우 7 => 확인해도

관련 문제