Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 11
1

Нужно сделать неактивным окно процесса

21.06.2014, 20:14. Показов 2036. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа A, которая при включении сразу скрывается в трей и вызывает программу B. В свою очередь программа B при нажатии на кнопку создает процесс (игры) и сразу закрывается (пр. B). При этом, программа А, будучи открытой в трее, должна отследить открытие игры (процесса) и сделать окно этого процесса, каким-то способом неактивным! Т.е. в момент запуска игры, ее окно должно не быть активным.

Вот мой скрипт, который не работает:
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
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.Diagnostics;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        bool launcherOn = false;
 
        public Form1()
        {
            InitializeComponent();
 
            this.Visible = false;
            this.IsVisibilityChangeAllowed = false;
            StartLauncher();
            HideRF();
        }
 
        bool IsVisibilityChangeAllowed { get; set; }
 
        protected override void SetVisibleCore(bool value)
        {
            if (this.IsVisibilityChangeAllowed)
            {
                base.SetVisibleCore(value);
            }
        }
 
        private void notifyIcon1_DoubleClick(object sender, EventArgs e)
        {
            this.IsVisibilityChangeAllowed = true;
            this.Show();
        }
 
        void StartLauncher() //Cтартуем прогу B
        {
            notifyIcon1.Visible = true;
            this.Hide();
            Process.Start(@"Map\neutralBS1\Sky2\ccr.EXE");
            launcherOn = true;
        }
 
        void CloseApp()
        {
            Process[] pname = Process.GetProcessesByName("RF_Online.bin");
 
            if (!(pname.Length == 0) && (!launcherOn))
            {
                this.Close();
            }
        }
 
        void HideRF()
        {
            Process[] pname = Process.GetProcessesByName("RF_Online.bin");
 
            if (pname.Length != 0)
            {
                notifyIcon1.Visible = false;
                this.Show();
                
            }
 
        }
    }
}
Что-то типо такого... Когда создался процесс игры, то окно моего приложения A, не открывается. Хотя отдельно если взять метод HideRF(), он работает...

Подскажите, как можно это реализовать. Мне это очень нужно, прошу, помогите!
..спасибо всем откликнувшимся!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2014, 20:14
Ответы с готовыми решениями:

При загрузке процесса, сделать его неактивным
Имеется .exe файл, который в последствии успешного логина открывает процесс (.bin)... Мне очень...

Сделать окно за блоком неактивным
Здравствуйте, не могу разобраться со следующей проблемой. При нажатии кнопки "Not Registered"...

Сделать окно неактивным и поставить крутящееся колесико!
Добрый день, происходит поиск в течении минуты на сайте. Необходимо сделать окно неактивным и...

Нужно закрыть модальное окно и сделать активным вызвавшее его окно
Мне нада средствами Win API закрыть модальное окно и сделать активным вызвавшее его окно. Кто знает...

1
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
23.06.2014, 23:28 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
  public void Deact()
        {
            
            System.Diagnostics.Process[] localByName = System.Diagnostics.Process.GetProcesses();
            foreach (System.Diagnostics.Process pr in localByName)
            {
                if (pr.ProcessName == "process")
                {
                    pr.CloseMainWindow();
                }
            }
        }
0
23.06.2014, 23:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 23:28
Помогаю со студенческими работами здесь

Любое активное окно внезапно становится неактивным
Есть окно в котором работаю, не важно какое - браузер, ворд, эксель, блокнот....пишу что-то и тут...

(MFC) После вызова CFileDialog окно выглядит неактивным
Вызываю по пункту меню диалог открытия файла таким образом: CFileDialog dlg(true); int...

При нажатии определенных ссылок или области на странице сайтов - окно браузера становится неактивным
При нажатии на определенные ссылки или области на странице сайтов - окно браузера становится...

DropDown сделать неактивным
Добрый день! Поскажите как сделать неактивным уровни в DorpDown? Я бы хотела их открывать по...


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

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