HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Вопрос по экзешнику.
Как написать
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Talking Вопрос по экзешнику.

Итак, у меня вопрос к кодерам и программистам: как написать небольшую прогу, которая с использованием графического интерфейса позволяет редактировать текстовики и ключи реестра. Например, запускаешь эту прогу, там строка, а напротив неё контекстное меню с возможностью выбора параметров, как лаунчер hlfx single. Если не трудно и не жалко, поделитесь кодом(только чтобы и реестр можно было править).

Заранее благодарю.

Сообщить модератору | | IP: Записан
Сообщение: 24215

Старое сообщение 23-12-2007 16:33
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Да без проблем Советую использовать Borland C++Builder, а то в студии там мучатся с ресурсами прийдётся. Билдер легче ,да и другой язык уить не прийдётся.
Там (ИМХО) один из самых продивинутых конструкторов форм. (если я не ошибаясь лаунчер фх сингла написан на Borland delphy, хотя возможно и ошибаюсь )
Реестр?

C++ Source Code:
1
#include <registry.hpp>
2
...
3
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
4
if (reg) // если всё ОК
5
{
6
  // выбираем нужный корень
7
  reg->RootKey = HKEY_LOCAL_MACHINE;
8
 
9
  // открываем секцию
10
  reg->OpenKey("Software\\Sources.RU\\", true);
11
 
12
  // удаляем ключ
13
  reg->DeleteValue("some_key");
14
 
15
  // записываем значения
16
  reg->WriteString("name","my_text");
17
 
18
  // проверяем наличие ключа "vot"
19
  if (KeyExists("vot")==false)
20
  {
21
    // ругаемся
22
    ShowMessage("А куда vot'а дели?");
23
  }
24
 
25
  // закрываем секцию
26
  reg->CloseKey();
27
}
28
 
29
delete reg;
30
 

А работу с текстовиками можно как и стандартную c++, как и билдеровскую если надо муго описать в кратце.

Добавлено 23-12-2007 в 19:43:

Однако учти: работает только в билдере
Или так
C++ Source Code:
1
#include <Registry.hpp>
2
TRegistry *Registry=new TRegistry;
3
try
4
{
5
  Registry->RootKey=HKEY_CURRENT_USER; // Ветвь реестра
6
  Registry->OpenKey("ant47\\Test",true); // Создать новую ветвь в реестре
7
  Registry->WriteString("DATA","15 мая"); // Создание строкового раздела
8
}
9
__finally
10
{
11
  delete Registry;
12
}

Вообщем всё на принципе класса TRegistry крутися

__________________
Хотелось бы, чтобы не только хотелось...

Отредактировано Тренсфер 23-12-2007 в 16:49

Сообщить модератору | | IP: Записан
Сообщение: 24216

Старое сообщение 23-12-2007 16:43
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Тренсфер чуть-чуть поподробнее плз. (и про текстовики, только чтоб формат можно было самому задавать, например .res или .cfg) А мне теперь придётся ставить С++ Буилдер, который у мну уже 2 года валяется на полке(много чего я перепробовал, до того как нашёл бузеровский компилятор)

Сообщить модератору | | IP: Записан
Сообщение: 24217

Старое сообщение 23-12-2007 16:47
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Скачай на http://www.sources.ru/ "Borland C++ Builder FAQ"
Там много всяких полезностей в том числе работа и с бинарными файлами(представляешь какие возможнрости открываются ).

Добавлено 23-12-2007 в 20:13:

С кфг файлами просто работаем также как и с текстовыми. Вот пример создания файл сейва из книги про создание пасьянса на с++

C++ Source Code:
1
AnsiString myfile="с:\\game.sol"; //есть в билдере такой тип данных как строки -очень удобно.
2
//мы можем создать с любым доступным разрешением !
3
int iFile;
4
iFile=FileCreate(myfile);
5
Дальше проверяем создался ли файл и работаем с ним как с обычным текстовым, но нет смысла это описывать.

Но вот если ты хочешь использовать уже Готовые .res (сделаные например в студии) то как текстовый открыть их не получится (точнее получится но ты ивудишь тоже самое что открыв его блокнотом). Если ты просто хочешь использовать файлы с этим расширением как текстовые -то пожалуйста.
Что бы понять принцип работы с окнами в билдере можно почитать например это: http://www.infiltration.ru/p/base.htm

__________________
Хотелось бы, чтобы не только хотелось...

Отредактировано Тренсфер 23-12-2007 в 17:31

Сообщить модератору | | IP: Записан
Сообщение: 24219

Старое сообщение 23-12-2007 17:13
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32209
Нанёс повреждений: 392 ед.

Рейтинг



code:
bool REG_GetValue( HKEY hKey, const char *SubKey, const char *Value, char *pBuffer) { dword dwBufLen = 4096; long lRet; if(lRet = RegOpenKeyEx( hKey, SubKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS ) return false; else { lRet = RegQueryValueEx( hKey, Value, NULL, NULL, (byte *)pBuffer, &dwBufLen); if(lRet != ERROR_SUCCESS) return false; RegCloseKey( hKey ); } return true; } bool REG_SetValue( HKEY hKey, const char *SubKey, const char *Value, char *pBuffer ) { dword dwBufLen = 4096; long lRet; if(lRet = RegOpenKeyEx(hKey, SubKey, 0, KEY_WRITE, &hKey) != ERROR_SUCCESS) return false; else { lRet = RegSetValueEx(hKey, Value, 0, REG_SZ, (byte *)pBuffer, dwBufLen ); if(lRet != ERROR_SUCCESS) return false; RegCloseKey(hKey); } return true; }

работа с реестром

Сообщить модератору | | IP: Записан
Сообщение: 24323

Старое сообщение 25-12-2007 20:58
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Люди! Не юзайте этот аццкий билдер!

За это сообщение Government-Man получил условное предупреждение

Сообщить модератору | | IP: Записан
Сообщение: 24402

Старое сообщение 26-12-2007 14:52
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



>>Люди! Не юзайте этот аццкий билдер!

Да, мне как-то сподручней коды для студии.

Что так никто и не даст образец кода для работы с файлами? Ну типа как в лаунчере ХЛФХ Сингл?

Сообщить модератору | | IP: Записан
Сообщение: 24437

Старое сообщение 27-12-2007 02:46
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12900
Возраст: 32

Рейтинг



Ku2zoff А что там сложного ? Просто экзешник запускает ХЛ.ЕхЕ с опр параметрами , которые ты выбираешь через данный интерфейс

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 24460

Старое сообщение 27-12-2007 09:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32209
Нанёс повреждений: 392 ед.

Рейтинг



Ku2zoff в чем твоя проблема, хоть убей не пойму?
как окошки создавать чтоли?

Сообщить модератору | | IP: Записан
Сообщение: 24483

Старое сообщение 27-12-2007 16:02
-
MSteam
Житель форума

Группа: Опытный
Дата регистрации: Feb 2007
Проживает: Киев
Сообщений: 296
Возраст: 35

Рейтинг



А как передать параметры, которые были даны ланчеру, самой hl.ехе, которую мы через него запустим?



И еще: а можно hl.ехе включить внутрь ланчера?


Код для билдера тож сойдёт. В гугл что не найду, у меня работать отказываеться...

Добавлено 28-12-2007 в 03:41:

Тренсфер , твой код работает, спасибо=)

Сообщить модератору | | IP: Записан
Сообщение: 24498

Старое сообщение 28-12-2007 01:41
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Я душу билдеру не продовал Если честно у меня стоит всё и билдер и студия и визуал студия 2003 и визуал бейсик и дельфи... Всё это что бы не было программерского косоглазия т.е. что бы не было привыкания к конкретной среде разработки. Юзаю взависимости от назначения прилоения, от времени и.т.д. Бывают ситуации когда надо на студии тщательно отделать, а бывают что на станартное прописание окон времени да и надобности нет.

MSteam офицально нельзя, не офицально можно
Прийдётся машинный код редактировать (или даже отладчиком) и вписывать своё, как это делают многие вирусы. Но тут куча подводных камней: если попытаться добавить готовый код в начало -прийдётся пересчитывать все смещения в остальных, на этот могут уйти годы. Можно попытаться добавить этот код в конце а из начала сделать вызов или прыжок на него. Незнаю как тут насчёт авторских прав вальв, но это точно будет считаться взломом hl.ехе.

Цитата:
MSteam писал:
а можно hl.ехе включить внутрь ланчера?

одинаково сложно как и добавить код в сам hl.ехе так и добавить код из hl.ехе. Это по проведению будет одним и тем-же.
Цитата:
MSteam писал:
А как передать параметры, которые были даны ланчеру, самой hl.ехе, которую мы через него запустим?

Считать их в лаунчере и передать в функции запуска CreateProcess, но зачем ?

__________________
Хотелось бы, чтобы не только хотелось...

Сообщить модератору | | IP: Записан
Сообщение: 24570

Старое сообщение 29-12-2007 14:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32209
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Всё это что бы не было программерского косоглазия

Чтоб не было косоглазия код надо в блокноте писать

Сообщить модератору | | IP: Записан
Сообщение: 24574

Старое сообщение 29-12-2007 14:41
-
MSteam
Житель форума

Группа: Опытный
Дата регистрации: Feb 2007
Проживает: Киев
Сообщений: 296
Возраст: 35

Рейтинг



Тренсфер, а кода для считывания и передавания нет?

Да мне как то все равно насчет прав, мне главное интересно - как его вызвать после добавления в конец моего ланчера?

Сообщить модератору | | IP: Записан
Сообщение: 24587

Старое сообщение 30-12-2007 01:59
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 14:22. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Вопрос по экзешнику.
Как написать
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024