Windows 7에서 Visual Studio 2008을 사용하여 MFC에서 응용 프로그램을 만들고 있습니다. 응용 프로그램이 시작되고 관리 액세스가 필요한 서비스가 중지됩니다. 응용 프로그램이 시작되면 관리 액세스 권한이 없습니다. 하지만 서비스 시작 버튼을 클릭하면 관리 액세스 권한이 부여되고 작업이 수행됩니다. 관리 액세스 권한이 필요한 버튼에 관리 아이콘을 설정하는 방법은 궁금합니다. Flags를 설정해야합니까? 감사합니다.MFC 대화 상자에서 관리자 권한 아이콘을 설정하는 방법은 무엇입니까?
답변
Windows Vista에서는 새 플래그 중 하나를 사용하여 단추에 방패 아이콘을 추가 할 수 있습니다. 이처럼 사용할 수있는, 그것을 가능하게하는 매크로가있다 : 매크로에 대한
Button_SetElevationRequiredState(hwnd, TRUE);
문서는 http://msdn.microsoft.com/en-us/library/bb761865%28VS.85%29.aspx
에서 많은 UAC 관련 작업을 수행하는 방법에 대한 개요 http://msdn.microsoft.com/en-us/library/bb756990.aspx#BKMK_ShieldButton를 참조한다.
아마도 CButton :: SetElevationRequired()도 같은 일을하지만 사용자의 MFC 프로젝트에 더 잘 맞는 것입니다. 당신은 또한 당신이 중 하나 또는의 항목 우유없는 (매니페스트 파일을 사용 할 수있는 일반 컨트롤 V6 DLL의 사용을 활성화해야
ctl->SetElevationRequired(TRUE);
이 http://msdn.microsoft.com/en-us/library/bb386824%28v=VS.90%29.aspx
를 참조하십시오 :이처럼 사용할 수 리소스 파일을 임베드 할 수 있습니다.) 또는 MSVC2005 이상의 코드에서 #pragma 지시문을 사용하십시오. MFC에 액세스 할 수 없기 때문에 이미 수정할 수있는 매니페스트가있는 MFC 응용 프로그램이있을 수 있지만 수정할 수는 없습니다.
매니페스트 경로를 찾으려면 애플리케이션 이름과 같지만 .exe 뒤에 ".manifest"가 있어야합니다. MyApp.exe.manifest :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="*"
name="CompanyName.ProductName.YourApplication"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
#pragma의 경우 아래 코드를 참조하십시오. http://msdn.microsoft.com/en-us/library/bb773175%28v=vs.85%29.aspx
공통 제어 V6를 활성화 프라그 지시자를 사용하고 고도를 표시하는 작은 Win32에서 예 : 공통 컨트롤 (I부터 상기 정보를 가지고 곳인)이 링크가 표시 V6를 사용하는 방법에 대한 자세한 내용
아이콘 :
#include <windows.h>
#include <commctrl.h>
#include <stdio.h>
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE instance,
HINSTANCE previnst,
LPSTR args,
int wndState)
{
int i;
MSG messages;
WNDCLASSEX wincl;
ZeroMemory(&wincl, sizeof(wincl));
wincl.hInstance = instance;
wincl.lpszClassName = L"WindowsApp";
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof wincl;
wincl.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);
InitCommonControls();
wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
if (!RegisterClassEx (&wincl))
return 0;
HWND hwnd = CreateWindow(L"WindowsApp", L"Windows App", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, instance, NULL);
HWND hButton = CreateWindow(L"BUTTON", L"Do something", WS_TABSTOP | WS_VISIBLE | WS_CHILD, 10, 10, 200, 23, hwnd, NULL, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
SendMessage(hButton, WM_SETFONT, (LPARAM) GetStockObject(DEFAULT_GUI_FONT), FALSE);
Button_SetElevationRequiredState(hButton, TRUE);
ShowWindow(hwnd, wndState);
while (GetMessage(&messages, NULL, 0, 0) > 0)
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
- 1. 파일 선택 대화 상자에서 아이콘을 설정하는 방법은 무엇입니까?
- 2. MFC 대화 상자에서 캔버스를 추가하는 방법은 무엇입니까?
- 3. 키 체인 권한 부여 대화 상자에서 사용할 아이콘을 지정하려면 어떻게합니까?
- 4. 내 Blackberry 팝업 대화 상자에서 기본 대화 아이콘을 사용하려면 어떻게해야합니까?
- 5. Windows에서 gtk.AboutDialog의 아이콘을 설정하는 방법은 무엇입니까?
- 6. dll 아이콘을 설정하는 방법은 무엇입니까?
- 7. 프로그램 아이콘을 설정하는 방법은 무엇입니까?
- 8. 열기 대화 상자에서 정렬 모드를 설정하는 방법
- 9. Windows의 파일 대화 상자에서 "저장"버튼에 텍스트를 설정하는 방법은 무엇입니까?
- 10. 내가 만든 Jquery 대화 상자에서 속성을 설정하는 방법은 무엇입니까?
- 11. 진행률 대화 상자에서 취소 버튼을 설정하는 방법은 무엇입니까?
- 12. 안드로이드 사용자 정의 대화 상자에서 listviewadapter를 설정하는 방법은 무엇입니까?
- 13. Blackberry에서 응용 프로그램 아이콘을 설정하는 방법은 무엇입니까?
- 14. JTable의 열에 아이콘을 설정하는 방법은 무엇입니까?
- 15. 대화 상자에서 데이터를 검색하는 방법은 무엇입니까?
- 16. 대화 상자에서 닫기 버튼을 제거하는 방법은 무엇입니까?
- 17. 대화 상자에서 텍스트를 가져 오는 방법은 무엇입니까?
- 18. 대화 상자에서 getSharedPreferences를 얻는 방법은 무엇입니까?
- 19. 경고 대화 상자에서 문자 메시지의 위치를 설정하는 방법
- 20. 한 대화 상자에서 다른 대화 상자로 메시지를 보내는 방법은 무엇입니까?
- 21. 대화 상자에서
- 22. MFC 대화 상자에서 올바른 ActiveX 개체를 삽입하는 방법
- 23. MFC 대화 상자에서 Active X 컨트롤을 수집하는 방법
- 24. 관리자 권한 확인 방법 C#
- 25. vb.net에서 관리자 권한 만들기
- 26. Java 관리자 권한 (UAC)
- 27. 스크립트의 관리자 권한
- 28. MFC 목록 상자에서 셀을 편집하려면 어떻게해야합니까?
- 29. 대화 상자 컨트롤 비활성화 MFC
- 30. 새 권한 사용 대화 상자
나는 이것을 시도했지만 버튼에 방패 아이콘을 표시하지 않았습니다. 샘플 코드 템플릿을 제공해 주실 수 있습니까? 감사합니다 –
@Ali Ahmed : 예와 더 자세한 설명을 추가했습니다. – tinman