2014-11-08 4 views
0

정기적으로 인터넷의 전용 서버에서 내용을 검색하는 Win32 프로그램을 작성했습니다.win32를 사용하여 인터넷에서 프로그램 (exe)을 업데이트하는 방법

때때로 Win32 프로그램 자체를 업데이트해야합니다. 내가하는 일은 그 프로그램을 종료하고 uopdate 할 필요가있는 메인 exe를 대체하는 다운로드 프로그램을 실행하는 것이다. 이 기능은 관리자 모드에서 실행되지만 대부분의 작업에 필요한 권한을 가진 다른 모드에서는 작동하지 않습니다. 이 프로그램은 "c : \ Windows \ program files \"에없는 자체 디렉토리에서 실행됩니다.

매니페스트 파일을 사용하지 않도록 설정했습니다.

이 (any)에 대해 해결 가능한 해결책이 있습니까?

답변

1

보안상의 이유로 관리자 권한이없는 프로그램 파일에는 파일을 저장할 수 없습니다. 이 작업을 수행 할 수 있다면 이론적으로 Windows 파일을 변경하고 멀웨어를 배치 할 수 있습니다. Linux 및 OSX 시스템에서도 마찬가지입니다. 그러나 prompt the user for an Administrator password 수 있으며 그런 식으로 관리자 권한을 얻으십시오.

1

관리자 권한이 필요하신 업 데이트 프로그램이 필요합니다. 애플리케이션 매니페스트의 requestedExecutionLevel 섹션에 requireAdministrator 옵션을 추가하면됩니다. 당신은 이것을 아무 소용이 없다고 말했습니다. 글쎄, 이것이 해결책이기 때문에 뭔가 잘못 됐음에 틀림 없다. 매니 페스트가 정확해질 때까지 인내해야합니다.

[프로그램이 Program Files 디렉토리 아래에 없다고 말하면 업데이트 프로그램을 참조하십시오. 업데이트되는 프로그램이 Program Files 디렉토리에 있지 않은 경우 업데이터에 관리자 권한이 필요한 분명한 이유가없는 것 같습니다. 그렇다면 추가 조사가 필요합니다.

+0

requestedExecutionLevel 섹션에서 requireAdministrator 옵션을 추가했습니다. 컴파일 및 링크에 문제가 있다면 내 manifest 등을보고 할 때 사용할 수있는 유틸리티가 있습니까? – user1231247

+0

Resource Hacker와 같은 리소스 편집기로 링크 된 리소스를 볼 수 있습니다. –