Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2024, 09:29   #1
tetris
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 22
По умолчанию Непонятная ошибка

Есть большое игровое приложение, перегруженное.
Решил вынести плеер фоновой музыки в отдельное приложение.
Сделал.
При старте основного проекта (FormCreate) запускаем плеер фоновой музыки

Код:
  // Получаем путь EXE файлу Сонара:
  PatchSonar := ExtractFilePath(ParamStr(0))+ 'Bin\Sonar\' + 'Sonar.exe';
  //
  // Если EXE файл Сонара на месте:
  if FileExists(PatchSonar) then begin
    ShellExecute(0, 'open', (Pchar(PatchSonar)), nil, nil, SW_NORMAL); // запускаем Сонар
  ...
  end;
При старте плеер автоматически воспроизводит базовый аудио трек
когда юзер настроил и запустил игру меняем текущий трек на нужный (для выбранной игры)

Код:
  fmLogo.Sonar_Command_Send('2'+IntToStr(SndFon_Num)); // Сонар: Плей Луп
сама процедура:

// Передаем данные Сонару:

Код:
  procedure TfmLogo.Sonar_Command_Send(S:String);
  var
    CDS: TCopyDataStruct;
  begin
    // Устанавливаем тип команды
    CDS.dwData := CMD_SETLABELTEXT;
    // Устанавливаем длину передаваемых данных
    CDS.cbData := Length(S) + 1;
    // Выделяем память буфера для передачи данных
    GetMem(CDS.lpData, CDS.cbData);
    try
      // Копируем данные в буфер
      StrPCopy(CDS.lpData, AnsiString(S));
      //Отсылаем сообщение в окно с заголовком StringReceiver
      SendMessage(FindWindow(nil, 'fmSonar'), WM_COPYDATA, Handle, Integer(@CDS));
    finally
      // Освобождаем буфер
      FreeMem(CDS.lpData, CDS.cbData);
    end;
  end;
Вся эта музыка работает. Я на 4 компах (винда 10-11) работаю с этим приложением уже полгода.
но иногда (<1%), встречаются клиенты у которых возникает исключение.
Многократно клонирующееся окно при запуске основного приложения.
По описанию похоже на ошибку доступа или отсуствие привилегий.

Частично оттестить удалось только с одним (вышел ненадолго на контакт)
Просто при переименовании exe фонового плеера ошибка при старте пропала
хотя, при запуске игры все равно вышла.

Больше теста не подлучилось, пациент сбежал.
Я сам специально ставил 3-4 винды на ноуте (и 10 и 11) - ну не могу я поймать эту ошибку!
И тестить больше не с кем...

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

Т.е. я думаю, что винда при каком то варианте настроек акканта - блокирует "новому приложению" запуск фоновых приложений.
+ блокирует передачу данных в окно (даже если фоновое приложение запущено вручную)

Кто подскажет мысли? Как с этим бороться?
Изображения
Тип файла: png 1731030223160.png (96.2 Кб, 2 просмотров)
tetris вне форума Ответить с цитированием
Старый 26.11.2024, 12:39   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,852
По умолчанию

запуск из отдельного приложения - оно вам надо? компонуйте всё в одном приложении. и чтоб треки не загружались из файлов (а то опять ошибок не избежать из-за доступа к файлам в W10 или W11), а из ресурсов брались (т.е. из самого приложения)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 26.11.2024, 13:44   #3
tetris
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 22
По умолчанию

так и было раньше.
Но там сложности с воспроизведением (там сделано через DXSound 4 канала)
т.е. был 1 канал фоновая музыка (непрерывная) + 3 канала звуки окружения, голоса, эффекты
писался этот модуль еще под XP.
И в винде 10 ТОЖЕ возникла трабла. при активации любого 2-3-4 канала, в 1 канале (фон) возникает микро обрыв, доли секунды, но это все равно СЛЫШНО.... победить этот трабл я не смог! Посему для "разгрузки" основного приложения + чтоб избежать этого трабла вынес фоновую музыку в отд. приложение (без всяких DX).
(а 2-3-4 DX каналы остались в основном)
Но вот тут другой бажок образовался... теперь с доступом)
tetris вне форума Ответить с цитированием
Старый 28.11.2024, 15:55   #4
tetris
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 22
По умолчанию

Могу только предположить, что ошибку всеж создает основной проект, очевидно ShellExecute
Если б ошибку вызывал дочерний exe при попытке загрузить свои ресурсы, то в окне ошибки винда бы написала имя дочернего EXE, а тут она написала имя основного. Значит Ошибку вызывает всеж запуск дочернего EXE.

Или вообще это антивирус какой то блочит подозрительный запуск подозрительного приложения. Я к сожалению антивирусный момент не успел уточнить.

Последний раз редактировалось tetris; 28.11.2024 в 15:58.
tetris вне форума Ответить с цитированием
Старый 03.12.2024, 10:25   #5
tetris
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 22
По умолчанию

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

Для начала , необходимо найти компьютер, на котором эта ошибка есть.
Потом, мы с вами обсудим условия вашей помощи.

Спасибо!

Проект в архиве:
(Я убрал все что мог, осталось 90Mb)+(Проверено антивирусом)
https://ufile.io/6gc1xirv
https://fastupload.io/b9b41511aab496db
tetris вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка stalker1995s Общие вопросы Delphi 2 31.03.2013 23:57
Непонятная ошибка... JekaDefer Общие вопросы Delphi 3 05.07.2012 23:43
Непонятная мне ошибка Siluet Общие вопросы Delphi 31 24.03.2011 06:03
Непонятная ошибка!!!! Scorpeon Общие вопросы Delphi 4 14.06.2010 01:23
Непонятная ошибка Vladya Помощь студентам 0 08.05.2010 13:52