工作助手VB开发笔记(2)

今天继续讲功能

2.功能

2.9开机自启

设置程序随windows系统启动,其实就是就是将程序加载到注册表

    Public Sub StartRunRegHKLM()REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ Run'Dim strName As String = Application.StartupPath + "\" + Application.ProductName + ".exe"Dim strName As String = "E:\2024\工作助手WPF\工作助手WPF\bin\Debug\net8.0-windows\工作助手WPF.exe"Dim strNewName As String = System.IO.Path.GetFileNameWithoutExtension(strName)If Not System.IO.File.Exists(strName) Then ReturnTryDim Rkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", True)If IsNothing(Rkey) ThenRkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run")Rkey.SetValue(strNewName, Chr(34) & strName & Chr(34)) '修改注册表,使程序开机时自动执行.ElseRkey.SetValue(strNewName, Chr(34) & strName & Chr(34)) '修改注册表,使程序开机时自动执行。 End IfCatch ex As ExceptionMessageBox.Show(ex.Message, "StartRun") ' //MessageBox.Show(ex.Message);End TryEnd Sub
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

如果发现注册表中有此程序,说明注册成功,重启电脑,开机自启成功

考虑到用户会想要关闭开机自启,引入一个checkbox,同时该控件在弹窗中呈现,弹窗也要时圆角,所以xmal中在button下方添加

                <Popup x:Name="myPopup" Placement="Center" AllowsTransparency="True" StaysOpen="False"><Border x:Name="PopupBorder" Background="White" BorderThickness="1" CornerRadius="10" Margin="5"><StackPanel  Margin="20,0,0,0" Orientation="Vertical"><TextBlock Text="This is a popup window." Margin="2"/><!--Add more content here if needed--><CheckBox x:Name="CheckBox1" Content="开机自启" HorizontalAlignment="Left" Margin="2,2,0,0" VerticalAlignment="Top" Checked="CheckBox_Checked" Unchecked="CheckBox_unChecked"/></StackPanel></Border></Popup>

在vb.net中添加唤起popup弹窗

    Sub btn_close_Click()Debug.WriteLine("hello")myPopup.IsOpen = True ' 设置Popup的是否打开myPopup.VerticalOffset = -20 ' 设置垂直偏移量myPopup.HorizontalOffset = -20 ' 设置水平偏移量End Sub

添加checkbox对应的功能

    Private Sub CheckBox_Checked(sender As Object, e As RoutedEventArgs)'Debug.WriteLine("checked")Dim strName As String = "E:\2024\工作助手WPF\工作助手WPF\bin\Debug\net8.0-windows\工作助手WPF.exe"Dim strNewName As String = System.IO.Path.GetFileNameWithoutExtension(strName)If Not System.IO.File.Exists(strName) Then ReturnTryDim Rkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", True)If IsNothing(Rkey) ThenRkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run")End IfRkey.SetValue(strNewName, Chr(34) & strName & Chr(34)) '修改注册表,使程序开机时自动执行.Rkey.Close() '后加的,关闭注册表Catch ex As ExceptionMessageBox.Show(ex.Message, "StartRun") ' //MessageBox.Show(ex.Message);End TryEnd SubPrivate Sub CheckBox_unChecked(sender As Object, e As RoutedEventArgs)'Debug.WriteLine("unchecked")Dim strName As String = "E:\2024\工作助手WPF\工作助手WPF\bin\Debug\net8.0-windows\工作助手WPF.exe"Dim strNewName As String = System.IO.Path.GetFileNameWithoutExtension(strName)If Not System.IO.File.Exists(strName) Then ReturnTryDim Rkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", True)If IsNothing(Rkey) ThenRkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run")End IfRkey.DeleteValue(strNewName) '删除注册表,使程序开机时自动执行.Debug.WriteLine(strNewName)Rkey.Close() '后加的,关闭注册表Catch ex As ExceptionMessageBox.Show(ex.Message, "StartRun") ' //MessageBox.Show(ex.Message);End TryEnd Sub

 popup默认以button的底部为起点,偏移以此为基础,下面链接介绍popup的放置行为:

Popup 放置行为 - WPF .NET Framework | Microsoft Learn

对样式进行以下修改

如果margin只有一个值,表示上右下左的margin同为这个值。例如:margin:10px; 就等于 margin:10px 10px 10px 10px;

如果 margin 只有两个值,第一个值表示上下margin值,第二个值为左右margin的值。例如:margin:10px 20px; 就等于 margin:10px 20px 10px 20px;

如果margin有三个值,第一个值表示上margin值,第二个值表示左右margin的值,第三个值表示下margin的值。例如:margin:10px 20px 30px; 就等于 margin:10px 20px 30px 20px;

如果margin有四个值,那这四个值分别对应左上右下这四个margin值。例如:margin:10px 20px 30px 40px;

2.10由于由于要保存checkbox的状态,所以引入数据库,由于以前用过access数据库

添加引用Imports System.Data.OleDb

    Sub Main()' 连接字符串Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\2024\工作助手WPF\工作助手WPF\自动BOM数据库.accdb;"' 创建连接对象Dim connection As New OleDbConnection(connectionString)Try' 打开数据库连接connection.Open()' 连接成功,可以执行其他操作' ...Catch ex As Exception' 连接失败,处理异常Console.WriteLine("连接数据库失败:" + ex.Message)Finally' 关闭数据库连接connection.Close()End TryEnd Sub

Dim connection As New OleDbConnection(connectionString)此处一直报错:未定义类型“OleDbConnection”

改为Dim connection As  OleDbConnection后VS提示安装System.Data.OleDb,原来时这个包没有安装,安装后错误解除。以下是操作数据库的

    Sub InsertAccess()' 定义连接字符串,指向你的Access数据库文件Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\database.accdb"Dim query As String = "INSERT INTO 参数设置 (参数名, 值) VALUES (@value1, @value2)"Using connection As New OleDbConnection(connectionString)Dim command As New OleDbCommand(query, connection)' 添加参数到命令command.Parameters.AddWithValue("@value1", "YourValue1")command.Parameters.AddWithValue("@value2", "YourValue2")' 打开连接,执行命令,关闭连接connection.Open()command.ExecuteNonQuery()connection.Close()End UsingEnd SubPublic Sub ModifyDataInAccess()' 定义连接字符串,指向你的Access数据库文件Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\database.accdb"Using connection As New OleDbConnection(connectionString) ' 创建连接对象connection.Open() ' 打开连接Dim commandText As String = "UPDATE yourTable SET ColumnName = @value WHERE ConditionColumn = @conditionValue" ' 创建SQL修改命令Using command As New OleDbCommand(commandText, connection) ' 添加参数到命令command.Parameters.AddWithValue("@value", "newValue") ' 新值command.Parameters.AddWithValue("@conditionValue", "conditionValue") ' 条件值Dim rowsAffected As Integer = command.ExecuteNonQuery() ' 执行命令Console.WriteLine("Rows Affected: " & rowsAffected) ' 输出影响的行数End Usingconnection.Close() ' 关闭连接End UsingEnd SubPublic Sub ReadDataFromAccess()'C:\database.accdb'./database.accdbDim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\database.accdb"Dim query As String = "SELECT * FROM 参数设置"Using connection As New OleDbConnection(connectionString)Dim command As New OleDbCommand(query, connection)connection.Open()Using reader As OleDbDataReader = command.ExecuteReader()While reader.Read()' 处理每一行数据' 例如:MsgBox(reader(1).ToString())End WhileEnd Usingconnection.Close()End UsingEnd Sub

3.exe打包,如何把数据库打包进exe,先参考第三节VS 程序打包成一个独立的exe - Enigma Virtual Box-CSDN博客

 想要把数据库打包进exe,参考以下设置

至此,一个exe文件就能实现:无锯齿无边框窗口,贴边隐藏,开机自启,自带数据库。在下面一段时间里,将做一些设置中的一些功能,比如开机自启后,打开客户自定义的一些文件,登录网页,代办事项等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教师商调函流程详解

作为一名教师&#xff0c;您是否曾面临过工作调动的困惑&#xff1f;当您决定迈向新的教育环境&#xff0c;是否清楚整个商调函流程的每一个细节&#xff1f;今天&#xff0c;就让我们一起来探讨这一过程&#xff0c;确保您能够顺利地完成工作调动。 首先需要确定新调入的学校已…

CSDN导入本地md文件图片不能正常回显问题

标题 搭建图像仓库获取图片URL 路径替换 因为服务器读取不到本地图片&#xff0c;故不能正常回显&#xff0c;因此想要正常回显图片&#xff0c;我们首先要做的就是搭建一个可以存放图片的服务器&#xff0c;像你可以选择购买一个云服务器、FastDFS图片服务器、Minio多云对象存…

娱乐圈惊爆已婚男星刘端端深夜幽会

【娱乐圈惊爆&#xff01;已婚男星刘端端深夜幽会&#xff0c;竟是《庆余年》二皇子“戏外风云”】在这个信息爆炸的时代&#xff0c;娱乐圈的每一次风吹草动都能瞬间点燃公众的热情。今日&#xff0c;知名娱乐博主刘大锤的一则预告如同投入湖中的巨石&#xff0c;激起了层层涟…

纸电混合阶段,如何在线上实现纸电会档案的协同管理?

随着国家政策的出台和引导&#xff0c;电子会计档案的管理越来越规范&#xff0c;电子会计档案建设成为打通财务数字化最后一公里的重要一环。但是&#xff0c;当前很多企业的财务管理仍处于电子档案和纸质档案并行的阶段&#xff0c;如何能将其建立合理清晰关联&#xff0c;统…

《数字图像处理-OpenCV/Python》第17章:图像的特征描述

《数字图像处理-OpenCV/Python》第17章&#xff1a;图像的特征描述 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第17章&#xff1a;图像的特征描述 特征检测与匹配是计算机视觉的…

javascript v8编译器的使用记录

我的机器是MacOS Mx系列。 一、v8源码下载构建 1.1 下载并更新depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH/path/to/depot_tools:$PATH 失败的话可能是网络问题&#xff0c;可以试一下是否能ping通&#xff0c;连…

imx6ull/linux应用编程学习(11)CAN应用编程基础

关于裸机的can通信&#xff0c;会在其他文章发&#xff0c;这里主要讲讲linux上的can通信。 与I2C,SPI等同步通讯方式不同&#xff0c;CAN通讯是异步通讯&#xff0c;也就是没有时钟信号线来保持信号接收同步&#xff0c;也就是所说的半双工&#xff0c;无法同时发送与接收&…

EasyExcel 单元格根据图片数量动态设置宽度

在使用 EasyExcel 导出 Excel 时&#xff0c;如果某个单元格是图片内容&#xff0c;且存在多张图片&#xff0c;此时就需要单元格根据图片数量动态设置宽度。 经过自己的研究和实验&#xff0c;导出效果如下&#xff1a; 具体代码如下&#xff1a; EasyExcel 版本 <depen…

Python爬虫零基础实战,简洁实用!

1.爬虫简介 简单来讲&#xff0c;爬虫就是一个探测机器&#xff0c;它的基本操作就是模拟人的行为去各个网站溜达&#xff0c;点点按钮&#xff0c;查查数据&#xff0c;或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。 你可以简单地想象&#xff1a;每个…

Hadoop的namenode启动不起来

1、 排查原因 Initialization failed for Block pool (Datanode Uuid a5d441af-d074-4758-a3ff-e1563b709267) service to node1/192.168.88.101:8020. Exiting. java.io.IOException: Incompatible clusterIDs in /data/dn: namenode clusterID CID-674c5515-3fe1-4a9c-881d…

四端口千兆以太网交换机与 SFP 扩展功能

在数字化时代&#xff0c;网络基础设施的重要性日益凸显&#xff0c;它是企业和个人取得成功的关键支撑。配备 SFP 插槽的 4 端口千兆以太网交换机提供了一种灵活且可扩展的网络解决方案&#xff0c;能够应对快速的数据传输、低延迟以及不断增长的带宽需求。本篇文章深入探讨了…

大厂都在加急招人的大模型LLM,到底怎么学?

大模型如何入坑&#xff1f; 想要完全了解大模型&#xff0c;你首先要了解市面上的LLM大模型现状&#xff0c;学习Python语言、Prompt提示工程&#xff0c;然后深入理解Function Calling、RAG、LangChain 、Agents等 很多人不知道想要自学大模型&#xff0c;要按什么路线学&a…

【网络安全】第4讲 身份认证技术(笔记)

一、身份认证技术概述 1、身份认证 是网络安全的第一道防线。是最基本的安全服务&#xff0c;其他的安全服务都依赖于它。在物联网应用系统中&#xff0c;身份认证也是整个物联网应用层信息安全体系的基础。 2、基本身份认证技术 &#xff08;1&#xff09;双方认证 是一种双…

人员定位系统在监狱中的应用也同样重要!

监狱管理应用人员定位系统怎么样&#xff1f;新锐科创告诉你&#xff0c;人员定位系统在监狱中的应用也是很重要的&#xff0c;运用这种新型的定位系统&#xff0c;来起到管理监狱人员的作用。 人员定位系统 在监狱中&#xff0c;关押着大量的犯人&#xff0c;所以&#xff0c…

拓扑Transformer模型TopoFormer:革新药物研发的智能钥匙

在药物研发的浩瀚征途中&#xff0c;每一步都充满了挑战与未知。从发现潜在的治疗靶点&#xff0c;到筛选出有效的药物分子&#xff0c;再到通过临床试验验证其安全性和有效性&#xff0c;这一过程往往耗时漫长且成本高昂。然而&#xff0c;随着人工智能技术的飞速发展&#xf…

昇思25天学习打卡营第15天|ResNet50图像分类

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) ResNet50图像分类 图像分类是最基础的计算机视觉应用&#xff0c;属于有监督学习类别&#xff0c;如给定一张图像(猫、狗、飞机、汽车等等)&#xff0c;判断图像所属的类别。本章将介绍使用ResN…

【JAVA入门】Day13 - 代码块

【JAVA入门】Day13 - 代码块 文章目录 【JAVA入门】Day13 - 代码块一、局部代码块二、构造代码块三、静态代码块 在 Java 中&#xff0c;两个大括号 { } 中间的部分叫一个代码块&#xff0c;代码块又分为&#xff1a;局部代码块、构造代码块、静态代码块三种。 一、局部代码块…

跟《经济学人》学英文:2024年06月01日这期 The side-effects of the TikTok tussle

The side-effects of the TikTok tussle tussle&#xff1a;美 [ˈtəsəl] 激烈扭打&#xff1b;争夺 注意发音 side-effects&#xff1a;副作用&#xff1b;&#xff08;side-effect的复数&#xff09; As the app’s future hangs in the balance, the ramifications of …

MySQL的并发控制、事务、日志

目录 一.并发控制 1.锁机制 2.加锁与释放锁 二.事务&#xff08;transactions&#xff09; 1.事物的概念 2.ACID特性 3.事务隔离级别 三.日志 1.事务日志 2.错误日志 3.通用日志 4.慢查询日志 5.二进制日志 备份 一.并发控制 在 MySQL 中&#xff0c;并发控制是确…

都有哪些离线翻译器软件?没网就用这4个

经历完痛苦的期末考&#xff0c;可算是千盼万盼等来了日思夜想的暑假&#xff01;趁着这大好时光&#xff0c;怎么能不来一场出国游呢~ 不知道有多少小伙伴和我一样&#xff0c;出国玩最怕的就是语言不通&#xff0c;不管是吃饭还是游玩体验感都会大受影响~好在多出国玩了几趟…