Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RusFAQ.ru: .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Micren
Статус: Практикант
Рейтинг: 342
∙ повысить рейтинг >>
AMV007
Статус: 3-й класс
Рейтинг: 145
∙ повысить рейтинг >>
Evgenijm
Статус: 6-й класс
Рейтинг: 53
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Microsoft .NET

Выпуск № 152 от 21.06.2009, 00:05
Администратор рассылки: Alexey G. Gladenyuk, Управляющий
В рассылке: подписчиков - 306, экспертов - 49
В номере: вопросов - 1, ответов - 2

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 169452: Здравствуйте ув. эксперты ) Нужна Ваша помощь в нескольких вопросах: 1)Есть программа на C#(VStudio 2008), которая при нажатии на button'ы добавляет определенные символы в Richtextbox. Вопрос: Можно ли сделать так, чтобы при нажатии на эти ...



Вопрос № 169452:

Здравствуйте ув. эксперты )
Нужна Ваша помощь в нескольких вопросах:
1)Есть программа на C#(VStudio 2008), которая при нажатии на button'ы добавляет определенные символы в Richtextbox. Вопрос: Можно ли сделать так, чтобы при нажатии на эти самые button'ы текст добавлялся в активное окно? (скажем в адресную строку FireFox или др.). Что-то похожее на экранную клавиатуру Windows. Но этих символов на кнопках клавиатуры нету!
2)Хочется узнать, а как можно программно включать отключать CapsLock, NumLock? Узнать состояние можно с помощью Console.NumLock....
Заранее благодарю всех ))

Отправлен: 15.06.2009, 23:51
Вопрос задал: Sipan, 3-й класс
Всего ответов: 2
Страница вопроса >>


Отвечает AMV007, 3-й класс :
Здравствуйте, Sipan.
Вот код для переключения значения CapsLook. Думаю, как переключать остальные клавиши будет понятно.

Приложение:

-----
Работать, работать и еще раз работать (да не, шутка :) )

Ответ отправил: AMV007, 3-й класс
Ответ отправлен: 16.06.2009, 00:16

Оценка ответа: 5
Комментарий к оценке:
Спасибо! Работает.... добавлю только то, что для работы с dll нужно добавить пространство имен : using System.Runtime.InteropServices;

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251000 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает Evgenijm, 6-й класс :
    Здравствуйте, Sipan.
    Основная проблема в Вашем случае - при нажатии на кнопку, фокус получает окно клавиатуры, а послать символы нужно предыдущему активному окну. Я нашел только один способ определения текущего окна:
    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    Можно опрашивать эту фукцию периодически и запоминать хендл окна (только свой отбрасывать!). Наверняка можно сделать и системный хук - но это лучше спросить в рассылке по C++. Я этим не занимался.
    Сохранять придется несколько последних значений: предыдущее окно часто является только что закрытым! :)

    Менять состояния кнопок и посылать символы можно и через классы .Net. Но я нашел только неосновные библиотеки. Надо удостовериться, что на рабочей машине они будут установлены. Например, этот класс:
    Microsoft.VisualBasic.Devices.Keyboard

    Советую также почитать о применении InputLanguage Class.

    И эту статью:
    http://msdn.microsoft.com/en-us/libra ry/ms646267.aspx

    Возможно, придут более красивые решения.

    Ответ отправил: Evgenijm, 6-й класс
    Ответ отправлен: 16.06.2009, 10:11

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо за ответ, буду искать...

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251018 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.2 от 15.06.2009

    В избранное