工作助手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.pswp.cn/diannao/41536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41536.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

教師商調函流程詳解

作為一名教師&#xff0c;您是否曾面臨過工作調動的困惑&#xff1f;當您決定邁向新的教育環境&#xff0c;是否清楚整個商調函流程的每一個細節&#xff1f;今天&#xff0c;就讓我們一起來探討這一過程&#xff0c;確保您能夠順利地完成工作調動。 首先需要確定新調入的學校已…

裁員風波中的項目經理,如何自洽?

最近都在擔心企業裁員&#xff0c;那么項目經理會不會也有被優化的風險呢&#xff1f; 答案是&#xff0c;一定會&#xff01; 今天從3個方面給大家闡述一下項目經理崗位的發展現狀以及未來的趨勢 01 項目經理被優化的可能性大嗎&#xff1f; 02 哪一類項目經理會被最先裁員…

CSDN導入本地md文件圖片不能正常回顯問題

標題 搭建圖像倉庫獲取圖片URL 路徑替換 因為服務器讀取不到本地圖片&#xff0c;故不能正常回顯&#xff0c;因此想要正常回顯圖片&#xff0c;我們首先要做的就是搭建一個可以存放圖片的服務器&#xff0c;像你可以選擇購買一個云服務器、FastDFS圖片服務器、Minio多云對象存…

信息收集-arping

信息收集-arping 簡介 arping 是一個用于發送 ARP 請求和接收 ARP 回復的工具。它通常用于檢查網絡中的 IP 地址是否被使用&#xff0c;或發現網絡中的重復 IP 地址。arping 工具類似于 ping 命令&#xff0c;但它使用的是 ARP 協議而不是 ICMP 協議。在 Kali Linux 中&#…

娛樂圈驚爆已婚男星劉端端深夜幽會

【娛樂圈驚爆&#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;連…

【代碼隨想錄_Day25】452. 用最少數量的箭引爆氣球 435. 無重疊區間 763. 劃分字母區間

Day25 OK&#xff0c;今日份的打卡&#xff01;第二十五天 以下是今日份的總結用最少數量的箭引爆氣球無重疊區間劃分字母區間 以下是今日份的總結 用最少數量的箭引爆氣球無重疊區間劃分字母區間 今天的題目難度不低&#xff0c;而且非常的有意思&#xff0c;盡量還是寫一些…

imx6ull/linux應用編程學習(11)CAN應用編程基礎

關于裸機的can通信&#xff0c;會在其他文章發&#xff0c;這里主要講講linux上的can通信。 與I2C,SPI等同步通訊方式不同&#xff0c;CAN通訊是異步通訊&#xff0c;也就是沒有時鐘信號線來保持信號接收同步&#xff0c;也就是所說的半雙工&#xff0c;無法同時發送與接收&…

python項目常見使用的傳參調試方法

簡介 你是否經常遇到下載的github開源知名項目&#xff0c;不知如何調試&#xff1f;只知道按說明的命令行運行&#xff1f;遇到異常或想改造也無從下手&#xff1f;這篇文檔章將指導你如何入手調試別人的大型開源項目。 常見項目使用說明及代碼如何調試 常見情況一 使用說…

16.【C語言】初識常見關鍵字 上

1.關鍵字由C語言自帶&#xff0c;不能自創 2.關鍵字不作變量名 3.關鍵字舉例&#xff1a; auto自動&#xff1a;每個局部變量都由auto修飾&#xff0c;含義&#xff1a;自動創建&#xff0c;自動銷毀 auto int a0;等價于int a0; exturn:申明外部符號 register:寄存器關鍵字…

數據治理的制勝法寶:篩斗數據技術在現代企業管理中的應用

數據治理的制勝法寶&#xff1a;篩斗數據技術在現代企業管理中的應用 在當今這個數據驅動的時代&#xff0c;企業管理的效率和競爭力越來越依賴于對數據的精準把握和高效利用。然而&#xff0c;隨著企業規模的擴大和業務復雜度的增加&#xff0c;數據治理成為了一個亟需解決的…

EasyExcel 單元格根據圖片數量動態設置寬度

在使用 EasyExcel 導出 Excel 時&#xff0c;如果某個單元格是圖片內容&#xff0c;且存在多張圖片&#xff0c;此時就需要單元格根據圖片數量動態設置寬度。 經過自己的研究和實驗&#xff0c;導出效果如下&#xff1a; 具體代碼如下&#xff1a; EasyExcel 版本 <depen…

Haxm安裝失敗的解決辦法

確認你的處理器是否是Intel的&#xff0c;如果是AMD那就無法安裝&#xff0c;如果是Intel的&#xff0c;再確認是否支持V1T 如果處理器是Intel的且支持VT&#xff0c;在開機時進入BIOS界面&#xff0c;不同的品牌進入BIOS的方法各不相同&#xff0c;通常是F2/F12/delete些&…

Python爬蟲零基礎實戰,簡潔實用!

1.爬蟲簡介 簡單來講&#xff0c;爬蟲就是一個探測機器&#xff0c;它的基本操作就是模擬人的行為去各個網站溜達&#xff0c;點點按鈕&#xff0c;查查數據&#xff0c;或者把看到的信息背回來。就像一只蟲子在一幢樓里不知疲倦地爬來爬去。 你可以簡單地想象&#xff1a;每個…

論文學習 --- RL Maximumdiffusion reinforcement learning

前言 個人拙見,如果我的理解有問題歡迎討論 (●′ω`●) 文章出處:https://techxplore.com/news/2024-05-random-robots-reliable-ai-algorithm.html 研究背景 最大擴散強化學習(MaxDiff RL)是一種創新的強化學習方法,借鑒了統計力學中的擴散過程和最大熵原理。該方法在…

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…

AIGC技術加持,英智法律智能體來了!

法律行業作為一個由大量文件積累的領域&#xff0c;非常適合由數據驅動的AI智能體。人工智能在法律領域的應用已經成為不可逆轉的趨勢。根據最高人民法院發布的《關于規范和加強人工智能司法應用的意見》&#xff0c;國家鼓勵在司法領域廣泛應用人工智能技術&#xff0c;以提高…

四端口千兆以太網交換機與 SFP 擴展功能

在數字化時代&#xff0c;網絡基礎設施的重要性日益凸顯&#xff0c;它是企業和個人取得成功的關鍵支撐。配備 SFP 插槽的 4 端口千兆以太網交換機提供了一種靈活且可擴展的網絡解決方案&#xff0c;能夠應對快速的數據傳輸、低延遲以及不斷增長的帶寬需求。本篇文章深入探討了…