С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для VMG
7 / 7 / 5
Регистрация: 11.02.2014
Сообщений: 56

Управление функциями программы через встроенный webBrowser

25.11.2014, 04:41. Показов 1121. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток !

Столкнулся с серьёзной проблемой проекта !
дело в том что этот метод обязателен и изначально было запланировано именно на такой функционал !

Разжую от А до Я :

Есть 2 программы , Game.exe и Laucher.exe

Наш проект это Laucher.exe

Laucher.exe это простая форма на которой стоит на весь экран webBrowser
WebBrowser ссылается к примеру на index.php
index.php содержит изначально простую страницу в которой около 20 элементов

---------- Алгоритм --------
Клиент запускает Laucher.exe
в нём он выбирает -> тип игры -> карту -> сервер -> всплывает в браузере кнопка "Играть на сервере 5"
и когда он на неё тыкает , нужно что бы Launcher.exe запускал Game.exe с некоторыми аргументами с переменной которые прописаны в форме , ну или принимал их (это не важно)

ну все помнят как на сайте Battlefield 3 , ты в браузере выбираешь -> тип игры -> карту -> нажимаешь играть -> у тебя запускается игра с определёнными параметрами !

На такое я точно не потяну , чтение данных с всех браузеров , это нужно службу делать и с сокетами играться .

в общем решили сделать типа свой браузер с которого будет приниматься параметры и выполнять их..

в общем нужно сделать так что бы когда в браузере Laucher.exe появляется к примеру
HTML5
1
<button id="Server05" style="block">Играть на сервере 5</button>
Мы запускаем игру и передаём в неё параметры

--------- Попытки -----------
Изначально зашёл на офф сайт и почитал что он может !
http://msdn.microsoft.com/ru-r... .110).aspx

пробовал сделать так : в сайте все кнопки сделал style="none"

при выборе в меню в нашем index.php то что нам нужно Мы определённый блок или кнопку меняем
с style="none"
на style="block"
получается так что когда мы выбрали то что нам нужно , у нас в низу справа появляется кнопка играть к примеру на Сервере 5

потом в проекте прописываю :
C#
1
2
3
4
if ( webBrowser.AccessibilityObject = "<button id="Server05" style="block">Играть на сервере 5</button>" )
{
     Process.Start("Game.exe", "Server05");
}
в общем кнопка появилась , но нифига не сработало ...

пробовал что то с AccessibleDefaultActionDescription , всё таже исторя

да и так и не понял понял куда нужно вписывать скрипт что бы он обрабатывался всегда !
Сделал 1 инпуть и 1 лейбл , прописал в
C#
1
2
3
4
private void Form1_Load(object sender, EventArgs e)
{
     label1.Text = textField1.Text.ToString();
}
в Лейбл не записалось то что я ввёл , когда поместил этот скрипт в :
private void Play_Click(object sender, EventArgs e)
C#
1
2
3
{
     label1.Text = textField1.Text.ToString();
}
тогда заработало , и то когда нажимаешь на кнопку , в общем куда вписывать что бы сразу всё вносилось в переменные ? как называется эта функция подобия Update() {} ?

-----------------------------------

в общем по теме , что посоветуете ? как реализовать чтение происходящих действий в браузере и выполнять определённые условия в форме ?
прям в зарез нужно !

наткнулся на одну статью , та же трабла , но там ответили типа так :
юзай это , http://msdn.microsoft.com/ru-r... .110).aspx
на страничке при кликах на ваши обьекты посылай всплывающие окна через JS
HTML5
1
<a href="javascript:alert('Функция 1')">Функция 1</a>
а в форме в браузере читай их , то есть условия , если Мы с браузера поймали JS с Функция 1 тогда выполняет такуета функцию
я так и не понял как читать браузером , да и горох какой то получается что такие окна будут всплывать , какой то школо-проект выйдет ...

--------------------------------
в общем ребята , надеюсь на Вас !
знаю что всегда помогали , надеюсь что и в этот раз поможете !
Нужно делать браузерную в любом случае так как php вычисляет онлайн и прочее , если сервера переполнены то кнопка не будет появляться , ну и транслирует сколько там уже играют ...
в общем вот такие качели ...
--------------------------------------
Цель , запускать Game.EXE с параметрами через кнопки которые отображает встроенный браузер , ну или принятие скриптов через браузер..

-------------------------------------
в общем по сути нужно с нашего webBrowser прочитать есть ли
<button id="Server01" style="block">Играть на сервере 1</button>
если нет то проверяем есть ли
<button id="Server02" style="block">Играть на сервере 2</button>
и так далее , ну или что бы как то через сайт менять значения в переменных !
то есть что бы при выборе чего-то , мы в переменную ServerID записали что-то и к примеру включили статистическую кнопку в проекте , через переменную типа public bool ButtonPlay = true;
А ещё , куда вписывать что бы функция проверки выполнялась всегда , а не тогда когда нажали на кнопку ? через ивент когда мышка на форме = эту тупо и грузит прогу


нужно чёт придумать 100% , ибо мне амба будет ((((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2014, 04:41
Ответы с готовыми решениями:

Управление диалоговым окном, открытым через WebBrowser
На сайте есть кнопка &quot;Загрузить&quot;, которая вызывает диалоговое окно выбора файла. Вопрос, как управлять этим окном, как заставить его...

Управление функциями/методами класса через свойство класса
Вот, жидкость в голову ударила и появилась идея... дурная :pardon: Как бы так сделать: Есть, к примеру, класс Public Class...

Перейти к коду программы через ссылку в WebBrowser
Есть у меня некий блок &lt;a href='#'&gt;&lt;div class='test'&gt;&lt;/div&gt;&lt;/a&gt; можно ли как-то нажав на ссылку перейти к коду? Пример: Жму на ссылку...

1
 Аватар для VMG
7 / 7 / 5
Регистрация: 11.02.2014
Сообщений: 56
26.11.2014, 15:15  [ТС]
В общем нашёл решение сам с помощью встроенных функций webBrowser

теперь в общем мы можем запускать игру .EXE через браузер !
к стати часто встречал вопросы в поисковиках о том , как запускать игру через сайт , типа как на Иннове 4Game или Origin ну или как в Battelfield 3 / 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
using System;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
 
namespace Launcher
{
    public partial class Form1 : Form
    {
        public string HTML = "";
        public Form1()
        {
            InitializeComponent();
            StartBackgroundWork();
            webBrowser1.Navigate("http://127.0.0.1/");
        }
        public void StartBackgroundWork()
        {
            var thread = new Thread(Run);
            thread.IsBackground = true;
            thread.Start();
        }
        private void Run()
        {
            while (true)
            {
                Thread.Sleep(1000);
                if (HTML.Contains("<div id="RunServer01" style="display: none;"></div>")) // если есть в HTML коде -> <div id="RunServer01" style="display: block;"></div>
                {
                    Process process = new Process();
                    process.StartInfo.FileName = "Game.exe";
                    process.StartInfo.Arguments = "A A A";
                    process.Start();
                    webBrowser1.GoBack();
                    process.WaitForExit();
                }
                else if (HTML.Contains("<div id="RunServer02" style="display: none;"></div>"))
                {
                    Process process = new Process();
                    process.StartInfo.FileName = "Game.exe";
                    process.StartInfo.Arguments = "B B B";
                    process.Start();
                    webBrowser1.GoBack();
                    process.WaitForExit();
                }
            }
        }
 
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Refresh();
            HTML = webBrowser1.DocumentText;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2014, 15:15
Помогаю со студенческими работами здесь

Управление отдельного окна программы через свою программу
Всем привет, у меня есть программа очень схожая с Delphi хочу попробовать как нибудь через свою программу управлять этой программой а это...

Встроенный звук у программы...
Встретился с такой проблемой, при создании программы мне нужно , чтоб музыкальное исполнение играло без путей. Возможно ли это ? ( Музыку...

Управление компонентом WebBrowser
Здраствуйте, многоуважаемые. Я начинающий программист, до C# писал разве что на Turbo C/Paskal лет 5 назад, поэтому меня запросто можно...

Управление комбобоксами из webbrowser
как кликнуть по кнопке которая в комбобоксе? &lt;select name=&quot;action&quot;&gt; &lt;option value=&quot;test1&quot;&gt;тест1&lt;/option&gt; &lt;option...

Управление cookie созданных в webbrowser
Я через встроенный веб браузер делаю авторизацию в вк,далее после перезахода в программу,при попытке авторизации я уже авторизирован. Я...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru