Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73

Программа нормально работает только если запускать через студию с дебагером

17.06.2019, 21:19. Показов 2075. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
данный код заставляет всплывать окно программы над другими окнами...как то так...
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
 
namespace ForTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        internal static extern IntPtr GetForegroundWindow();
        [DllImport("user32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
 
        Thread myThr = new Thread(new ThreadStart(check_focus));
        static void check_focus()
        {
            IntPtr hWnd = FindWindow(null, "Form1");
            
            while (true)
            {
                Thread.Sleep(500);
                if (hWnd != GetForegroundWindow())
                {
                    SetForegroundWindow(hWnd);
                }                
                else continue;
            }
        }
        
        private void Form1_Load(object sender, EventArgs e)
        {                        
            myThr.Start();
        }       
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            myThr.Abort();
        }
    }
}
Запускаю из VS2019
нажатием F5
все работает как надо.

Запускаю Ctrl+F5 запускается но не всплывает над другими окнами, если запустить двойным нажатием из папки /bin/debug exe тоже работает не корректно.
Непонятно в чем дело.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.06.2019, 21:19
Ответы с готовыми решениями:

если запускать приложение в вижуалке (ctrl + f5) то оно работает правильно, но если запустить через .exe файл - нет!
если запускать приложение в вижуалке (ctrl + f5) то оно работает правильно, но если запустить через .exe файл - нет! Что делать? Возможно...

Звук нормально работает, только если говорить в скайпе
Люди помогите!!! Когда общаюсь по скайпу звук и микрофон робит!!! Прекращаю звонок ничто не работает кроме микрофона!!! в чем дело

Почему макрос работает, если создавать и запускать его в Командной строке, а если в пакетном файле, то нет?
Подскажите почему если вводить последовательно в командной строке DOSKEY npp="C:\Program Files\WinRAR\WinRAR.exe" а потом npp, то все...

10
 Аватар для shelluser
146 / 39 / 26
Регистрация: 11.05.2019
Сообщений: 122
18.06.2019, 00:28
-----------------------------------------
-----------------------------------------
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
18.06.2019, 03:33
Всё прекрасно работает...
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
        [DllImport("user32.dll")]
        internal static extern IntPtr GetForegroundWindow();
 
        [DllImport("user32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
 
        Thread myThr;
 
        private void Form1_Load(object sender, EventArgs e)
        {
            myThr = new Thread(CheckFocus) { IsBackground = true };
            myThr.Start(this.Handle);
        }
 
        private void CheckFocus(object param)
        {
            var hWnd = (IntPtr)param;
 
            while (true)
            {
                if (hWnd != GetForegroundWindow())
                    SetForegroundWindow(hWnd);
 
                Thread.Sleep(500);
            }
        }
1
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
18.06.2019, 09:22  [ТС]
Такая же проблема.
Если запускать из студии через дебагер, то работает замечательно.

Если запустить без дебага, то окно запускается, но не всплывает над другими окнами.
И если прицепиться дебагером (Отладка -> Присоединиться к процессу) начинает работать нормально. При остановки дебага перестает всплывать над другими окнами.

Windows 10 Pro x64.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
18.06.2019, 09:46
Цитата Сообщение от mansters Посмотреть сообщение
Такая же проблема.
Цитата Сообщение от mansters Посмотреть сообщение
Windows 10 Pro x64.
Проблему воспроизвести не получается. Что с дебагом, что без него окно всплывает над другими как положено...
0
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
18.06.2019, 12:32  [ТС]
Запускаю без дебага двойным нажатием по exe.
Запускается.
Открываю мой компьютер.
Окно "Мой компьютер" перекрывает программу.
Программа всплывает над окном "Мой компьютер".
Жму мышкой на окно "Мой компьютер".
Оно перекрывает программу и окно программы над ним не всплывает.
Заметил что на панели задач иконка программы начинает мигать.
Проверял на Win7 x64 и Win10.
0
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
18.06.2019, 12:36  [ТС]
мой архив
Вложения
Тип файла: 7z ForTest.7z (3.8 Кб, 2 просмотров)
0
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
18.06.2019, 13:42  [ТС]
пробовал с SwitchToThisWindow

запускаю без отладчика, срабатывает 1 раз, потом не всплывает, а только мигает иконка на панели задач
0
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
18.06.2019, 15:24  [ТС]
В общем какая то мистика с отладчиком работает, без отладчика срабатывает 1 раз, дальше только иконка на панели задач мигает. Нужно чтобы окно было поверх других окон и никак не сворачивалось(Win+D) и не загораживалось.
Проект моих изысканий прилагаю.
Вложения
Тип файла: 7z ForTest_vs.7z (230.2 Кб, 1 просмотров)
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
18.06.2019, 17:30
Лучший ответ Сообщение было отмечено mansters как решение

Решение

Так пробуйте
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
        [DllImport("user32.dll")]
        internal static extern IntPtr GetForegroundWindow();
 
        [DllImport("user32.dll")]
        internal static extern bool ShowWindow(IntPtr hWnd, int cmd);
 
        [DllImport("user32.dll")]
        internal static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, int flags);
 
        Thread myThr;
 
        private void Form1_Load(object sender, EventArgs e)
        {
            TopMost = true;
 
            myThr = new Thread(CheckFocus) { IsBackground = true };
            myThr.Start(this.Handle);
        }
 
        private void CheckFocus(object param)
        {
            var hWnd = (IntPtr)param;
 
            while (true)
            {
                if (hWnd != GetForegroundWindow())
                {
                    ShowWindow(hWnd, 1);
                    SetWindowPos(hWnd, (IntPtr)(-1), 0, 0, 0, 0, 2 | 1);
                }
 
                Thread.Sleep(100);
            }
        }
1
 Аватар для mansters
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 73
19.06.2019, 09:08  [ТС]
Someone007, Спасибо, вы мне очень помогли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2019, 09:08
Помогаю со студенческими работами здесь

Программа полноценно работает только если запустить от имени администратора
программа полноценно работает только если запустить от имени администратора. как сделать чтобы программа сама запускалась от имени...

=Sum([BYN]) не работает под терминалом, если запустить нормально - все работает. ПОЧЕМУ ?
в общем разделил базу могу сидеть в lan сети и использовать таблицы по сети редактируя морду. Все работает нормально но привязка к...

Не появляется картинка, если запускать через curl
Здравствуйте, у меня есть проблема. На сайте avito.ru/blocked появляется капча, чтобы подтвердить, что я не бот. Тут вся хорошо и...

Запускать винду могу только через f9 -boot device options
Здравствуйте! У меня ноутбук HP pavilion g6(model g6-2320er) я захотел переустановить виндовс( обновленная стояла 8.1) а переустановить...

видеокарта перестала работать, но на другом пк работает нормально, мой пк с другой видеокартой работает нормально тоже
мой пк: мать - ga-78lmt-s2p видеокарта - amd radeon r7 200 одно время комп начал тормозить, выключаться, позже начал...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru