как скрыть пользовательскую кнопку переключения Windows 7 в образце vc ++ CredentialProvider - PullRequest
4 голосов
/ 28 декабря 2010

Credential provider screenshot

  1. Я предоставил скриншот моего CredentialProvider окно. В этом окно все в порядке, но я не хочу показывать Switch User кнопка для пользователя. Как я могу сделать этот. Я просто редактирую Win-7 SDK образец для CredentialProvider (C ++). Любой может помочь мне, или любой ссылка для справки кода.

  2. Еще одна вещь, которую я хочу задать, по умолчанию, текстовое поле имени пользователя, отображающее EditText серым цветом. Как я мог изменить его на Username текст. Я могу установить текст в SHStrDupW(L"", &_rgFieldStrings[SFI_EDIT_TEXT]); коде, но это не настройка в фоновом тексте. есть ли хак для этого.

Спасибо, ТАК участники

Ответы [ 2 ]

4 голосов
/ 31 декабря 2010

Вы не можете напрямую запретить появление кнопки «Переключить пользователя»;если присутствуют условия, которые вызывают его появление, то оно появится.Однако, что вы можете сделать: предотвратить условия, которые вызывают его появление.

Эта кнопка появляется либо тогда, когда плитка находится в выбранном состоянии, и 1.) поставщик учетных данных перечисляет плитки, отличные от выбранной.или 2.) другие провайдеры учетных данных перечисляют листы.

Первое условие, которое легко предотвратить: в GetCredentialCount () всегда сообщайте, что вы будете перечислять только одно удостоверение.(Это, конечно, означает, что вы должны структурировать плитку для обработки всех пользователей.)

Чтобы предотвратить второе условие, вам нужно будет внедрить фильтр провайдера учетных данных.(Поищите интерфейс «ICredentialProviderFilter», если вы не знаете, что это такое.)

Удачи.

3 голосов
/ 28 июня 2011

Чтобы ответить на вопрос 2:

В текстовом поле имени пользователя отображается EditText серым цветом. Вы можете изменить его на имя пользователя. Вы устанавливаете текст, используя

SHStrDupW(L"", &_rgFieldStrings[SFI_EDIT_TEXT]);

Посмотрите на common.h , там вы найдете

CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR s_rgCredProvFieldDescriptors[] =  { SFI_EDIT_TEXT, CPFT_EDIT_TEXT, L"Edit Text" }

Если вы измените это Изменить текст на Имя пользователя, тогда оно будет отображаться в вашем текстовом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...