copyliu / bililive_dm Goto Github PK
View Code? Open in Web Editor NEWB站弹幕姬 - B站直播彈幕工具
License: Do What The F*ck You Want To Public License
B站弹幕姬 - B站直播彈幕工具
License: Do What The F*ck You Want To Public License
是否有可能让插件决定是否隐藏一条弹幕?
事件没有Cancell,而且弹幕的文本设为空,还是会显示原内容=_=
“测试效果”按钮正常,收到弹幕后,弹幕显示在程序主界面中,之后程序崩溃
版本:1.1.1.28
系统日志如下:
应用程序: Bililive_dm.exe
Framework 版本: v4.0.30319
说明: 由于未经处理的异常,进程终止。
异常信息: System.Reflection.TargetParameterCountException
在 System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
在 System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
在 System.Reflection.MethodBase.Invoke(System.Object, System.Object[])
在 ExtendLogging.MainProgram.ProcDanmaku(BilibiliDM_PluginFramework.DanmakuModel)
在 ExtendLogging.MainProgram.<.ctor>b__52_0()
在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
在 System.Threading.ThreadHelper.ThreadStart()
错误报告如下
請有空發給 [email protected] 謝謝
2017/8/31 19:20:44
System.Windows.Markup.XamlParseException: 对类型“Bililive_dm.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。 ---> System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
在 MS.Win32.NativeMethods.IOleCommandTarget.Exec(GUID pguidCmdGroup, Int32 nCmdID, Int32 nCmdexecopt, Object[] pvaIn, Int32 pvaOut)
在 System.Windows.Controls.WebBrowser.DoNavigate(Uri source, Object& targetFrameName, Object& postData, Object& headers, Boolean ignoreEscaping)
在 Bililive_dm.MainWindow..ctor()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
在 System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
在 System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
在 System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
在 System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
在 System.Windows.Application.DoStartup()
在 System.Windows.Application.<.ctor>b__1_0(Object unused)
在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)-------插件列表--------
弹幕姬版本是目前自动更新的最新版本
Windows 版本为 windows 10 insider build 16278
在我的Windows 7 SP1服务器以及我的Windows 10 1909电脑上均出现以下三个错误中的一种,旧版本没有这个问题,如果勾选了自动重连就无限刷这些错误了,不勾选也是无法连接,显示连接成功后立即报错断开。只安装了“更多日志”这个插件,停用插件问题依旧
服务器没有安装杀毒软件,个人电脑安装了火绒
15:21:59 : 連線被斷開: 開發者資訊System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()
15:22:51 : 連線被斷開: 開發者資訊System.ObjectDisposedException: 无法访问已释放的对象。
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()
15:23:38 : 連線被斷開: 開發者資訊System.IO.IOException: 无法从传输连接中读取数据: 你的主机中的软件中止了一个已建立的连接。。 ---> System.Net.Sockets.SocketException: 你的主机中的软件中止了一个已建立的连接。
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()
建议以下配置可以保存:
每个包是4字节长度+12字节标识符+剩下的数据
“连接成功”和“人气值”的标识符没有变化,“JSON数据”目前变为为压缩格式:
压缩数据的标识符是0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00
,剩下的数据直接用lzma
解压,可以得到旧的包结构(即:4字节长度+标识符0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00
+JSON数据)
平时比较喜欢用您的软件,祝早日恢复!
2:22:21 : 房管助手重制版 版本检查失败 : The operation has timed out
2:22:21 : 更多日志 版本检查失败 : The operation has timed out
2:22:21 : 礼物统计 版本检查失败 : The remote name could not be resolved: 'www.danmuji.cn'
2:22:21 : 管理直播间小工具 版本检查失败 : The operation has timed out
2:23:42 : 登录中心 版本检查失败:The operation has timed out
不知道为什么。。。重装弹幕姬本体和插件也不管用。。。
可以做自写内容刷井喷吗?
Building Solution: Bililive_dm (Debug)
Building: BilibiliDM_PluginFramework (Debug)
Build started 2015/11/16 3:55:18.
Project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj" (Build target(s)):
Target PrepareForBuild:
Configuration: Debug Platform: AnyCPU
Target ResolveAssemblyReferences:
/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationCore' not resolved
For searchpath {CandidateAssemblyFiles}
Warning: {CandidateAssemblyFiles} not supported currently
For searchpath {HintPathFromItem}
HintPath attribute not found
For searchpath {TargetFrameworkDirectory}
Considered target framework dir /usr/lib/mono/4.0, assembly named 'PresentationCore' not found.
For searchpath {PkgConfig}
Considered PresentationCore, but could not find in any pkg-config files.
For searchpath {GAC}
Considered PresentationCore, but could not find in the GAC.
For searchpath {RawFileName}
For searchpath bin/Debug/
/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationFramework' not resolved
For searchpath {CandidateAssemblyFiles}
Warning: {CandidateAssemblyFiles} not supported currently
For searchpath {HintPathFromItem}
HintPath attribute not found
For searchpath {TargetFrameworkDirectory}
Considered target framework dir /usr/lib/mono/4.0, assembly named 'PresentationFramework' not found.
For searchpath {PkgConfig}
Considered PresentationFramework, but could not find in any pkg-config files.
For searchpath {GAC}
Considered PresentationFramework, but could not find in the GAC.
For searchpath {RawFileName}
For searchpath bin/Debug/
Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.
Target GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Target CoreCompile:
Tool /usr/lib/mono/4.5/mcs.exe execution started with arguments: /noconfig /debug:full /debug+ /optimize- /out:obj/Debug/BilibiliDM_PluginFramework.dll DMPlugin.cs DanmakuModel.cs Events.cs GiftRank.cs Properties/AssemblyInfo.cs /target:library /define:"DEBUG;TRACE" /nostdlib /reference:/usr/lib/mono/4.0/System.dll /reference:/usr/lib/mono/4.0/System.Xaml.dll /reference:/usr/lib/mono/4.0/System.Xml.Linq.dll /reference:/usr/lib/mono/4.0/System.Data.DataSetExtensions.dll /reference:/usr/lib/mono/4.0/Microsoft.CSharp.dll /reference:/usr/lib/mono/4.0/System.Data.dll /reference:/usr/lib/mono/4.0/System.Xml.dll /reference:/usr/lib/mono/4.0/WindowsBase.dll /reference:../packages/Newtonsoft.Json.7.0.1/lib/net40/Newtonsoft.Json.dll /reference:../packages/JetBrains.Annotations.10.0.0/lib/net20/JetBrains.Annotations.dll /reference:/usr/lib/mono/4.0/System.Core.dll /reference:/usr/lib/mono/4.0/mscorlib.dll /warn:4
DMPlugin.cs(33,17): error CS0103: The name MessageBox' does not exist in the current context DMPlugin.cs(64,17): error CS0103: The name
MessageBox' does not exist in the current context
DMPlugin.cs(95,17): error CS0103: The name MessageBox' does not exist in the current context DMPlugin.cs(127,17): error CS0103: The name
MessageBox' does not exist in the current context
DMPlugin.cs(232,30): error CS0103: The name Application' does not exist in the current context DMPlugin.cs(248,30): error CS0103: The name
Application' does not exist in the current context
Task "Csc" execution -- FAILED
Done building target "CoreCompile" in project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj".-- FAILED
Done building project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj".-- FAILED
Build FAILED.
Warnings:
/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj (Build) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (ResolveAssemblyReferences target) ->
/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationCore' not resolved
/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationFramework' not resolved
Errors:
---------------------- 完成 ----------------------
构建:6 个错误, 2 个警告
因为有人会发一些日语弹幕,希望添加一下,就算是谷歌那种读法也没有关系
详情转 #22
例如弹幕回复 排队
在后台或者文本文件中能对该条弹幕发送人进行记录
且同一个用户不会重复
希望能做成文本文件以供obs显示
希望作者大大可以把日志里的弹幕进行左对齐,因为每个人ID长短的差异,导致弹幕不是从一个起点开始,大大降低了快速阅读的效率。因为目前是通过点击日志进行禁言操作,并且不是随时盯着弹幕看,经常需要快速阅读之前的弹幕看有没有搞事情的。要是有可能做到高亮显示某个ID的所有弹幕就更棒了,比如点击一个ID,他最近发的所有弹幕就会被高亮显示,就可以很轻易的发现谁搞事了。
比如陆夫人是 http://live.bilibili.com/115
但其实他的 roomid 为 1016
需要先 GET http://live.bilibili.com/115,
在页面上有
<script>
var ROOMID = 1016;
var DANMU_RND = 1457617785;
var NEED_VIDEO = 1;
var ROOMURL = 115;
</script>
我看了下,大概 url 上数字较小的几个,都不是 roomid,需要去页面上爬一下。
提词器真的好用 但就是不透明 希望加个透明的选项 多谢
弹幕系统升级, 以下是bilibili直播的官方动态
https://t.bilibili.com/258961230595770167?tab=2
win7系统
问题签名:
问题事件名称: APPCRASH
应用程序名: Bililive_dm.exe
应用程序版本: 1.1.0.0
应用程序时间戳: 5e9090c9
故障模块名称: KERNELBASE.dll
故障模块版本: 6.1.7601.24384
故障模块时间戳: 5c6e248c
异常代码: c06d007e
异常偏移: 000000000000be0d
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 7283
其他信息 2: 72836eb6216b49be15302fdb224c1b5d
其他信息 3: 10bd
其他信息 4: 10bd9f9b144e97a6172df8089ecda269
不管我退出的时候选的什么主题, 都不会保存
B站弹幕姬作者你好!
随着B站直播间的日益壮大,Mac版的弹幕姬也需要更新发布一下啦o(^_^)o。
我作为一个重度的Mac用户,没有弹幕姬我感到很不舒服,每次都要打开直播间才能够看弹幕。相当蛋疼。。。
若您有能力的话~顺便可以推出Linux下弹幕姬吗。
真的是万分感谢!
Tony
1.点歌姬v3里好像找不到歌词行数的设置
2.点歌姬歌词模板没有提供可用对象的列表,用户只知道demo里的类似{{播放列表}}这样的对象
如题,目前版本的弹幕最多显示7秒,是否可能将其设置调整为——没有新弹幕顶替时,旧弹幕在弹幕区域持续长时间显示?
一些DX12游戏貌似会非常优先的占用系统GPU资源,游戏在窗口化/无边框情况下,只要游戏窗口在前台,弹幕侧栏就会进入5秒一帧左右的超卡状态,经常有弹幕显示在主窗口里,但是侧边栏根本弹不出来.
*将游戏锁帧,降低GPU占用率,可以解决
*OBS打开会使情况变得更糟
*Win10游戏模式关闭/开启,均不能解决这个问题
*GPU Hardware Accelerated Scheduling关闭/开启,均不能解决这个问题
不知道软件上有没有任何方法解决这个问题
希望没有太打扰。
Error: 试图下载“https://soft.ceve-market.org/bilibili_dm/Bililive_dm.application”时发生错误。
Feature Request : support for Multi-language 多语言支持
是否考虑在未来添加对简体中文和English的支持
由于全网弹幕升级,b站弹幕已经在不惜牺牲旧客户端的情况下改了接口。
我本来想自己试试修一下弹幕姬直接提交PR了,但是我发现我怎么都没办法自己build成功,有点过于头疼就来发issue了。
总之代码应该是改这里:
相关修复讨论有这个:3Shain/Comen#42
不知道为什么会经常抛出这个异常, 看起来是缓冲区出现了什么问题, 事实上抓包分析整个协议没有问题的
大概看了看代码来学习了一下,但是我自己抓取的一部分测试数据中(我用的ws,看代码用的是tcp所以不太确定是否有相同问题),有的时候发现header里面的长度跟整体长度不匹配,然后仔细一看,数据特别多的时候,服务器直接把两段消息直接连起来丢过来了(HEADER1 BODY1 HEADER2 BODY2)。我不太确定是否会处理后面那一段数据。
而且新弹幕协议Proto=2的时候,body里面套娃,还可能出现粘包???(我测试的时候中有遇到)
HEADER + DEFLATEBODY(HEADER1 + BODY1 + HEADER2 + BODY2)
下面是两段我自用项目里对这个部分处理的代码。
From https://github.com/toshiya14/LiveChatLib
/// <summary>
/// Split binary frame might contains multiple packages into package binary data enumerable.
/// </summary>
/// <param name="buffer">package binary data.</param>
/// <returns></returns>
private static IEnumerable<byte[]> SplitBuffer(byte[] buffer)
{
using (var ms = new MemoryStream(buffer))
{
ms.Seek(0, SeekOrigin.Begin);
using (var reader = new BinaryReader(ms))
{
while (ms.Position < ms.Length)
{
var length = reader.ReadBytes(4).ByteToInt32(true);
if (length > buffer.Length)
{
throw new Exception("Binary frame broken, package size:" + buffer.Length + ", size in header:" + length);
}
ms.Seek(-4, SeekOrigin.Current);
var pack = reader.ReadBytes(length);
yield return pack;
}
}
}
}
using(var ms = new MemoryStream(extracted))
{
ms.Seek(0, SeekOrigin.Begin);
using (var reader = new BinaryReader(ms))
{
do
{
var p = new Package()
{
HeadLength = headlen,
ProtoVer = protover,
Sequence = sequence
};
var msgLength = reader.ReadBytes(4).ByteToInt32(true);
var msgHeaderLength = reader.ReadBytes(2).ByteToInt16(true);
var msgVer = reader.ReadBytes(2).ByteToInt16(true);
var msgAc = reader.ReadBytes(4).ByteToInt32(true);
var msgParam = reader.ReadBytes(4).ByteToInt32(true);
switch (msgAc)
{
case 3:
p.MessageType = MsgType.ServerHeart;
break;
case 5:
p.MessageType = MsgType.Command;
break;
case 8:
p.MessageType = MsgType.Auth;
break;
}
p.Body = reader.ReadBytes((int)(msgLength - 16));
list.Add(p);
} while (ms.Length - ms.Position > 16);
}
return list;
}
今天在写代码测试,发现cmd和内容都变了,新数据格式如下:
{
u'roomid': u'1029',
u'cmd': u'SEND_TOP',
u'data': {
u'top_list': [
{
u'uname': u'\u53f6\u5b50\u4e0d\u662f\u6930\u5b50',
u'coin': 693300,
u'uid': 1554307
},
{
u'uname': u'The\u4e36MIB',
u'coin': 590300,
u'uid': 8970213
},
{
u'uname': u'\u556a\u556a\u556a\u72c2\u9b54Hentai',
u'coin': 450400,
u'uid': 2627136
},
{
u'uname': u'\u6735\u62c9\u56fe\u6069',
u'coin': 195900,
u'uid': 3848972
},
{
u'uname': u'\u5f20\u6773\u4e4b',
u'coin': 176400,
u'uid': 7924331
},
{
u'uname': u'\u4eba\u672c\u65e0\u8272',
u'coin': 154933,
u'uid': 14250935
},
{
u'uname': u'Anisakis',
u'coin': 139600,
u'uid': 678615
},
{
u'uname': u'\u82cf\u9825\u747f',
u'coin': 101500,
u'uid': 2399028
},
{
u'uname': u'\u61d2\u6563\u7684\u53c9\u5b50',
u'coin': 100000,
u'uid': 1354913
},
{
u'uname': u'StormNight',
u'coin': 72030,
u'uid': 1998049
}
]
}
}
如果实在不行,建议还是用原本的吧。
要不试试材料设计语言
弹幕姬为什么每次打开都要3分钟左右才会显示出页面啊
若插件有任何问题,亦或对插件有建议,请在任何一个弹幕姬群里@我
没看到群号
由于我的电脑是MacOS,因此无缘直接使用弹幕姬(除非装双系统),于是我用Python写了个轻型程序,用于监控关注粉丝变化,并通过POST的方法发感谢弹幕和定时的欢迎弹幕。所以想再增加一些功能,比如感谢礼物。
在分析礼物信息来源时,发现这个数据应该是通过JS控制下面的div容器实现的
<div class="penury-gift-msg w-100 p-relative over-hidden" id="penury-gift-msg">
<div class="penury-gift-item v-middle a-move-out-bottom">
<span class="username v-middle">某位粉丝的姓名</span>
<span class="action v-middle">喂食辣条</span>
<div class="dp-i-block v-middle">
<div class="gift-frame gift-1-20" style="width: 20px; height: 20px;"></div>
</div>
<span class="count">X 1</span>
</div>
</div>
由于我使用Python习惯直接通过URL来GET和POST来实现某个功能,如果直接将整个网页的代码GET下来再解析并正则匹配的话效率太低,我看了下弹幕姬官网上是安装插件实现的,但dll文件没法解读,所以想请教一下您在这方面是如何实现的 ?
可能和我曾经将User AppData的文件夹Location属性从C盘更改到E盘有关
Log 如下:
PLATFORM VERSION INFO
Windows : 10.0.16299.0 (Win32NT)
Common Language Runtime : 4.0.30319.42000
System.Deployment.dll : 4.7.2556.0 built by: NET471REL1
clr.dll : 4.7.2633.0 built by: NET471REL1LAST_C
dfdll.dll : 4.7.2556.0 built by: NET471REL1
dfshim.dll : 10.0.16299.15 (WinBuild.160101.0800)
SOURCES
Deployment url : http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application resulted in exception. Following failure messages were detected:
+ Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [4/8/2018 4:36:24 PM] : Activation of http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [4/8/2018 4:36:24 PM] System.UnauthorizedAccessException
- Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32 Flags, IntPtr hToken, Guid& riid)
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore()
at System.Deployment.Application.ComponentStore..ctor(ComponentStoreType storeType, SubscriptionStore subStore)
at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType)
at System.Deployment.Application.SubscriptionStore.get_CurrentUser()
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
侧面板的显示的效果不大美观,希望能够优化一下:
试图下载“https://soft.ceve-market.org/bilibili_dm/Bililive_dm.application”时发生错误。
有关详细信息,请参阅位于“C:\Users\傻猪\AppData\Local\Temp\VSD6667.tmp\install.log”的安装日志文件。
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [InstallMode] = HomeSite {string}
Property: [NTProductType] = 1 {int}
Property: [ProcessorArchitecture] = AMD64 {string}
Property: [VersionNT] = 10.0.0 {version}
Running checks for package 'Microsoft .NET Framework 4.6.2 (x86 和 x64)', phase BuildList
Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full'
Read integer value 461814
Setting value '461814 {int}' for property 'DotNet462Full_Release'
Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
Read integer value 1
Setting value '1 {int}' for property 'DotNet462Full_OSIntegrated'
Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\2052'
Read integer value 461814
Setting value '461814 {int}' for property 'DotNet462FullLangPack_Release'
Reading value 'LCID' of registry key 'HKLM\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\zh-CN'
Read integer value 2052
Setting value '2052 {int}' for property 'DotNet462FullLangPack_OS_LCID'
Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
Read integer value 1
Setting value '1 {int}' for property 'DotNet462FullLangPack_OSIntegrated'
The following properties have been set for package 'Microsoft .NET Framework 4.6.2 (x86 和 x64)':
Property: [DotNet462FullLangPack_OSIntegrated] = 1 {int}
Property: [DotNet462FullLangPack_OS_LCID] = 2052 {int}
Property: [DotNet462FullLangPack_Release] = 461814 {int}
Property: [DotNet462Full_OSIntegrated] = 1 {int}
Property: [DotNet462Full_Release] = 461814 {int}
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-ENU.exe'
Result of running operator 'ValueEqualTo' on property 'InstallMode' and value 'HomeSite': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-ENU.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151802-Web.exe'
Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462Full_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151802-Web.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462FullLangPack_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462FullLangPack_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe' is 'Bypass'
'Microsoft .NET Framework 4.6.2 (x86 和 x64)' RunCheck result: No Install Needed
Launching Application.
URLDownloadToCacheFile failed with HRESULT '-2146697211'
Error: 试图下载“https://soft.ceve-market.org/bilibili_dm/Bililive_dm.application”时发生错误。
详情转 #22
我粗略地阅读了这个程序的源码,并对它有了一定了解。从中我看出了一些显著的问题,会阻碍今后的软件维护。
这个软件是 Code Behind 模式的 WPF 应用,并且代码长度已经有一定规模了。这种情况下应当考虑选择使用 Mvvm 模式重构代码。Code Behind 模式将逻辑、数据结构 与 UI 代码混杂在一起,按理说这样的写法应当仅存在于原型制作阶段(急于看到第一个成品),而不应该在软件有一定规模的情况下使用。
Windows 10 要出 ARM64 版本了,而这个项目包含一些本机 C++ 动态链接库。这种混用非微软提供的本机动态链接库和托管代码的方式会阻碍应用程序今后的移植工作,或者在 ARM64 设备上大幅降低性能。有关如何使用托管代码重写弹幕窗口,可以参考 http://sharpdx.org/wiki/class-library-api/directcomposition/
我注意到一些选项是不应该留给用户去选择的。比如说 Direct Composition 弹幕渲染模式。这个模式应该在 Windows 8 或更高的系统自动打开,在 Windows 7 自动关闭。如果这个设置被误用,会对游戏主播带来困扰。目前这种优化的渲染技术被证实是稳定的。因为 Windows 商店上大多数应用在用这种渲染机制,它们没有因为绘图 API 有问题而出现诡异的行为。反倒是使用旧式绘图方式 (LayeredWindow) 的软件容易出问题。
如果你的应用目标 .NET Framework 版本低于 4.7.2 Preview, 那么你的 WPF 应用是没有针对每个显示器的 DPI 感知功能的。这样如果用户更改缩放比例或者使用远程桌面,你的应用会变得模糊。在这方面我研究过怎样在低版本实现逐监视器 DPI 感知,可以看看我的仓库 https://github.com/Nukepayload2/WPF_Borderless_Window/ 里的 Demo,并在 Nuget 上安装我帮你们编译好的类库。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.