Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
1

Окно поверх всех окон

04.06.2013, 08:47. Показов 4384. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу программу против винлокеров добавил свой диспетчер задач, разблокирование ключей реестра.Но есть одна проблема окно просто не работает так-как винлокер поверх этого окна и я не могу переключиться поэтому мне надо сделать окно поверх всех окон.
P.S TopMost = true не работает.Для тестирования использовал приватный винлокер на delphi.Помогите плиз.

Добавлено через 3 часа 5 минут
upppppppp

Добавлено через 12 часов 22 минуты
upuupupuupp
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 08:47
Ответы с готовыми решениями:

Окно сохранения поверх других окон Excel
создал форму, на ней есть кнопка... если простым языком, то по нажатию кнопки выполняется данный...

Поверх всех окон. включая диспетчера задач
Подскажите как на C# сделать так ,что бы форма была поверх всех окон, включая диспетчера задач.

PrintDialog поверх остальных окон
Здравствйте! Есть программа, она ждет пока в определенной папке появится файл и когда он там...

Отображение окна Word поверх всех
К примеру, код: Application app = new Application(); Document doc =...

8
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
04.06.2013, 12:48 2
http://social.msdn.microsoft.c... 5dd4cd03e6
0
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
04.06.2013, 18:19  [ТС] 3
Цитата Сообщение от Tessen Посмотреть сообщение
не то надо чтоб хотя-бы на равных с окном которое на делфи было.Если это невозможно то подскажите как свернуть все программы кроме моей.

Добавлено через 4 часа 28 минут
upupupupupup
0
4 / 4 / 0
Регистрация: 21.05.2013
Сообщений: 41
05.06.2013, 13:07 4
Могу предложить вариант скрытия окна:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
  static class Data
    { 
public static IntPtr hdw1 { get; set; }
    }
  public class WindowWrapper
        {
 
 
            [DllImport("user32.dll", SetLastError = true)]
            static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
 
            [DllImport("user32.dll", SetLastError = true)]
            static extern int GetWindowTextLength(IntPtr hWnd);
 
            [DllImport("user32.dll", SetLastError = true)]
            [return: MarshalAs(UnmanagedType.Bool)]
            static extern bool IsWindowVisible(IntPtr hWnd);
 
            public IntPtr Handle { get; private set; }
            public string Title { get { return GetWindowText(Handle); } }
            public bool IsVisible { get { return IsWindowVisible(Handle); } }
 
            public WindowWrapper(IntPtr hWnd)
            {
                Handle = hWnd;
            }
 
            string GetWindowText(IntPtr hWnd)
            {
                int len = GetWindowTextLength(hWnd) + 1;
                StringBuilder sb = new StringBuilder(len);
                len = GetWindowText(hWnd, sb, len);
                return sb.ToString(0, len);
            }
            public override string ToString()
            {
                var title = Title;
 
                return string.IsNullOrEmpty(title) ? "HWND: 0x" + Handle.ToString("X") : title;
            }
        }
 
        delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
 
        [DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        [DllImport("user32.dll", SetLastError = true)]
        static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
        const uint SW_SHOWNORMAL = 0x1;
        const uint SW_HIDE = 0x0;
 
private void RefreshWindowList1()
        {
            listBox1.Items.Clear();
 
            EnumWindows((hWnd, lParam) =>
            {
                var wnd = new WindowWrapper(hWnd);
 
                if (!wnd.IsVisible && !string.IsNullOrEmpty(wnd.Title))
                {
 
                    listBox1.Items.Add(wnd);
 
 
                }
                return true;
            }, IntPtr.Zero);
 
        }
 
        private void btnSearch_Click(object sender, EventArgs e)
        {
            RefreshWindowList1();
        }
 
private void listBox1_MouseClick(object sender, MouseEventArgs e)
        {
              Data.hdw1 = (listBox1.SelectedItem as WindowWrapper).Handle;
        }
   private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                ShowWindow(Data.hdw1, SW_HIDE);
                RefreshWindowList1();
            }
            catch { MessageBox.Show("Окно не найдено", "Error"); }
 
        }
Думаю разберешься как запихнуть)
0
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
08.06.2013, 09:45  [ТС] 5
BorD, заче мне надо поверх всего
0
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 124
17.06.2013, 14:41  [ТС] 6
Помогите я в таймере прописываю Activate(); все ровно не помогает, может это возможно как-то так.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
16.01.2014, 14:34 8
Цитата Сообщение от maksili Посмотреть сообщение
надо сделать окно поверх всех окон.
Цитата Сообщение от maksili Посмотреть сообщение
как свернуть все программы кроме моей.
Предположите на минутку, что это как-то возможно.
Вот вы написали программу, которая показывается поверх всех окон или программу, которая сворачивает все окна, кроме своего.

Первый вопрос: что будет, если запустить две копии вашей программы одновременно?
Второй вопрос: что будет, если я скопирую ваш код и вставлю в свою программу, а потом запущу вместе с вашей?

Какая из них будет поверх какой? Какая из них свернется, а какая останется? Почему?
1
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
16.01.2014, 15:20 9
Цитата Сообщение от kolorotur Посмотреть сообщение
Предположите на минутку, что это как-то возможно.
Вот вы написали программу, которая показывается поверх всех окон или программу, которая сворачивает все окна, кроме своего.
Первый вопрос: что будет, если запустить две копии вашей программы одновременно?
Второй вопрос: что будет, если я скопирую ваш код и вставлю в свою программу, а потом запущу вместе с вашей?
Какая из них будет поверх какой? Какая из них свернется, а какая останется? Почему?
Я две минуты пытался понять условие. Спасибо, теперь понятно. XD

Как вариант:
разрешить запуск исключительно под админом. В Win7 и выше это автоматически отсекает все винклокеры.
0
16.01.2014, 15:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2014, 15:20
Помогаю со студенческими работами здесь

Вывод графики поверх всех приложений
Задача такая: нужно выводить примитив (точку, окружность и т.д.) поверх всех запущенных...

Список всех окон приложения
Можно ли как-то получить список всех открытых окон приложения?

Поиск всех окон процесса
есть процесс, имя которого мы знаем, у него есть куча окон, например до 100 окон, имена у всех...

Функция сворачивания всех окон
Есть ли в дотнете функция для сворачивания всех окан если есть то какая? Сделал так ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru