XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NETRAT

offline
Опыт: 83,712
Активность:
TONIC спасибо что пояснил. Работает, но, разумеется, через ШЕЛЛ
Старый 24.09.2005, 16:05
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Цитата:
Сообщение от TONIC
хорошо тады объясни мне тупому что значит

Modified=00CB99E446C2C40115

Видимо какое-то непонятное HEX-число, которые обозначает дату изменения. :)
Да и в принципе это неважно. Без этого тоже работает.
Попробуйте создать файл xgm.url с содержанием:
[СODE][InternetShortcut]
URL=http://www.xgm.ru/"[/CODE]
Запустицца!
А вообще лучше так делать:
Код:
impelentation
uses ShellAPI;
...
ShellExecute(Handle, '', 'http://www.xgm.ru', '', '', SW_SHOW);
...

Ну, если не нравицца, делайте как вам удобней. По мне так лучше 1 дополнительная строка кода, чем еще один файл

Отредактировано ShadoW DaemoN, 26.09.2005 в 12:05.
Старый 24.09.2005, 23:03
NETRAT

offline
Опыт: 83,712
Активность:
Гм, теоретически - дата(могет и время) последнего изменения в FX. Да какая те разница - без него же работает

NETRAT добавил:
ShadoW DaemoN чувак, вижу что в чем-то лабаешь(Delphi имеет таку команду Шелл экзекют), но вот така херь не всегда работает, т.ч. предложенный Тоником метод мне более нравицца, однако для него придется писать отдельный файл URL
Старый 24.09.2005, 23:36
NETRAT

offline
Опыт: 83,712
Активность:
TONIC да потому что в настройке ШЕЛЛа может быть указано что угодно - то есть он МОЖЕТ не работать, соответственно если там указан кривой браузер, то страница не откроется. В-общем я уже думал над этим. Хочу файл попробовать, но его похоже придется создавать при первом запуске, а потом проверять его присутсвие(так в установке меньше файлов будет лежать)

NETRAT добавил:
Скин

Может тоже залить его в отдельную библиотеку? Тогда можно будет менять его без перекомпиляции...
Старый 25.09.2005, 18:15
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Небольшой алгоритм по определению "браузера по умолчанию". Не самый эффективный и удобный метод, но в большинстве случаев работает.
Код:
uses Registry;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegistry;
  KeyName,
  ValueStr: string;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    KeyName := 'htmlfile\shell\open\command';
    if Reg.OpenKey(KeyName, False)
      then begin
        ValueStr := Reg.ReadString('');
        Reg.CloseKey;
        Label1.Caption := ValueStr;
      end   // if Reg.OpenKey
    else
      ShowMessage('No Default Webbrowser !');
  finally
    Reg.Free;
  end;   // try ... finally
end;

тогда процедура клика на \\ EXTREME GAME MODMAKING \\ XGM.RU \\ будет выглядеть следующим образом:
Код:
WinExec(PChar(ValueStr + ' http://www.xgm.ru'), sw_normal);

Здесь нет метода ShellExecute, соответственно не нужен модуль ShellAPI.
Но из-за использования модуля Registry, вес проги увеличится примерно на 16896 байт. А при использовании первого метода (с ShellExecute) - не увеличиваецца. Хотя в принципе 16,5 Кб - не такая уж и большая цифра.

Отредактировано ShadoW DaemoN, 26.09.2005 в 12:06.
Старый 25.09.2005, 18:37
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
2ShadoW DaemoN
Вижу хорошо разбираешься в кодировке. Может с "путем" установки помогешь?
Старый 25.09.2005, 18:59
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Цитата:
Сообщение от Зевс
2ShadoW DaemoN
Вижу хорошо разбираешься в кодировке. Может с "путем" установки помогешь?

может помогу, если получится. рассказывай, что делать.
Старый 25.09.2005, 19:15
NETRAT

offline
Опыт: 83,712
Активность:
ShadoW DaemoN да, но тут есть одна трабла - инсталлер я пишу в С =) Точнее MSVC++(MSDEV). Расскажи в чем ты еще пишешь кроме Дельфи. Приятно видеть еще одного кодера на ХГМ =)

Трабла такая что у Зевса старкрафт установлен криво и соответственно путь установки в ключе лежит кривой

Зевс ты умеешь пользоваться утилой regedit.exe ? Если да, то найди в ней поиском все строки, в которых присутствует имя starcraft и из них выбери те, которые совпадают с твоим путем установки старика и дай мне ее адрес.

У мя это HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\Starcraft по ключю InstallPath и, плин, этот ключ НЕ МОЖЕТ ВРАТЬ

ShadoW DaemoN то есть я уже использую реестр, т.ч. мне пофиг. Идея неплохая. И потом, установка уже весит больше 3 мб(изза устанавливаемых файлов). Ты то как думаешь лучше сцылку сделать на сайт? Всмысле кода - WinExec, ShellExecute или ShellExecute("xgm.URL")?
Старый 26.09.2005, 02:53
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
2NETRAT
Будет весить меньше. Я седня вышлю точный список ненужных файлов.
Теперь про путь... объясни тогда почему 7х инсталер выдает путь d:\Игры\broodwar, а x-installer такой: d:\Игры\broodwar\starcraft.exe Бред. Не будут же файлы ставиться в ехешник. Их надо в директорию с игрой.
Цитата:
Трабла такая что у Зевса старкрафт установлен криво и соответственно путь установки в ключе лежит кривой

Хочешь сказать у тебя по другому :?
Старый 26.09.2005, 09:09
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Цитата:
Сообщение от NETRAT
ShadoW DaemoN да, но тут есть одна трабла - инсталлер я пишу в С =) Точнее MSVC++(MSDEV). Расскажи в чем ты еще пишешь кроме Дельфи. Приятно видеть еще одного кодера на ХГМ =)

Пишу в основном в Дельфи, стаж дельфиста - около двух лет, но знаю я далеко не все. Первой моей прогой был калькулятор мат. выражений =).
Еще я знаю немного С (на примере турбо С) и ПХП. От вида MSVC++ тошнит, более привлекательной С++ платформой считаю Borland C++Builder. Anything else =)?
Цитата:
Сообщение от NETRAT
Трабла такая что у Зевса старкрафт установлен криво и соответственно путь установки в ключе лежит кривой
...
У мя это HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\Starcraft по ключю InstallPath и, плин, этот ключ НЕ МОЖЕТ ВРАТЬ

Вот что я надумал:
Код:
var ScPath: string;
...
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.KeyExists('\Software\Blizzard Entertainment\Starcraft')
  then begin
    Reg.OpenKey('\Software\Blizzard Entertainment\Starcraft', false);
    ScPath := Reg.ReadString('InstallPath');
    if FileExists(ScPath + '\sc.exe') // или как там екзешник у них называется
      then lbPath.Caption := 'Starcraft найден в ' +  ScPath; // все пучком
      else lbPath.Caption := 'Starcraft не найден'; // все сморчком
  end;

Это что-то вроде дополнительной проверки на экзешник. Вместо вывода в метку lbPath можно написать что-нибудь свое.
Цитата:
Сообщение от NETRAT
ShadoW DaemoN то есть я уже использую реестр, т.ч. мне пофиг. Идея неплохая. И потом, установка уже весит больше 3 мб(изза устанавливаемых файлов). Ты то как думаешь лучше сцылку сделать на сайт? Всмысле кода - WinExec, ShellExecute или ShellExecute("xgm.URL")?

В общем, приведенный ниже код, у меня немного тупит. Точнее, не код, а РЕЕСТР тупит.
В реестре по пути "htmlfile\shell\open\command" в нулевом значении записан путь к IE, хотя по дефолту у меня Опера стоит. Так как я могу быть не один такой, предлагаю сделать так:
Код:
uses ShellAPI, Registry;
...
if ShellExecute(Handle, '', 'http://www.xgm.ru', '', '', SW_SHOW) = 0;
then begin
// приведенный выше большой кусок кода;
// вместо строки Label1.Caption := ValueStr;
// пишем WinExec(PChar(ValueStr + ' http://www.xgm.ru'), sw_normal);
end;

Если ShellExecute не сработает, то запускаем альтернативный вариант.

Отредактировано ShadoW DaemoN, 26.09.2005 в 12:09.
Старый 26.09.2005, 12:01
NETRAT

offline
Опыт: 83,712
Активность:
Да эта сволач скорее всего сработает, даже если криво и ошибку не вернет. Но проверку так и напишу.

Я мя наоборот Борланд не катит. А знаешь ли ты что среда MSVC считается самой удобной всмысле подсветок, подкладок, настроек и всякой такой хери. И достаточно универсальна - к примеру она ничем не хуже того же Homesite или Dreamveawer для HTML. Вот так то =)

Слушай, Зевс, вот что у мя щас написано в установке:
Код:
InstallFile(4,"EditLocal.dll","editlocal",1000,96222,true),

InstallFile(1,"battle.snp","patch",1001,512254),
InstallFile(1,"loader.exe","patch",1002,11280),
InstallFile(1,"patch.txt","patch",1003,27346),
InstallFile(1,"patch_rt.mpq","patch",1004,585061),
InstallFile(1,"SEditDEU.loc","patch",1006,65536),
InstallFile(1,"SEditENU.loc","patch",1007,65536),
InstallFile(1,"storm.dll","patch",1008,335872,true),
InstallFile(1,"SEditESP.loc","patch",1009,65536),
InstallFile(1,"SEditFRA.loc","patch",1010,65536),
InstallFile(1,"SEditITA.loc","patch",1011,65536),
InstallFile(1,"SEditPTB.loc","patch",1012,65536),
InstallFile(1,"SEditPTG.loc","patch",1013,65536),
InstallFile(1,"standard.snp","patch",1014,127767),
InstallFile(1,"starcraft.exe","patch",1015,1093632,true)

Первое - это радио пункт - часть установки. Второе - имя файла. Третье игнорь, четвертое тоже, пятое - это размер файла в байтах, пятое - обязательно ли присутствие файла в папке установки

NETRAT добавил:
Все, я сам не вьехал. Дико извиняюсь, зря гоню - я использовать раздел HKEY_LOCAL_MACHINE вместо HKEY_CURRENT_USER. Fixed

NETRAT добавил:
TONIC нафик добавлять еще один файл к установке. Файлы имеют такое свойство - теряться! Я его буду созавать при первом запуске или когда его нет. Димон - знаю =)

NETRAT добавил:
WinExec вообще не берет файлы кроме exe/com
Старый 26.09.2005, 14:36
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
standard.snp и battle.snp можешь убивать нафиг. Итого минус 625 кб.
Цитата:
HKEY_LOCAL_MACHINE вместо HKEY_CURRENT_USER

Это означает, что проблема исчерпана? Можно уже турбо эдит с иконкой высылать :) Кстати почему 32х32?
Старый 26.09.2005, 15:03
NETRAT

offline
Опыт: 83,712
Активность:
Кстати говоря url файл гораздо быстрее открывает сцылку чем обычный ShellExecute

NETRAT добавил:
Зевс а сколько?! икона то 32х

NETRAT добавил:
Высылай
Старый 26.09.2005, 15:08
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Цитата:
Сообщение от NETRAT
Я мя наоборот Борланд не катит. А знаешь ли ты что среда MSVC считается самой удобной всмысле подсветок, прокладок, настроек и всякой такой хери. И достаточно универсальна - к примеру она ничем не хуже того же Homesite или Dreamveawer для HTML. Вот так то =)

Каких-таких прокладок? ась?
Подсветка в Дельфях тоже есть, и если ее нормально настроить, то код будет выглядеть охренительно.
Считается-то считается самой удобной, ан нет. Ну, во-первых, в дельфи визуальный кодинг - есть визуальный кодинг. Компонентов куча как для Дельфей, так и для Билдера, хоть ты башню делай. А В VC++ всего несколько, и получается не очень хорошо (в смысле бедности дизайна).
Во-вторых, я могу подключить модули VC++ к себе в прогу, а вот VC-шники не могут :P. Поэтому Сишник может работать на Дельфиста, а вот Дельфист на Сишника - ну дык это просто-напросто impossible :).
А вообще у кодеров на разных языках, кроме общей идеологии, есть одно очень большое сходство - ПИВО :).
Цитата:
Сообщение от NETRAT
Кстати говоря url файл гораздо быстрее открывает сцылку чем обычный ShellExecute

Как ты это узнал? Как подсчитал время-то?
Цитата:
Сообщение от NETRAT
Приятно видеть еще одного кодера на XGM =)

а мне-то как приятно :), тебе не передать.

Ну что, помочь еще с какими-нибудь заковыристыми алгоритмами?
Старый 26.09.2005, 16:15
NETRAT

offline
Опыт: 83,712
Активность:
ShadoW DaemoN выделяй что надо в dll и могешь любые модули юзать =) Не, визуальный кодинг это просто слова. А компоненты - бери ActiveX Com+ OLE и т.п. Наследуй, делай свои. В-общем их не меньше получается

Да это заметно - тут даже считать не приходится

Ага, вот думаю подсветку XGM делать вшитую в код программы - типа графикой ее сделать

NETRAT добавил:
Зевс вот икона. Давай свечение и Турбо Эдит
Старый 26.09.2005, 16:55
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
А какой прогой ты пользуешься для конверта в ico. Мне надо с ними поэксперементировать. В растянутом виде не фонтан. Турбо Эдит готов, осталось пути юнитов прописать и может еще че-нить добавлю. Надеюсь завтра потестим :)
Старый 26.09.2005, 21:36
NETRAT

offline
Опыт: 83,712
Активность:
Зевс Axialis AX Icon зе бест
Старый 26.09.2005, 22:01
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
Щас добил едит. Вот функции turbo edit'a:
  • Максимальное число апгрейда брони и оружия увеличено до 215;
  • В триггерах RUN AI SCRIPT и RUN AI SCRIPT AT LOCATION активированы, ранее недоступные, скрипты;
  • Появилась возможность размещать части добытых ресурсов, а так же Doodad'ы из Installation;
  • Открыты новые герои, такие как Arcturus Mengsk, Raszagal;
  • Открыты сабюниты (Protoss Interceptor, Nuclear Missile, Larva и др.);
  • Активирована возможность размещения спелл Scaner Sweep, Dark Swarm, Disruption Field;
  • Снят лимит количества юнитов на карте (расставляйте их по всей карте);
  • Убрано ограничение по размещению строений на карте (стройте хоть в Installation);
Я бы еще хотел поставить функцию сохранения в chk формат, добавить до 12 игроков. Но это вряд ли получится :) У кого еще какие идеи... Если нет, то я те Нетрат, его скидываю..
Старый 03.10.2005, 16:33
NETRAT

offline
Опыт: 83,712
Активность:
Зевс желательно высылай все сейчас пока я в универе =) если что потом библиотеку пропатчим
Старый 03.10.2005, 16:38
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
Щас я не могу... :)
Старый 03.10.2005, 18:02
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 15:09.