Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Здравствуйте!
Не нашел нигде информации о том, как реализовать вот такую задачу:

Есть у меня некое приложение. Для примера давайте возьмем самый простой мессенджер, который будет в виде полупрозрачного окна (WPF оформит это дело) прикреплен, ну пусть, к левой части экрана. Если мы будем смотреть фильм на полном экране или играть в игру, опять же, в полноэкранном режиме, то при активации окна мессенджера будет происходить вылет на рабочий стол (либо же будет вылезать панель задач и меню Пуск, если та же самая игра запущена в режиме: В окне во весь экран). Это все-таки некруто.
Вопрос: можно ли сделать так, чтобы при активации окна моего приложения не было вылета на рабочий стол? Т.е. чтобы мы быстренько могли отписать сообщение и тут же вернуться в игру.

Надеюсь понятно объяснил, чего хочу добиться) Очень рассчитываю на вашу помощь! Решение такой задачи можно будет применить для разработки множества интересных приложений.

P.S. Пишу на C#+WPF
9 ноя 18, 23:27    [21730202]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
P.S. Пишу на C#+WPF
хитрый?
Прошлую тему закрыл решением? Даже двумя?
А то впечатление что ты собиратель вопросов для Что где когда.
10 ноя 18, 00:34    [21730242]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123, не совсем понял наезд. В прошлой теме был ответ, я поблагодарил всех, кто помог. Проблема в чем?
10 ноя 18, 00:39    [21730246]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder,
Обычно решение кастомизируют, правят и выкладывают с криком Получилось!
Это мнение со стороны, а не наезд.
10 ноя 18, 00:52    [21730254]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Я на данном проекте совсем недавно, поэтому здешних традиций не знаю
Благодарю за информацию, впредь постараюсь делать именно так
10 ноя 18, 01:04    [21730258]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
при активации окна
каким событием?
Оно не вылазит на передний план само по себе.
Код давай.
10 ноя 18, 09:48    [21730319]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Да кода здесь достаточно самого простого - одно полупрозрачное окно, т.к. модифицировать именно его.

Ну пусть такое

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Pr
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Ok_Click(object sender, RoutedEventArgs e)
        {

        }

        private void Close_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}


<Window x:Class="Pr.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Pr"
        mc:Ignorable="d"
        Title="MainWindow" Height="448" Width="257" VerticalAlignment="Bottom" Margin="0,0,0,0" AllowsTransparency="True" Background="Transparent" WindowStyle="None" ResizeMode="NoResize" Topmost="True">
    <Grid>

        <Border Width="Auto" Height="Auto" Name="windowFrame" 
 
        BorderBrush="#000" 
        Background="#000" 
        Opacity="0.40" 
 
        BorderThickness="1" 
        CornerRadius="5,5,0,0" Margin="0,0,0,0" Grid.ColumnSpan="2" >
        </Border>
        <Button Content="Ок" HorizontalAlignment="Left" Click="Ok_Click" Margin="46,215,0,0" VerticalAlignment="Top" Width="162" Height="35"/>
        <Button Content="Закрыть" HorizontalAlignment="Left" Click="Close_Click" Margin="46,385,0,0" VerticalAlignment="Top" Width="162" Height="28"/>
        <TextBox HorizontalAlignment="Left" Height="50" Margin="46,60,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="162"/>


    </Grid>
</Window>


И надо, чтобы при клике оно работало, как бы параллельно с "главным" приложением (если можно так выразиться, было привязано к запущенному проигрывателю, игре и т.п.).
10 ноя 18, 12:05    [21730356]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
надо, чтобы при клике оно работало, как бы параллельно с "главным" приложением (если можно так выразиться, было привязано к запущенному проигрывателю, игре и т.п.).
в первом посте другое ТЗ.
Прочти гугл про юз кейсы и опиши конкретный use case.
10 ноя 18, 12:26    [21730365]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder,
Ни или аналог какой типа winamp приведи.
10 ноя 18, 12:28    [21730367]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
я говорю, что могу не совсем правильно выражаться.
Вся суть именно в первом посте и есть. Надо, чтобы окно в фоновом режиме (пока не активно) работало бы просто поверх текущего приложения, а при его активации не происходило вылета на рабочий стол
10 ноя 18, 12:28    [21730368]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
Petro123,
я говорю, что могу не совсем правильно выражаться.
Вся суть именно в первом посте и есть. Надо, чтобы окно в фоновом режиме (пока не активно) работало бы просто поверх текущего приложения, а при его активации не происходило вылета на рабочий стол
нет не понятно.
Не торопись.
Ты и так как то быстро пишешь код для программиста).
Найди аналог и use case.
10 ноя 18, 13:06    [21730389]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
Надо, чтобы окно в фоновом режиме (пока не активно) работало бы просто поверх текущего приложения,
блин, это сделано в прошлой твоей теме.
Давай скрины готового приложения прошлой темы.
А потом скрин проблемы.
Имхо
Удачи!
10 ноя 18, 13:13    [21730391]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Так в фоновом режиме оно будет работать уже при свойстве Topmost, которое ставит окно поверх всех других окон
А по поводу задания, я прикрепил скрин, на котором активно полупрозрачное окно.
Так вот внизу появилась панель задач при этом. Такого не должно быть. Если бы мы были в игре в полноэкранном режиме - нас бы вообще на рабочий стол выкинуло, а такого также хотелось бы избежать
Прошлая тема здесь не при чем. Суть здесь абсолютно в другом

К сообщению приложен файл. Размер - 119Kb
11 ноя 18, 00:51    [21730754]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder,

В прошлой теме я давал вариант без окна. Помнишь?
Тогда и этого топика бы не было.
Верно?
Логично?
Скрин не плохой. Молодец. Видно что что то пишешь.
11 ноя 18, 08:00    [21730814]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
Так вот внизу появилась панель задач при этом.
в win api AFAIK есть метод не показывать окно в панели задач.
Но тут WPF, поэтому данный вариант - ждем профи.
11 ноя 18, 08:34    [21730817]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Т.е. если скрыть приложение из панели задач, то при активации его окна не будет происходить вылета на рабочий стол?
11 ноя 18, 12:19    [21730892]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
Petro123,
Т.е. если скрыть приложение из панели задач, то при активации его окна не будет происходить вылета на рабочий стол?

по архитектуре лучше вообще без окна, т.к. все события завязаны на хэндл окна, а ты с ними борешься.
И в игрушках окна рисованные.
А будет ли этот хак со скрытием работать - х.з.
В винде десятке у меня начинает мигать в панели задач иконка при окончании фонового потока.
Привлекает внимание)).
11 ноя 18, 13:25    [21730934]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Ты вот уже и в той теме говорил о том, как игрушки сделаны и в этой вот. Можешь скинуть сайт мб какой, где можно почитать о том, как они устроены? В идеале, чтобы там еще примерчик был, чтобы получше вникнуть.

И второй момент, насколько я понял, в предыдущей теме вопрос был решен таким образом, что мы попросту скрываем окно и работает уже с его элементами. И чтобы решить задачу из уже текущей темы, нужно также работать с элементами (т.е. скрыть окно и "вешать" обработку клика уже непосредственно на эти самые элементы).
11 ноя 18, 14:48    [21731010]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder,
Я давал ссылу на gamedev.ru

MrKoder
И второй момент, насколько я понял, в предыдущей теме вопрос был решен таким образом, что мы попросту скрываем окно и работает уже с его элементами. И чтобы решить задачу из уже текущей темы, нужно также работать с элементами (т.е. скрыть окно и "вешать" обработку клика уже непосредственно на эти самые элементы).

Это был вариант номер 1. К автору и обращайся.
Я топил за вариант номер 2.
По ТЗ он должен работать. Ну у самого опыта на wpf для реализации маловато.
Сделай ты по моему ТЗ. В чем проблема. Код в виде псевдокода я дал.
Профи промолчали, у меня счас Core проект. Мне некогда.
Делай.
11 ноя 18, 16:54    [21731077]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
(т.е. скрыть окно и "вешать" обработку клика уже непосредственно на эти самые элементы).
в прошлой теме проси Roman Mejtes скрыть окно и нафига ты создал данную тему?
11 ноя 18, 16:57    [21731078]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
Создал новую, чтобы помойки на форуме на было. На кибере за разные вопросы в одной и той же теме могут настучать по голове
12 ноя 18, 01:57    [21731323]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
Прошлая тема здесь не при чем. Суть здесь абсолютно в другом
в прошлой теме было тз про ПЛАГИН к приложению.
Решено?
Покажи приложение А и плагин к нему Б.
Не решено? Пиши в старой теме.
12 ноя 18, 07:21    [21731347]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
Petro123,
В прошлой теме Roman Mejtes отписал решение: "Клик сквозь форму"
В этой теме: "Предотвратить вылет на рабочий стол при активации формы"

Если бы я мог написать этот плагин, то не писал бы сюда, наверное это крайне логично
Что ты хочешь, чтобы я скинул уже 25 раз? Мне его пост сюда переслать?
12 ноя 18, 11:17    [21731532]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
MrKoder
Member

Откуда:
Сообщений: 45
*плагин для предотвращения вылета на рабочий стол
12 ноя 18, 11:19    [21731537]     Ответить | Цитировать Сообщить модератору
 Re: Общение с окном программы без вылета на рабочий стол, если находимся в другом приложении  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38457
MrKoder
В прошлой теме Roman Mejtes отписал решение: "Клик сквозь форму"

MrKoder
*плагин для предотвращения вылета на рабочий стол

Я бы одним ударом уил двух зайцев.
Рисованное информационное окно плагин.
Код ранее я дал.
Пробовать ты не хочешь.
Болтаешь второй день.
12 ноя 18, 11:47    [21731565]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / WPF, Silverlight Ответить