有没有办法以编程方式将字体永久添加到Windows 7/8 PC?我已经阅读了几篇关于AddFontResource DLL-Import的帖子,但似乎没有用.
除此之外,MSDN文档说明在重新启动计算机后将删除字体,除非将字体添加到注册表中.
如何永久安装字体?如何将字体添加到注册表?是否总是相同的名称/条目?
我必须在运行时动态添加字体,因为我会在用户选择字体后立即获取字体.
备注:我知道如何添加注册表项.我的问题更多的是关于Windows XP,Vista,7和8与不同字体类型之间的兼容性.也许有办法启动另一个为我安装字体的exe.
我一直收到ESLint错误'define' is not defined. (no-undef).我相信,我可以define全局定义,但不应该本地支持吗?
使用define的代码示例:
define([], function () { // Error here!
'use strict';
....
Run Code Online (Sandbox Code Playgroud)
这是我的eslintrc.json:
{
"env": {
"shared-node-browser": true,
"commonjs": true
},
"plugins": ["requirejs"],
"extends": ["eslint:recommended"],
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"windows"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"requirejs/no-invalid-define": 2,
"requirejs/no-multiple-define": 2,
"requirejs/no-named-define": 2,
"requirejs/no-commonjs-wrapper": 2,
"requirejs/no-object-define": 1
}
}
Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,在使用chai-http运行后我的mocha测试没有完成.测试后Mocha会挂起并最终进入超时状态(至少在我的CI上).
我正在使用Gradle进行项目.我的build.gradle已将JUnit作为依赖项,但每次我再次导入项目时,它都无法识别JUnit库并要求我将其添加到classpath中.此问题不仅适用于JUnit,还适用于其他依赖项.我是否将JUnit添加到了错误的位置?
PS:项目构建得很好,只是IDE(IntelliJ)将所有内容都标记为红色.
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Run Code Online (Sandbox Code Playgroud)
如何在 C# 9.0 中打开对记录关键字的支持?
当我尝试使用 newrecord关键字(或init)时,我在 Visual Studio 中收到意外的令牌错误。
我错过了什么?还是 Visual Studio 16.8 不支持 C# 9.0?
public record Person
{
public string? FirstName { get; init; }
public string? LastName { get; init; }
}
Run Code Online (Sandbox Code Playgroud)
更新:只需阅读标记的答案。下面的信息最终对这个问题并不重要,这里仅用于文档目的。
我正在使用 Visual Studio 16.8,9.0在我的项目文件中将语言设置为。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<LangVersion>9.0</LangVersion>
<TargetFramework>net5.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.9">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
</Project> …Run Code Online (Sandbox Code Playgroud) 容器如何std::set<T>检查两个对象是否唯一?我尝试覆盖相等运算符(==),但它不起作用。
我想这样做的原因是,我有一个类 Person,并且我指定我的 Person 是同一个人,如果他们具有相同的名字(甚至可能是生日、地址等)。
在ccpreference.com中,他们写了以下内容(我有点不清楚):
在标准库使用比较概念的地方,唯一性 是通过使用等价关系来确定的。不精确地说,如果两个对象 a 和 b 的比较结果都不小于另一个,则认为两个对象 a 和 b 是等价的(不是唯一的): !comp(a, b) && !comp(b, a)。
我认为这个问题也扩展到其他 STL 容器甚至算法(甚至可能扩展到整个 STL)。因此,如果将来我想使用该函数std::find,我将查找人名而不是对象本身。它是否正确?
我想添加一些示例代码。
// My operator overloading comparing two strings.
bool operator==(Node & rhs) const {
return this->name.compare(rhs.name);
}
Run Code Online (Sandbox Code Playgroud)
然后,在 UnitTest 中,我将同名的对象两次添加到集合中。它被添加两次(但根据operator==.
void test_adding_two_identical_nodes() {
// The pool is a set<Node> inside
model::Node_Pool pool{};
pool.store_node(model::Node{"Peter"});
pool.store_node(model::Node{"Peter"});
// Should be only 1 because the same node should …Run Code Online (Sandbox Code Playgroud) 当我尝试使用声纳扫描仪分析我的项目时,扫描失败并显示以下错误消息:
Caused by: Branch does not exist on server: develop
Run Code Online (Sandbox Code Playgroud)
显然,这只发生在它分析来自 GitHub 的拉取请求时。当我将以下配置添加到时,我可以重现该错误sonar-project.properties:
sonar.branch.name = source-branch
sonar.branch.target = target-branch
Run Code Online (Sandbox Code Playgroud)
导致此问题的原因可能是什么?
我想处理来自后台服务(或显示为任务栏图标的应用程序)的推送通知,并在Action Center中将其显示为本地通知(优先级:Windows,但如果它是跨平台的,它也可以工作)。托盘图标是可选的,非常实用。重要的是应用程序应在后台运行并显示通知。
您是否可以建议一种在后台运行应用程序时显示本机(Windows)通知的方法?也许是当前实现这一目标的概述(已阅读:未弃用)?
在Windows中似乎有上千种方法来处理通知,而且似乎没有一种可以完美地工作。UWP不支持任务栏图标(您必须使用WinForms应用程序或WPF进行修改),Electron似乎仅在将其作为开始菜单的快捷方式时才起作用,WinForms很难在其中显示通知行动中心。
你能建议一种方法吗?最好不必将应用程序提交给商店。
到目前为止,似乎我必须在Azure上部署Notification Service,但是我不确定我的应用程序在后台时是否可以处理这些通知。
JetBrains工具箱提供了我想要完成的类似方法:它位于任务栏中,可以发送通知(例如,当我搜索更新时)。
我想我在某个地方看到过这个问题的答案,但我找不到它并且不记得答案。
假设启用了 Nullable-Reference-Types。
有一个方法返回一个string. 该方法的调用者将结果字符串存储到变量中。即使方法的返回值不可为空,该变量也将为 Nullable。
static string MyMethod()
{
return "Hello World!";
}
public static void Main()
{
// result is of type string? here. Hence nullable.
var result = MyMethod();
}
Run Code Online (Sandbox Code Playgroud)
原始类型似乎不会发生同样的情况,但引用类型确实会发生这种情况,例如object. 对我来说,这有点违背了 NRT 的目的。我确信这是有原因的,而且是“设计使然”。
我正在研究客户端 - 服务器解决方案,我有一个与我连接的客户端的ListView.用户应该能够通过编辑ListView中的名称来远程重命名客户端.我已经阅读了很多关于编辑ListView单元格的内容,但是我没有找到任何可以改变我的类的成员属性的好例子.大多数示例都带有字符串列表,在我看来,如果ListView中的项不仅仅是字符串,那么这不是现代软件开发.
我想要做的是更改name我的客户端内的属性.
class Client {
private String name;
public String getName(){
return name;
}
public String setName(String val){
name = val;
}
}
Run Code Online (Sandbox Code Playgroud)
我不在乎,如果我必须将该成员实现name为JavaFX属性(实际上我已经这样做了,但为了可读性和简单性而将其留下).
如果您有兴趣,我尝试使用TextFieldListCell单元工厂:
this.listViewClients.setCellFactory(TextFieldListCell
.forListView(new NetworkClientStringConverter(this.clientController)));
Run Code Online (Sandbox Code Playgroud)
但是我发现了一些棘手的事情:
fromString).
StringConverter.(这不太好,我更愿意只访问我正在更改的客户端.)我一直在尝试通过a同步数据库DataGridView.到目前为止,我已经创建了一个数据模型类.此类包含与数据库匹配的多个属性.它们使用命名空间中的[Table]和[Column]属性进行映射System.Data.Linq.Mapping.
好.所以我DataGridView将DataSource-Property用于DataContext连接数据库(MSSQL).这个逻辑是在单例类中实现的,所以我可以保证有一个这样的实例DataContext.
this.m_context = new DataContext(conn);
this.m_VisitorTable = m_context.GetTable<Visitor>();
Run Code Online (Sandbox Code Playgroud)
好吧,如果我将表绑定到我,DataGridView.DataSource我可以看到数据库中的所有条目都已加载并正确显示.然后,如果我改变了一些东西,我发现自己面临同步问题.更改的单元格在数据库端没有更改.
为了保存更改,我实现了这个方法:
public void SaveChanges()
{
try
{
// I have no idea what I'm doing here.
VisitorLogic.Instance.m_VisitorTable.Context.SubmitChanges(System.Data.Linq.ConflictMode.Con
// I'm also trying to see if changes were made so I can save them before closing.
this.m_bChangesMade = false;
}
catch (Exception ex)
{
MessageBox.Show("Failed to save.", "Error");
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让数据库的整个同步自动发生?就像改变自动提交一样.我想我将不得不改变模型类的东西.现在,它没有实现任何接口也没有继承任何东西.
这是类声明: …
我有一个对象列表,根据用户交互,一些对象需要异步工作.像这样的东西:
for(TheObject o : this.listOfObjects) {
o.doWork();
}
Run Code Online (Sandbox Code Playgroud)
该类TheObject实现了一个ExecutorService(SingleThread!),用于完成工作.TheObject类型的每个对象都实例化一个ExecutorService.我不想做烤宽面条代码.我没有足够的对象同时使用需要线程池的额外提取层.
我想引用有关CachedThreadPools的Java文档:
未使用60秒的线程将终止并从缓存中删除.因此,长时间闲置的池 不会消耗任何资源.
第一个问题: SingleThreadExecutor也是如此吗?线程是否被终止?JavaDoc没有说任何关于SingleThreadExecutor的内容.在这个应用程序中它甚至都不重要,因为我有一些可以依靠的对象.好奇而已.
此外doWork(),TheObject需要调用ExecutorService#.submit()方法来执行异步工作的方法.是否有可能(我敢打赌)doWork()隐式调用该方法?这是设计异步方法的可行方法吗?
void doWork() {
if(!isRunningAsync) {
myExecutor.submit(doWork());
} else {
// Do Work...
}
}
Run Code Online (Sandbox Code Playgroud) 我想获取字体的文件名.这不是那么难......我知道,已经存在一个非常类似的问题,但问题的答案不可能就是这样.
我想要做的是通过TCP/IP将Font文件发送给其他客户端,如果他请求的话.我在FontDialog上选择了所需的字体,我可以从框架中获取FontName.我找不到字体文件,我可以说大部分时间都可以使用.
.NET在哪里知道系统上安装了哪些字体?它不能是框架依赖于一直无法运行的解决方案,如CodeProject上的解决方案和Stackoverflow中的建议.必须有一种安全的方法来检索字体文件.FontDialog可以将它们全部列在一个框中,并且安装的字体必须具有其文件的路径.
有兴趣帮助我吗?
