Как сделать программу нематериальной с C #? - PullRequest
2 голосов
/ 18 января 2010

Я просто хотел знать, есть ли способ сделать программу (или часть программы) нематериальной с помощью c #. Я хочу сделать так, чтобы люди могли видеть, что программа там, но если бы они нажали, она щелкнула бы все, что под ней. Я также хотел бы знать, если вы можете сделать это обратные слова. Есть ли какой-нибудь способ сделать предмет невидимым, кликабельным?

Спасибо за вашу помощь!

Ответы [ 3 ]

1 голос
/ 18 января 2010

На ваш смутный вопрос я предлагаю смутный ответ:

Похоже, ваш вариант один возможен. Вам нужно будет отправить полученное событие клика (сообщение) в соответствующее окно (под вашим). Я подозреваю, что вам придется DllImport некоторые вещи, чтобы сделать это с C #.

Ваш второй вариант, хотя и более сложный, возможно, также возможен, потому что вы можете внедрить код в другие выполняемые исполняемые файлы. Это будет привилегированная операция, и вам, скорее всего, снова придется использовать вещи из не .NET-библиотек, чтобы сделать это из c #. См. Три способа внедрения кода в другой процесс в CodeProject.

0 голосов
/ 18 января 2010

Хорошо, так что иногда может потребоваться показать что-то на экране, чтобы оно не было активным (например, экранное меню для воспроизведения видео, показывающее увеличение громкости и т. Д.)

Вот пример того, как это сделать в C # - из codeproject: http://www.codeproject.com/KB/cs/OSDwindow.aspx

При этом используется Win32 API ShowWindow(hWnd, SW_SHOWNOACTIVATE) для отображения окна без потери фокуса (не может быть выбрано).

А вот страница MSDN для этого вызова ShowWindow

Чтобы отобразить невидимое, но интерактивное окно, вы можете использовать окно без рамки (FormBorderStyle = None) и установить прозрачность на 1%.

Надеюсь, это поможет!

0 голосов
/ 18 января 2010

Если вы хотите показать что-то пользователю, не мешая тому, что он делал в то время, вы могли бы всплывать ваши сообщения в пузыре с панели задач?

Ответ на этот вопрос охватывает это. Или, если вы ленивый , вот ссылка на код проекта.

...