无忧启动论坛

标题: 赏1000币解决 10 PE 百分浏览器下载完成无“咚”声 [打印本页]

作者: yyz2191958    时间: 4 天前
标题: 赏1000币解决 10 PE 百分浏览器下载完成无“咚”声
本帖最后由 yyz2191958 于 2025-8-15 18:50 编辑

【已解决】
下载附件(两个.dll)到  chrome.exe  目录=OK

(10 PE  和 11 PE 都解决问题)
=================================
原来的问题:
赏1000币解决 10 PE 百分浏览器下载完成无“咚”声
***********************************************************************
由于悬赏的无忧币,如果问题没有解决,不能够返回。由此,这里悬赏1无忧币,一旦问题解决,我会编辑为悬赏1000无忧币给你。谢谢
***********************************************************************

使用环境:

一、使用的PE:
Win10PEx64_10586_网络版_下载Google浏览器.iso
Size: 322371584 bytes(307.43M)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=435502

二、浏览器(百分浏览器便携版):
版本 5.1.1130.129(正式版本) (64 位) (Portable) (Chromium 118.0.5993.159)
https://www.centbrowser.cn/history.html
***********************************************************************
目前情况:10 PE下,下载完成无“咚”声(windows7 正常系统下 有“咚”声)
希望达到:10 PE下,下载完成有“咚”声
***********************************************************************
说明:
1.不换 PE,希望通过增加组件 或者 修改注册表解决
2.浏览器就用百分浏览器(改用最新版本也行),不要其它的。
3.我是小白,操作尽量简单(离线替换、增减文件我会)。下面的操作我就不晓得:
离线导入的reg,离线挂载 pe 的 SOFTWARE 注册表,挂载名称为 PE-SOFTWARE
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\PE-SOFTWARE\Classes\exefile\ShellEx\ContextMenuHandlers\PintoStartScreen]
@="{470C0EBD-5D73-4d58-9CED-E91E22E23282}"
... ...




放在chrome.exe目录.rar

177.81 KB, 下载次数: 34, 下载积分: 无忧币 -2


作者: YWFhYmJi    时间: 4 天前
yyz2191958 发表于 2025-8-15 15:13
result.txt
PlaySound: Result=1, UserInput=0
sndPlaySound: Result=1, UserInput=0

找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到这个函数。解决方案是用其他的音频函数替代这个函数,mciSendString也不管用,返回MCIERR_DEVICE_NOT_INSTALLED,可能是PE缺少组件,不过AudioClient接口是管用的,我写了一个hook dll,下载后把version.dll放到和chrome.exe同一目录下,重启浏览器再试试下载(临时写的,比较仓促,可能有bug,您先试用一下看看行不行)
pan.huang1111.cn/s/y5a9wt6?password=yhiqjy
作者: yyz2191958    时间: 4 天前
本帖最后由 yyz2191958 于 2025-8-15 15:09 编辑

占楼,备用(补充之类)
=========================================
Win11PEx64_26100.3194_网络版_下载Google浏览器.iso
Size: 367099904 bytes(350.09M)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=435065
=========================================
跟 10 PE 一样,下载完没有声音===============================================================
KuerPE_的 22H2(19045.5678) 10 PE 下载完有声音
https://www.123pan.com/s/Q6zA-xDvTv.html 提取码:3hAH

========================================
10 PE下将 “D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\5.1.1130.129\complete.wav”  拖到

D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\chrome.exe  图标上  能够发声

===========================================
10 PE下将  D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\5.1.1130.129\complete.wav 粘贴 到浏览器的地址栏,能够发声


3.png (29.87 KB, 下载次数: 0)

3.png

4.png (73.25 KB, 下载次数: 1)

4.png

作者: martin313    时间: 4 天前
yyz2191958 发表于 2025-8-15 10:54
占楼,备用(补充之类)
=========================================
Win11PEx64_26100.3194_网络版_下载 ...


楼主的需求,不少
作者: yyz2191958    时间: 4 天前
martin313 发表于 2025-8-15 11:10
楼主的需求,不少

就是强迫症哦(这个东西本来没有也问题不大的)
作者: martin313    时间: 4 天前
yyz2191958 发表于 2025-8-15 11:14
就是强迫症哦(这个东西本来没有也问题不大的)


悬赏加个0,估计也没人愿意折腾,我先激将法一下,哈哈
作者: yyz2191958    时间: 4 天前
martin313 发表于 2025-8-15 11:16
悬赏加个0,估计也没人愿意折腾,我先激将法一下,哈哈

或者有高手能够轻轻松松解决问题哟
作者: zts59    时间: 4 天前
WINDOWS和PE不就是声卡驱动和影音组件的区别么?
作者: yyz2191958    时间: 4 天前
zts59 发表于 2025-8-15 11:19
WINDOWS和PE不就是声卡驱动和影音组件的区别么?

声卡驱动驱动没有问题,PE 能够播放声音
作者: martin313    时间: 4 天前
yyz2191958 发表于 2025-8-15 11:21
声卡驱动驱动没有问题,PE 能够播放声音


首先你要确认这个浏览器,在正常系统下或者哪个PE下,正常不?

至少你得提供在哪个PE中正常,那么才有可能或者兴趣帮你解决指定PE的问题
作者: YWFhYmJi    时间: 4 天前
用这个浏览器在PE下能正常播放音频吗?比如mp3或者wav格式的
作者: yyz2191958    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 11:25
用这个浏览器在PE下能正常播放音频吗?比如mp3或者wav格式的

将 “D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\5.1.1130.129\complete.wav”  拖到

D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\chrome.exe  图标上  能够发声
作者: szwp    时间: 4 天前
10586正常系统能咚么
作者: yyz2191958    时间: 4 天前
szwp 发表于 2025-8-15 11:34
10586正常系统能咚么

我没有安装10586正常系统

正常系统就 windows7(64位)
作者: guong    时间: 4 天前
yyz2191958 发表于 2025-8-15 11:29
将 “D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\5.1.1130.129\complete.wav”  拖到

D:\1绿色软件 ...

是不是设置里路径有误
作者: yyz2191958    时间: 4 天前
guong 发表于 2025-8-15 11:41
是不是设置里路径有误

没有问题吧,windows7下,同样使用这个浏览器,下载完就有声音
作者: tt911    时间: 4 天前
本帖最后由 tt911 于 2025-8-15 11:51 编辑

@yyz2191958
你可以浏览器粘入本机上的一个WAV文件
例如: D:\0.万能爆破\星际_原子弹准备发射.wav
看是否能正常的放出音来
正常说明驱动组件OK,反之说明系统。。相关文件缺失。。。
凡是Process Monitor中显示Not Found的,就是没有找到。。失去的。按照截获到的路径各回各家,各找各妈,重复至到无错和正常就OK了。

作者: 绿光科技    时间: 4 天前
tt911 发表于 2025-8-15 11:47
@yyz2191958
你可以浏览器粘入本机上的一个WAV文件
例如: D:\0.万能爆破\星际_原子弹准备发射.wav

回答的到位
作者: yyz2191958    时间: 4 天前
本帖最后由 yyz2191958 于 2025-8-15 12:03 编辑
tt911 发表于 2025-8-15 11:47
@yyz2191958
你可以浏览器粘入本机上的一个WAV文件
例如: D:\0.万能爆破\星际_原子弹准备发射.wav

10 PE下将 D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\5.1.1130.129\complete.wav 粘贴 到浏览器的地址栏,能够发声
作者: holley2008    时间: 4 天前
本帖最后由 holley2008 于 2025-8-15 12:05 编辑

你怕是先在正常win10电脑上看看这个便携版 下载文件有没有咚声
还有 测试下不用内置下载 调用第三方下载会不会有声音
作者: yyz2191958    时间: 4 天前
holley2008 发表于 2025-8-15 12:03
你怕是先在正常win10电脑上看看这个便携版 下载文件有没有咚声

我的正常系统没有win10,只有windows7
作者: yyz2191958    时间: 4 天前
holley2008 发表于 2025-8-15 12:03
你怕是先在正常win10电脑上看看这个便携版 下载文件有没有咚声
还有 测试下不用内置下载 调用第三方下载会 ...

调用迅雷,完成有声音
作者: dkzzlf    时间: 4 天前
围观学习
作者: a583091790    时间: 4 天前
这声音好早前弄过,折腾一下就能弄好的,自己搞一下就行了
作者: yyz2191958    时间: 4 天前
a583091790 发表于 2025-8-15 13:44
这声音好早前弄过,折腾一下就能弄好的,自己搞一下就行了

是怎么弄好的?
作者: YWFhYmJi    时间: 4 天前
在没有声音的PE里运行一下检测程序,测试系统支持哪些音频API,测试完成后将result.txt中的内容贴上来,我试试能不能解决。
pan.huang1111.cn/s/RYQjRUB?password=mr7mth
作者: yyz2191958    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 15:10
在没有声音的PE里运行一下检测程序,测试系统支持哪些音频API,测试完成后将result.txt中的内容贴上来,我 ...

result.txt
PlaySound: Result=1, UserInput=0
sndPlaySound: Result=1, UserInput=0
mciSendString: Result=(306,300), UserInput=0
AudioClient: Result=0, UserInput=1
谢谢
作者: martin313    时间: 4 天前

我猜是因为PE的software注册表太精简的缘故,你可以试试完整版注册表看看
作者: zlq_hysy    时间: 4 天前
老哥很执着的。我正常的win也没听见百分下载完成或发出“叮”声
作者: martin313    时间: 4 天前
yyz2191958 发表于 2025-8-15 13:54
是怎么弄好的?


如果完整版注册表解决问题了,那么可以把完整版注册表发我,用我的精简方案精简此software注册表,帮你瘦身,哈哈
作者: yyz2191958    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 15:36
找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到 ...

好的 我现在就试一试 谢谢
作者: martin313    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 15:36
找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到 ...


如果确实是winmm.dll导致的问题,那我估计补全 winmm.dll 的software注册表,应该能解决问题
作者: yyz2191958    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 15:36
找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到 ...

确实是这个问题,现在可以了

非常感谢
作者: martin313    时间: 4 天前
yyz2191958 发表于 2025-8-15 15:46
确实是这个问题,现在可以了

非常感谢


恭喜恭喜

但我猜就是因为注册表过于精简的原因
作者: yyz2191958    时间: 4 天前
martin313 发表于 2025-8-15 15:49
恭喜恭喜

但我猜就是因为注册表过于精简的原因

非常感谢
作者: martin313    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 10:54
找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到 ...


能不能帮忙写个hook.dll,就是在我的PE( Bone_PE_wifi_26100.4770_zh-CN.wim http://bbs.wuyou.net/forum.php?mod=viewthread&tid=446700)中,当原生explorer.exe双击bitlocker分区(上锁状态)时,能自动调用system32文件夹下的unlock.cmd
作者: YWFhYmJi    时间: 4 天前
刚刚那个是测试版,这个是最终版,之前那个代码没有等待音效播放完成后就停止了,音效可能会不完整,我又改了一下,顺便去除了日志记录功能(之前那个版本会在X:\ChromeFix_Logs里记录日志)。
pan.huang1111.cn/s/P6BjyFm?password=wavv63
最终版代码:
  1. // dllmain.cpp : Defines the entry point for the DLL application.
  2. // References: blog.csdn.net/king110_1/article/details/121170336
  3. #include "pch.h"
  4. #include "Detours/include/detours.h"
  5. #include <stdio.h>
  6. #include <mmsystem.h>
  7. #include <mmdeviceapi.h>
  8. #include <Audioclient.h>

  9. #pragma comment(lib, "winmm.lib")

  10. #if !defined(_WIN64)
  11. #        if defined(_DEBUG)
  12. #                pragma comment(lib, "Detours/lib.X86Debug/detours.lib")
  13. #        else
  14. #                pragma comment(lib, "Detours/lib.X86/detours.lib")
  15. #        endif
  16. #else
  17. #        if defined(_DEBUG)
  18. #                pragma comment(lib, "Detours/lib.X64Debug/detours.lib")
  19. #        else
  20. #                pragma comment(lib, "Detours/lib.X64/detours.lib")
  21. #        endif
  22. #endif

  23. #ifdef DEBUG
  24. static FILE* filelog = NULL;

  25. #define OutputLog(...) (filelog ? (fprintf(filelog, __VA_ARGS__), fflush(filelog)) : (printf(__VA_ARGS__), fflush(stdout)))
  26. #else
  27. #define OutputLog(...)
  28. #endif

  29. typedef BOOL(WINAPI* FuncPlaySoundW)(
  30.         LPCWSTR pszSound,
  31.         HMODULE hmod,
  32.         DWORD fdwSound
  33. );

  34. FARPROC pfOrigPlaySoundW = NULL;

  35. #define EXIT_ON_ERROR(hres, step) if (FAILED(hres)) { goto Exit; }

  36. #define REFTIMES_PER_SEC 5000000

  37. int SetFormat(WAVEFORMATEX* wfex)
  38. {
  39.         wfex->wFormatTag = 1;
  40.         wfex->nChannels = 2;
  41.         wfex->cbSize = 0;
  42.         wfex->nSamplesPerSec = 44100;
  43.         wfex->nAvgBytesPerSec = 44100 * 2 * 2;
  44.         wfex->wBitsPerSample = 16;
  45.         wfex->nBlockAlign = 4;
  46.         return 0;
  47. }

  48. const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
  49. const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
  50. const IID IID_IAudioClient = __uuidof(IAudioClient);
  51. const IID IID_IAudioRenderClient = __uuidof(IAudioRenderClient);

  52. HRESULT AudioClientPlayAudio(INT16* wav_buf, LONG64  dataSize)
  53. {
  54.         int sk = 0;
  55.         HRESULT hr;
  56.         IMMDevice* pDevice;
  57.         IMMDeviceEnumerator* pEnumerator = NULL;
  58.         IAudioClient* pAudioClient = NULL;
  59.         IAudioRenderClient* pRenderClient = NULL;
  60.         REFERENCE_TIME hnsRequestedDuration = REFTIMES_PER_SEC;

  61.         UINT32 bufferSizeInFrames;
  62.         DWORD initStreamFlags = (AUDCLNT_STREAMFLAGS_RATEADJUST | AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY);
  63.         WAVEFORMATEX pwfx;
  64.         INT16* pData = NULL;

  65.         IAudioClock* audioClock;
  66.         UINT64 audioPlaybackFreq;
  67.         UINT64 audioPlaybackPos;
  68.         UINT64 audioPlaybackPosInSeconds;
  69.         UINT64 audioPlaybackPosInSamples;
  70.         UINT32 wavPlaybackSample = 0;
  71.         UINT32 bufferPadding;
  72.         UINT32 soundBufferLatency;
  73.         UINT32 numFramesToWrite;
  74.         int read = 0, n = 0;

  75.         UINT32 numWavSamples = (UINT32)(dataSize / (2 * sizeof(UINT16)));
  76.         DWORD num = 0;

  77.         hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
  78.         EXIT_ON_ERROR(hr, "CoInitializeEx()");
  79.         hr = CoCreateInstance(CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&pEnumerator);
  80.         EXIT_ON_ERROR(hr, "CoCreateInstance()");
  81.         hr = pEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &pDevice);
  82.         EXIT_ON_ERROR(hr, "pEnumerator->GetDefaultAudioEndpoint()");
  83.         hr = pDevice->Activate(IID_IAudioClient, CLSCTX_ALL, NULL, (void**)&pAudioClient);
  84.         EXIT_ON_ERROR(hr, "pDevice->Activate()");
  85.         hr = SetFormat(&pwfx);
  86.         EXIT_ON_ERROR(hr, "SetFormat()");
  87.         hr = pAudioClient->Initialize(AUDCLNT_SHAREMODE_SHARED, initStreamFlags, hnsRequestedDuration * 40, 0, &pwfx, NULL);
  88.         EXIT_ON_ERROR(hr, "pAudioClient->Initialize()");
  89.         hr = pAudioClient->GetService(__uuidof(IAudioRenderClient), (LPVOID*)(&pRenderClient));
  90.         EXIT_ON_ERROR(hr, "pAudioClient->GetService()");
  91.         hr = pAudioClient->GetBufferSize(&bufferSizeInFrames);
  92.         EXIT_ON_ERROR(hr, "pAudioClient->GetBufferSize()");
  93.         hr = pAudioClient->Start();
  94.         EXIT_ON_ERROR(hr, "pAudioClient->Start()");

  95.         while (read < dataSize / 2)
  96.         {
  97.                 hr = pAudioClient->GetCurrentPadding(&bufferPadding);
  98.                 EXIT_ON_ERROR(hr, "pAudioClient->GetCurrentPadding()");
  99.                 soundBufferLatency = bufferSizeInFrames / 50;
  100.                 numFramesToWrite = soundBufferLatency - bufferPadding;
  101.                 hr = pRenderClient->GetBuffer(numFramesToWrite, (BYTE**)(&pData));
  102.                 EXIT_ON_ERROR(hr, "pRenderClient->GetBuffer()");
  103.                 for (UINT32 i = 0; i < numFramesToWrite; i++)
  104.                 {
  105.                         pData[2 * i] = wav_buf[sk++];
  106.                         pData[2 * i + 1] = wav_buf[sk++];
  107.                         read = read + 2;
  108.                 }
  109.                 hr = pRenderClient->ReleaseBuffer(numFramesToWrite, 0);
  110.                 EXIT_ON_ERROR(hr, "pRenderClient->ReleaseBuffer()");
  111.                 hr = pAudioClient->GetService(__uuidof(IAudioClock), (LPVOID*)(&audioClock));
  112.                 EXIT_ON_ERROR(hr, "pAudioClient->GetService()");
  113.                 audioClock->GetFrequency(&audioPlaybackFreq);
  114.                 audioClock->GetPosition(&audioPlaybackPos, 0);
  115.                 audioClock->Release();
  116.                 audioPlaybackPosInSeconds = audioPlaybackPos / audioPlaybackFreq;
  117.                 audioPlaybackPosInSamples = audioPlaybackPosInSeconds * 44100;
  118.         }

  119.         UINT32 padding;
  120.         while (1)
  121.         {
  122.                 pAudioClient->GetCurrentPadding(&padding);
  123.                 if (padding == 0) break;
  124.                 Sleep(100);
  125.         }

  126. Exit:
  127.         pAudioClient->Stop();
  128.         pAudioClient->Release();
  129.         pRenderClient->Release();
  130.         CoUninitialize();

  131.         return hr;
  132. }

  133. // Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
  134. unsigned char AudioData[349532] = {
  135.         ... // 这里面是完成音效的数据,需要按照要求的格式从wav音频里提取出数据
  136. };

  137. HANDLE g_hPlayEvent;

  138. DWORD WINAPI AudioThread(LPVOID lpParameter)
  139. {
  140.         while (1)
  141.         {
  142.                 WaitForSingleObject(g_hPlayEvent, INFINITE);
  143.                 AudioClientPlayAudio((INT16*)AudioData, sizeof(AudioData));
  144.                 ResetEvent(g_hPlayEvent);
  145.         }
  146. }

  147. BOOL
  148. WINAPI
  149. MyPlaySoundW(
  150.         LPCWSTR pszSound,
  151.         HMODULE hmod,
  152.         DWORD fdwSound
  153. )
  154. {
  155.         OutputLog("PlaySoundW(%ls, %d)\n", pszSound, fdwSound);
  156.         if (pszSound && !wcscmp(pszSound, L"complete.wav") && !hmod && fdwSound == 131075)
  157.         {
  158.                 OutputLog("Intercepted, calling AudioClient to play the audio.\n");
  159.                 SetEvent(g_hPlayEvent);
  160.                 return TRUE;
  161.         }
  162.         return ((FuncPlaySoundW)pfOrigPlaySoundW)(pszSound, hmod, fdwSound);
  163. }

  164. void StartHook()
  165. {
  166.         DetourRestoreAfterWith();

  167.         DetourTransactionBegin();
  168.         DetourUpdateThread(GetCurrentThread());

  169.         HMODULE hWinmm = LoadLibraryW(L"winmm.dll");
  170.         if (hWinmm)
  171.                 pfOrigPlaySoundW = GetProcAddress(hWinmm, "PlaySoundW");
  172.         if (pfOrigPlaySoundW)
  173.                 DetourAttach(&(PVOID&)pfOrigPlaySoundW, MyPlaySoundW);
  174.         else
  175.                 OutputLog("Could not find PlaySoundW in winmm.dll\n");

  176.         LONG error = DetourTransactionCommit();
  177.         if (error == NO_ERROR)
  178.         {
  179.                 OutputLog("Hooked functions\n");
  180.         }
  181.         else
  182.         {
  183.                 OutputLog("Error hooking functions: %ld\n", error);
  184.         }
  185. }

  186. BOOL APIENTRY DllMain( HMODULE hModule,
  187.                        DWORD  ul_reason_for_call,
  188.                        LPVOID lpReserved
  189.                      )
  190. {
  191.     if (DetourIsHelperProcess())
  192.     {
  193.         return TRUE;
  194.     }
  195.     switch (ul_reason_for_call)
  196.     {
  197.     case DLL_PROCESS_ATTACH:
  198.         {
  199.                 WCHAR lpExeFilePath[MAX_PATH];
  200.                 GetModuleFileNameW(GetModuleHandle(NULL), lpExeFilePath, MAX_PATH);
  201.                 WCHAR* lpExeFileName = wcsrchr(lpExeFilePath, L'\\');
  202.                 if (lpExeFileName == NULL)
  203.                         lpExeFileName = lpExeFilePath;
  204.                 else
  205.                         lpExeFileName++;
  206.                 if (!_wcsicmp(lpExeFileName, L"chrome.exe"))
  207.                 {
  208. #ifdef DEBUG
  209.                         char logfile[MAX_PATH];
  210.                         sprintf_s(logfile, MAX_PATH, "X:\\ChromeFix_Logs\\Chromefix-%d.log", GetCurrentProcessId());
  211.                         if (fopen_s(&filelog, logfile, "a+"))
  212.                                 filelog = NULL;
  213.                         OutputLog("Attached to process %d, command line: %ls\n", GetCurrentProcessId(), GetCommandLineW());
  214. #endif
  215.                         g_hPlayEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
  216.                         CreateThread(NULL, 0, AudioThread, NULL, 0, NULL);
  217.                         StartHook();
  218.                 }
  219.                 break;
  220.         }
  221.     case DLL_THREAD_ATTACH:
  222.     case DLL_THREAD_DETACH:
  223.     case DLL_PROCESS_DETACH:
  224.         break;
  225.     }
  226.     return TRUE;
  227. }

复制代码

作者: yyz2191958    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 16:02
刚刚那个是测试版,这个是最终版,之前那个代码没有等待音效播放完成后就停止了,音效可能会不完整,我又改 ...

再次感谢
作者: YWFhYmJi    时间: 4 天前
martin313 发表于 2025-8-15 16:00
能不能帮忙写个hook.dll,就是在我的PE( Bone_PE_wifi_26100.4770_zh-CN.wim http://bbs.wuyou.net/fo ...

您这个PE能不能提供一个临时的其他下载途径,比如分卷上传到4275.com(最大200M)或者pan.huang1111.cn,这两个网盘我现在下载不到
作者: martin313    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 16:21
您这个PE能不能提供一个临时的其他下载途径,比如分卷上传到4275.com(最大200M)或者pan.huang1111.cn, ...


123网盘与百度网盘,都不行?
作者: nining376    时间: 4 天前
太强了,学习学习
作者: yyz2191958    时间: 4 天前
nining376 发表于 2025-8-15 17:05
太强了,学习学习

我也觉得是,论坛有高手
作者: cashfox    时间: 4 天前
YWFhYmJi 发表于 2025-8-15 10:54
找到问题了。问题出在PE中,winmm.dll库里面的函数PlaySound不管用,而浏览器在下载结束后播放音效会用到 ...

学习了
作者: handsome_xiang    时间: 3 天前
感谢分享!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3