Author Archives: lyping

你的 IT 管理员已限制对此应用的某些区域的访问,并且你尝试访问的项目不可用。

最近一些用户在重置此电脑后出现了该情况。
建议按下win+F,在反馈中心提交一下,这将有助于产品的改进。

重新安装一遍安全中心,有助于解决该问题:

【此处系统版本是Windows11 23H2】
可以从以下链接下载2个安装包,先运行Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb3d8bbwe.Appx,然后再运行安全中心安装包。

完成后重启电脑。
链接1:https://pan.baidu.com/s/10nHxD86yfpjvwWwGgMGjRA…
链接1备用:https://1drv.ms/u/s!AkSkpzU-DreRg_V6Cmd1k-OjFSE…
链接2: https://pan.baidu.com/s/18qRaRnOgnY4jq-hjPOiMxw…
链接2备用:https://1drv.ms/u/s!AkSkpzU-DreRg_V5hV0DgVdFvBC…

【Note: This is a non-Microsoft website. The page appears to be providing accurate, safe information. Watch out for ads on the site that may advertise products frequently classified as a PUP (Potentially Unwanted Products). Thoroughly research any product advertised on the site before you decide to download and install it.
Disclaimer.
注意:以上有链接非微软官网,虽经过顾问检测,其中可能包含对此问题有用的解决信息,但不保证绝对安全,请谨慎打开。同时留意网站上的广告,这些广告可能是不需要的产品。下载或决定安装前,请仔细鉴别。无法确定或无法承担安全性问题的情况下,请勿打开此链接。
“独立顾问”/“个人解答”提供的非微软网站的可能“有用信息”,均是免费的信息。网页内可能包括部分付费内容,任何付费内容均不在“有用信息”内,请勿付款。
免责声明】

若是有任何疑问,请点击我回复下面的“回复”按钮进行回复。
注意!请务必遮挡个人信息(电子邮件/电话/姓名等)。(若是没有,请忽略)

CVI可以动态创建控件吗

LabWindows/CVI 提供了动态创建控件的功能。你可以使用相关的函数在运行时动态创建、修改和销毁控件。

以下是一个简单的示例代码,演示了如何在运行时动态创建一个按钮控件:

#include <userint.h>
#include <utility.h>

int main(int argc, char *argv[])
{
    if (InitCVIRTE(0, argv, 0) == 0)
        return -1;  /* out of memory */

    int panelHandle = LoadPanel(0, "YourPanel.uir", PANEL);
    DisplayPanel(panelHandle);

    // 动态创建按钮控件
    int buttonHandle;
    buttonHandle = NewCtrl(panelHandle, CTRL_BUTTON, "DynamicButton", 10, 10);

    // 更新界面
    RefreshPanel(panelHandle);

    RunUserInterface();

    DiscardPanel(panelHandle);
    return 0;
}

在这个示例中,NewCtrl 函数用于在运行时动态创建一个按钮控件。你可以指定按钮的类型、名称、位置等参数。这个函数的具体用法可以在 LabWindows/CVI 的文档中找到。

需要注意的是,动态创建的控件在程序结束后并不会自动销毁,你需要在程序结束前调用相应的函数进行销毁,以避免内存泄漏。在本例中,我们使用 DiscardPanel 函数来销毁整个面板及其所有控件,但你也可以使用 DeleteCtrl 函数来单独销毁特定的控件。

在 LabWindows/CVI 中,NewCtrl 函数的第二个参数指定控件类型。控件类型是一个整数值,用来表示不同类型的控件。LabWindows/CVI 提供了一组预定义的常量来表示这些控件类型,这些常量定义在头文件 userint.h 中。

以下是一些常用控件类型的常量定义:

  • CTRL_BUTTON:按钮控件
  • CTRL_NUMERIC:数字输入框控件
  • CTRL_TABLE:表格控件
  • CTRL_TEXTBOX:文本框控件
  • CTRL_GRAPH:图表控件

你可以在 LabWindows/CVI 的文档中查找 userint.h 文件,其中会详细说明每个常量的含义和用法。如果你使用的是 LabWindows/CVI 的集成开发环境 (IDE),通常可以通过 IDE 的帮助系统查找相关信息。

 

在LabWindows中,可以通过代码实现控件的移动吗

在LabWindows中可以通过代码实现控件的移动。LabWindows是一个用于实验室测量和控制的开发环境,它提供了丰富的功能来创建用户界面,并通过编程实现控件的行为。

你可以使用LabWindows提供的函数来获取和设置控件的位置坐标,从而实现控件的移动。一般来说,你需要做以下步骤:

  1. 使用LabWindows提供的界面设计器创建用户界面,并添加需要移动的控件。
  2. 在代码中使用相应的函数来获取控件的位置信息。
  3. 根据需要修改控件的位置信息,从而实现控件的移动。
  4. 更新界面以显示控件移动后的效果。

以下是一个简单的示例代码,演示了如何通过代码实现控件的移动:

#include <userint.h>
#include <utility.h>

int main(int argc, char *argv[])
{
    if (InitCVIRTE(0, argv, 0) == 0)
        return -1;  /* out of memory */

    int panelHandle = LoadPanel(0, "YourPanel.uir", PANEL);
    DisplayPanel(panelHandle);

    // 获取控件的初始位置
    int initialLeft, initialTop;
    GetCtrlAttribute(panelHandle, PANEL_YOURCONTROL, ATTR_LEFT, &initialLeft);
    GetCtrlAttribute(panelHandle, PANEL_YOURCONTROL, ATTR_TOP, &initialTop);

    // 移动控件
    SetCtrlAttribute(panelHandle, PANEL_YOURCONTROL, ATTR_LEFT, initialLeft + 50);
    SetCtrlAttribute(panelHandle, PANEL_YOURCONTROL, ATTR_TOP, initialTop + 50);

    // 更新界面
    RefreshPanel(panelHandle);

    RunUserInterface();

    DiscardPanel(panelHandle);
    return 0;
}

 

请注意,示例代码中的 PANEL_YOURCONTROL 应该替换为你实际使用的控件的名称,"YourPanel.uir" 应该替换为你的界面文件名。这只是一个简单的示例,实际情况中你可能需要根据具体需求进行更复杂的控件移动操作。

使用python写一段程序,连接PostgreSQL数据库,并修改里面的内容

import psycopg2
from psycopg2 import Error

def update_expiration_date():
    try:
        # 连接到 PostgreSQL 数据库
        connection = psycopg2.connect(user="your_username",
                                      password="your_password",
                                      host="your_host",
                                      port="your_port",
                                      database="adco")

        cursor = connection.cursor()

        # 执行更新操作
        cursor.execute("UPDATE ir_config_parameter SET value = '123456' WHERE key = 'database.expiration_date';")
        connection.commit()
        print("成功更新记录")

    except (Exception, Error) as error:
        print("更新记录时出错:", error)

    finally:
        # 关闭数据库连接
        if connection:
            cursor.close()
            connection.close()
            print("PostgreSQL 连接已关闭")

if __name__ == '__main__':
    update_expiration_date()

 

Odoo数据库自动备份脚本

#!/bin/bash


# 数据库名称
# db_name="odoo14e"
# 存放备份文件的url地址
# base_url="/home/odoo/pgsql_backup/backup_files/"
# odoo临时文件地址
# filestore_url=/home/odoo/.local/share/Odoo/filestore/${db_name}

db_name="demo100"
base_url="/home/jincw/work/odoo_backup/backup_files/"
filestore_url=/ubuntu/.local/share/Odoo/filestore/${db_name}


# 判断是否存在存放备份文件的url地址文件目录,如果不存在则创建
if [ ! -d $base_url ];then
   mkdir -p $base_url
fi


# 删除5天之前的备份文件
find $base_url -mtime +5 -type f| xargs rm -f


# 当前时间
current_time=date +%Y-%m-%d_%H
# 备份数据库文件名
db_file_name=${db_name}_dbfile.gz
# 备份odoo临时文件文件名
filestore_file_name=${db_name}_filestore.tar.gz


# 当前备份目录
duplicate_catalog=$base_url$current_time

mkdir $duplicate_catalog


# 执行数据库备份命令备份数据库
pg_dump $db_name | gzip -c > ${duplicate_catalog}/${db_file_name}


# 打包odoo临时文件
cd $filestore_url
tar -zcvPf ${duplicate_catalog}/${filestore_file_name} .

# 将db备份和临时文件打包
cd $duplicate_catalog
tar -cvPf $duplicate_catalog.tar .


# # 删除压缩之前的源文件
rm -rf $duplicate_catalog