小编MSO*_*ACC的帖子

将文本写入系统托盘而不是图标

我试图在系统托盘中显示2-3个可更新的字符,而不是显示.ico文件 - 类似于CoreTemp在系统中显示温度时的操作尝试:

在此输入图像描述

我在WinForms应用程序中使用NotifyIcon以及以下代码:

Font fontToUse = new Font("Microsoft Sans Serif", 8, FontStyle.Regular, GraphicsUnit.Pixel);
Brush brushToUse = new SolidBrush(Color.White);
Bitmap bitmapText = new Bitmap(16, 16);
Graphics g = Drawing.Graphics.FromImage(bitmapText);

IntPtr hIcon;
public void CreateTextIcon(string str)
{
    g.Clear(Color.Transparent);
    g.DrawString(str, fontToUse, brushToUse, -2, 5);
    hIcon = (bitmapText.GetHicon);
    NotifyIcon1.Icon = Drawing.Icon.FromHandle(hIcon);
    DestroyIcon(hIcon.ToInt32);
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这产生的结果不如CoreTemp得到的结果:

在此输入图像描述

您认为解决方案是增加字体大小,但超过8的任何内容都不适合图像.将位图从16x16增加到32x32也没有任何作用 - 它会调整大小.

然后就是我想要显示"8.55"而不是"55"的问题 - 图标周围有足够的空间但看起来无法使用.

在此输入图像描述

有一个更好的方法吗?为什么Windows可以执行以下操作,但我不能?

在此输入图像描述

更新:

感谢@NineBerry提供了一个很好的解决方案.要添加,我发现Tahoma是最好使用的字体.

.net c# system-tray notifyicon

14
推荐指数
1
解决办法
2997
查看次数

更改 React 组件的 CSS 会影响所有其他页面

我有一个包含以下文件的 React 组件:

  • src/components/HomePage/index.js
  • src/components/HomePage/style.scss

该组件非常简单:

import React from 'react';
import './style.scss';

const HomePage = () => {
    return (
        <div className="homepage">
            <h1>Landing page</h1>
        </div>
    );
};

export default HomePage;
Run Code Online (Sandbox Code Playgroud)

在其中,style.scss我将样式应用于所有<h1>标签:

h1 {
    color: #f3f3f3;
    font-family: "Cambria";
    font-weight: normal;
    font-size: 2rem;
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作。但是,我现在看到其中的 h1 样式styles.scss已应用于我网站上的每个 h1,甚至在不使用此组件的页面上也是如此。

我正在使用 Gatsby,但它本质上是一个 React 应用程序。我的理解是,React 的代码分割功能会解决这个问题,代码style.scss只会包含在使用我的组件的任何页面的捆绑包中。

这就是我要问的原因。我有两个简单的修复方法:

  • 把所有东西都包在包装纸style.scss.homepage
  • 使用 CSS 模块并将文件重命名为style.module.scss. 当我看到人们这样做时,他们总是“从 './style.module.scss'导入样式” - 有没有一种方法可以拥有 CSS 模块而不将其分配给这样的对象?

更新:在花了很多时间使用 React …

javascript css reactjs css-modules

14
推荐指数
1
解决办法
2万
查看次数

反应表排序不适用于具有自定义单元格的列

我正在使用该react-table插件,但很难对定义了自定义链接的一列进行排序。

此列的内容基于该行中数据的一些属性,因此我为其创建了一个自定义单元格。显示正常,但排序执行得很奇怪。

我很确定问题出在columns定义中,但为了完整性,我将在此处发布所有代码:

export default function CloudfrontList() {
    const [loading, setLoading] = useState(true);
    const [columns, setColumns] = useState([]);
    const [data, setData] = useState([]);

    const getDataForTable = async () => {
        const _columns = [{
            // This is the cell that doesn't sort properly
            Header: "Name",
            Cell: cell => {
                const row = cell.row.original;
                const value = row.comment ? row.comment : row.origins[0].domain_name;
                return (
                    <Link href="/view/cloudfront/[id]" as={`/view/cloudfront/${row.id}`}>
                        <a>{value}</a>
                    </Link>
                );
            },
            accessor: row => {
                return row.comment …
Run Code Online (Sandbox Code Playgroud)

javascript sorting reactjs react-table

8
推荐指数
1
解决办法
8651
查看次数

升级项目以使用更高版本的 NodeJS?

我当前有一个配置为运行 NodeJS 的项目v10.x.x,但我想将其升级为在版本上运行,12.16.1以便与我正在处理的其他项目保持一致,这样我就不必在一天中多次使用nvm 。

我的 package.json 包含:

{
  "engines": {
    "node": "10.x.x"
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为并构建,则其中的包(我没有我的中直接引用的包)12.x.x抛出错误。node_modulesgrpcpackage.json

问题:我想将我的包升级package.json到能够运行 Node 所需的最低版本v12.16.1,这有望减少升级导致的重大更改的数量。我想要尽可能少的改变。

有没有好的方法来解决这个问题?除了将一个包更新到最新版本之外,尝试构建,然后重复此过程直到它起作用。

node.js npm nvm package.json

7
推荐指数
0
解决办法
1873
查看次数

UserPrincipal.FindByIdentity()始终返回null

我正在使用LdapAuthentication将用户登录到Active Directory.我想找到用户所属的所有组.我使用以下代码:

string adPath = "LDAP://OU=HR Controlled Users,OU=All Users,DC=myDomain,DC=local";
LdapAuthentication adAuth = new LdapAuthentication(adPath);
try
{
    if (true == adAuth.IsAuthenticated("myDomain", txtLoginEmail.Text, txtLoginPassword.Text))
    {
        string email = txtLoginEmail.Text;

        using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
        {
            UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.Name, email);
            foreach (var group in user.GetGroups())
            {
                Console.WriteLine(group.Name);
            }
        }
    }
}
catch(Exception e) { /* Handle Error */ }
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我调用UserPrincipal.FindByIdentity()时,我总是得到一个空值,即使用户身份验证按预期工作.

为什么会这样?代码或我的方法有问题吗?这是在ASP.NET 4.0 WebForms应用程序中运行.

更新:

显然我一直在使用错误的IdentityType(cn).我检查了调试,帐户名称是"UserA".

在此输入图像描述

所以我尝试手动使用以下代码:

UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.Name, "UserA");
Run Code Online (Sandbox Code Playgroud)

但我仍然无效.

更新2(已解决):

这个问题有两个问题.在声明时我需要指定域控制器的名称PrincipalContext.

using (PrincipalContext context …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ldap active-directory principalcontext

5
推荐指数
1
解决办法
1万
查看次数

当我登录 Azure 门户时,Azure Function 计时器运行两次

我在 Azure 中有一个定时函数应用程序,计划在每天 22:00 运行。然而,它似乎每天都在 21:59 和 22:00 运行。当我登录 Azure 门户检查日志时,它似乎也是随机运行的。

以下是我收到的重复条目的时间戳示例:

在此输入图像描述

我在网上搜索过但没有找到有效的解决方案。

这是应用程序的签名,大约需要 20 秒才能完成:

[FunctionName("Function1")]
public static void Run([TimerTrigger("0 0 22 * * *", RunOnStartup = false)]TimerInfo myTimer, TraceWriter log)
{
   // My code
}
Run Code Online (Sandbox Code Playgroud)

这是我的 local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
    "AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
    "type": "timerTrigger",
    "schedule": "0 0 22 * * *",
    "useMonitor": false,
    "SQLConn": "Server=tcp:XXX.database.windows.net,1433;Initial Catalog=XXX;Persist Security Info=False;User ID=XXX;Password=XXX;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },
  "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?

此外,Azure 功能中的“监视器”部分也没有显示任何异常。

.net azure crontrigger azure-functions

5
推荐指数
1
解决办法
3406
查看次数

通过任务运行程序添加 gulp-sass 中断

我在 VS2017 中有一个基本的 gulp 设置来缩小我的 Javascript。我决定添加 gulp-sass (我的 package.json 说我在 gulp-sass v4.0.1 上)但它抛出了这个错误:

C:\Work\MyProject\MyProject\node_modules\gulp-sass\index.js:66
    let sassMap;
    ^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (C:\Work\MyProject\MyProject\gulpfile.js:11:12)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
Run Code Online (Sandbox Code Playgroud)

我的 gulpfile 看起来像这样:

var gulp = require('gulp');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var watch = require('gulp-watch');
var …
Run Code Online (Sandbox Code Playgroud)

sass node.js gulp gulp-sass

4
推荐指数
1
解决办法
1280
查看次数

LINQ 查询其中 ID 不作为对象列表中的属性存在

我有一个包含 ID 号的对象列表。我想查询数据库中的一个表,以获取 ID与列表中任何对象的 ID不匹配的所有行。

List<Item> allItems = new List<Item>();
// Populate allItems
Run Code Online (Sandbox Code Playgroud)

An是一个带有 a和Item的简单对象。public int ItemIDpublic string Name

这是我尝试查询特定表的 LINQ,只提供不作为 in 存在的ItemIDallItems

var filtered = ctx.PurchasedItems.Where(x => allItems.Select(y => y.ItemID).ToList().Contains(x.FK_ItemID)).ToList();
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,dbo.PurchasedItems有一列FK_ItemIDItemID对象 Item 中的 相匹配。

虽然可以编译,但运行时出现以下错误:

“无法创建“DemoProject.Models.ItemDatabase.PurchasedItems”类型的常量值。在此上下文中仅支持原始类型或枚举类型。”

我尝试的另一种方法是:

var p = ctx.PurchasedItems.Where(x => x.FK_ItemID.IsAnyOf(allItems.Select(y => y.ItemID).ToArray())).ToList();
Run Code Online (Sandbox Code Playgroud)

...但这产生了类似的错误。

谁能帮我吗?

c# sql linq entity-framework entity-framework-6

3
推荐指数
1
解决办法
6714
查看次数

T-SQL查询仅选择在特定列中没有唯一值的行

我在SQLServer中有一个表,其中包含以下三列:

  • 行ID
  • RMA

RowID是唯一的,但RMA和Value不是.

我想编写一个查询,从表中选择共享任何特定RMA的所有行.所以我们假设我们有以下三行

ID  RMA   Value
1 - 222- Car
2 - 923 - Boat
3 - 222 - Plane
4 - 555 - Other
5 - 555 - Jet
Run Code Online (Sandbox Code Playgroud)

我想要一个将返回行1,3,4和5的查询.不会选择第2行,因为它的RMA只出现一次.

我甚至不知道从哪里开始.我需要使用这个COUNT()功能吗?

sql t-sql sql-server

1
推荐指数
1
解决办法
91
查看次数

T-SQL 查询从一个表中选择并插入到另一个表中

请先阅读问题,然后再将其标记为重复项。

我正在尝试将一行插入到 5 列的表中。我希望其中 3 列来自另一个表,我将使用选择查询来读取该表。

INSERT INTO tbl.Log (
     LogDate,
     Object,
     Count,
     Creator,
     LastUpdate)
SELECT TOP 1 
     GETUTCDATE(),
     Object,
     Count, -- I need to +1 to this
     'John Smith',
     LastUpdate
FROM tbl.Objects
WHERE ObjectID = '123'
ORDER BY LastUpdate DESC
Run Code Online (Sandbox Code Playgroud)

我可以在这里看到我做错了什么:

  • GETUTCDATE()不应出现在 SELECT 中,因为它不是列名。它去哪里了呢?
  • 'John Smith'作为创造者也是如此
  • Count 列是一个 int;我需要读取现有的数字并在插入之前加一。

我可以通过执行两个单独的查询并将数据解析到SELECT查询中来手动完成此操作INSERT,但我正在尝试改进我的 SQL。

sql t-sql sql-server-2012

1
推荐指数
1
解决办法
1418
查看次数

尽管已设置标头,但调用 API 网关仍返回 CORS 错误

我有一个与 Lambda 函数集成的 API 网关(HTTP 类型)。我试图从本地主机调用该函数,如下所示:

const jwt = getAuthToken();
const formBody = new FormData();
formBody.set('user', 'test');

const res = await fetch('https://example.execute-api.eu-west-1.amazonaws.com/default/GetShareValue', {
method: 'POST',
body: formBody,
headers: {
   'Authorization': jwt
   }
});
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误消息:

从源“http://localhost:3000”获取“https://example.execute-api.eu-west-1.amazonaws.com/default/GetShareValue”的访问已被 CORS 策略阻止:对预检的响应请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。

我了解不正确的 CORS 设置将阻止浏览器显示 Lambda 函数返回的内容。但是,我的 API 网关指定了 CORS 设置:

在此输入图像描述

根据此线程,在 Lambda 函数的响应中设置标头非常重要。我已将它们设置为相同。这是我的 Lambda 函数:

exports.handler = async (event, context) => {
    let body;
    let statusCode = '200';
    const headers = {
        'Content-Type': 'application/json',
        "Access-Control-Allow-Headers": "Content-Type,X-Amz-Date,X-Amz-Security-Token,Authorization,X-Api-Key,X-Requested-With,Accept,Access-Control-Allow-Methods,Access-Control-Allow-Origin,Access-Control-Allow-Headers",
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Methods": "*",
        "X-Requested-With": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services cors aws-lambda aws-api-gateway

1
推荐指数
1
解决办法
3290
查看次数