我正在尝试使用C#代码替换exe(.NET,C#)文件的资源.
我找到了这篇文章并制作了这段代码(使用Mono.Cecil 0.6):
AssemblyDefinition asdDefinition = AssemblyFactory.GetAssembly("C:\\File.exe");
EmbeddedResource erTemp = new EmbeddedResource("encFile", ManifestResourceAttributes.Public);
erTemp.Data = myNewFileBytes;
asdDefinition.MainModule.Resources.RemoveAt(0);
asdDefinition.MainModule.Resources.Add(erTemp);
AssemblyFactory.SaveAssembly(asdDefinition, "C:\\newFile.exe");
Run Code Online (Sandbox Code Playgroud)
代码实际上是删除资源,然后添加一个具有相同名称的新资源.资源名称encFile存储为encFile.exe(两者都尝试过).
我测试了代码,删除工作(我可以通过文件的大小来判断)和添加,但新文件崩溃就像我用仅删除创建的文件(用于测试) - 它就像他一样看不到被替换的资源.
我该怎么做才能解决这个问题?可能在编辑的EXE文件中有一些变化?EXE文件以这种方式读取其资源:
byte[] buffer = ProjectName.Properties.Resources.encFile;
<!DOCTYPE html>
<html>
<head>
<style>
div:before {
display: table-cell;
content: "ABC";
color: red;
}
</style>
</head>
<body>
<div>123</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望这会呈现出类似的东西
,但我明白了
相反,只有在Internet Explorer(任何版本)上运行时.
这是一个错误还是我做错了什么?
我正在编写一个在画布中嵌入文本的程序,每个画布包含一个字符(汉字),该字符将被动画化,一次绘制一个笔画。
到目前为止,我遇到了几个问题:
我可能通过在<canvas>标签中插入文本来克服第二个问题(尽管我无法检查它是否有效,因为我无法选择画布来复制内容);但我不知道如何解决第一个问题。
所以问题是:如何让我的画布表现为具有alt属性的图像,以便用户可以像普通角色一样复制它们?
例如的jsfiddle用<img alt="...">
谢谢!
我又写了几个测试:
问题:在div元素之间添加空格(在 Firefox 上测试),选择有时会闪烁。
问题:选择完全隐藏画布。
我也尝试过使用标签,但问题更多,而且没有明显的优势。
我使用 Visual Studio Code 并将 JavaScript 语言服务配置为:
{
"compilerOptions": {
"checkJs": true
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到一种方法来投射某些东西,如下所示:
上面的示例应该可以在 Closure Compiler 中运行(未经验证),如此处所述。但我找不到 JavaScript 语言服务的等效语法。
我还尝试了以下更简单的语句,但它也不起作用:
let castedWindow = (/** @type {any} */(window)); // castedWindow: Window (I want `any`)
Run Code Online (Sandbox Code Playgroud)
我问如何进行强制转换,以及是否有人碰巧知道语法的记录位置(或者,如果没有记录,则知道它是如何工作的)。
我所问的可能吗?
谢谢你的时间!
html ×2
add ×1
c# ×1
canvas ×1
casting ×1
copy-paste ×1
css ×1
edit ×1
javascript ×1
jsdoc ×1
mono.cecil ×1
resources ×1
selection ×1