From 4022ddb84b5d3186994955efd8969725906f2a7f Mon Sep 17 00:00:00 2001 From: cjhdevact Date: Wed, 5 Feb 2025 13:06:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20-=2020250205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 +++++ README.md | 2 +- Src/UsefulControl.suo | Bin 129024 -> 130048 bytes Src/UsefulControl/BootForm.vb | 19 ++++++++-- .../IBoard/IBoardpfrm.Designer.vb | 9 ++++- Src/UsefulControl/IBoard/IBoardpfrm.resx | 3 ++ Src/UsefulControl/IBoard/IBoardpfrm.vb | 35 +++++++++++++++--- Src/UsefulControl/My Project/AssemblyInfo.vb | 4 +- Src/UsefulControl/SeewoFakeShut.vb | 18 +++++++-- 9 files changed, 82 insertions(+), 17 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a40470 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/Src/.vs/ + +/Src/*.suo + +/Src/UsefulControl-bin/ + +/Src/UsefulControl/bin/ + +/Src/UsefulControl/obj/ \ No newline at end of file diff --git a/README.md b/README.md index 1ac7bca..6a13149 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- UsefulControl - 实用工具集合小工具 + UsefulControl - 实用工具集合小工具

## 关于本项目 diff --git a/Src/UsefulControl.suo b/Src/UsefulControl.suo index 05db7d4342ab031c1f0362792095f7cdca3580c7..f167372c627af682ddbd83ad8d838d4102179593 100644 GIT binary patch delta 6238 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 nm^|D>X!?3(!&Ul8;nsg>6jlEOwq1GE delta 5619 zcmeGge{@sj_1)w(Brz?Iwv-ZL7elO}ls1K;wd>lDrlrLI5en0qQ(sHzVGg0Ip(1i> zWEIf@#@vk$rLvGQtPHXA0bz{Iir^|!=uwaJOl1+lvxAP)!!n0VW%s@Opz8L|{@9sk zlEcIF6e@E0*lNEO`1T5@4yE#=IG!Gee?;TQY=FN-c1mj<%T(F zv>|QdUL7wj7yh7*^Ny2IWB~fIJz80gDv5|?4{K#<^3`MxDK>ssty#vka^)PlYfI@~ zS0=i2U?BR~-+d67yB(|)!6RL21h_f<`i{FD7WPPcX8MfY2{ zV9HMYR?bBxdbzf{f(1XZeMwh%md^IkdXCm^TEC>Vht~77_R@NR79J`19KL+Axmf-) z0Rn1cY~~Wk`%hd3j5kC z02boD@6Ci;SaTUHLgDEO>~GElFRlzt#pt_c^xF+M(qDnY2Xe4|hK9AN!HB~2!;py& zFZ&A%IKhe|B^nmgf*tKm-BLm6+j8{9RYo6k)4uGg@IZME4s7(G@X{SYr%OAAJYtc( zqJ)Oi!}BsA2VcxNU&lR8kU2%JJ{6B8Z3^R}*KZ_fauO4Bd9;}XWF-;48V_%h0Yzqw z8{eB~4Vp}nzxEjLHzWzZx?$~&1l*K5R-Xv{dV?xlp&FQ1tuJS#9y83*v4{=$sgyKcsQtC^|lz#%zS52oSp!$HVUWQBHQp!m0Jl5ZvXij^1$o3`XC=9J>Y zj@zW&>lQg9#4e3RTwU@;ps;$P=YsX{WT0IaTR@M0p@MhkU>tg9P5_4 zH>_0$pLU~TQ=xogCe*-Q7>8B+oO;IrzfRHYH)*_@ZxWcsHf#sivSk2fL0HNzp?pV6A1a05>1fhX*w35^e@I zm(NO*w!=xm%`8W?M9M02XOKt8HFBPq&+93+1~AwNV~11UaC&`lVcCI*+7 zF#1PRLY)geX9e7O&dbboR0W)?T#{?}h%R_O+d$Qmo9$d!T}P+o?$CyT^LBpjD9DE1 zkM-Jou6+16;=8~+B00GG<09Uf;AskO)}yyDQ!>4Gb`0iyVog!n*vS(hNUwZS1blsh z+aCUis`Q1o`P)(|%(Km`s}(YN`37+t21|`N_>Tg1xd-%Ywj0D$HfquTrID?9Fo_pB zp^Uw@JONVBP1nwLy6bOGiK47w_SInFt4EEL9ocfviyW@PKzAal#(aawIS#c&FQC^9=KwyQ}gEo0o)@h9&EA_z%es=0g{>$X7&bWdWIakcgumY@# zY2=hVbd2cP=}BJ|Wn^zHrS7oyGsVZtS@c$VT5*KuD-v>7VEbo=QI9~*&Sj-NP%b;5 zY(ETX__f3;H-|_}1BNs_v%VbLKR2c%bTVN%@O@x25Wc_@>AEZV=X2qh!hAgQLW>E&T44MRxw`|H1O#OC=$y8 zg9^`{H?j6rP{=~}Cq;&K6ydQijQsbLdgXYtU}d0`~Dga z0D8V`W}ZaNH{s7^IQT{0)rd&Ef;AZwaxE9w$i$=xgQZp$?TiP+`e212Qnv}Z0sZxs zh$RnB1AAjC%wv^E@zy^Nv=RFg(5v2MCC>;`pn~-m6HY+L*Rlo?9HVmZ!Zy;A+YE-U zy`@MLk*S6WDX@X5q=Rk=(o10F7riN$F5_Q}C)#{HH1aj>)? z-A-bLxLV~#)sZVTKz04hj>XhimXX4n*q>bRA#e!IcO9Gqyb9NMSg17{nZr#sw>)J* z$KpCHDBS`Nu#z5_z;aq(Fjdmp*qkL08kM^LX9Z1^=chzj`qox6kvZ;#!vAjFTBZy& za#2Z?kpIy#w3^@54k~tLGqu{#R{$CtDA;5PpA7@@?1+E@jqz#--_h19f9c?qmqH*u)3ytp@)fEpeSMrK+bh3Ttu7(`Sklq z2Zw{+OVdNlffhpr4lblC*I&mu|yZSygD~4J`B!jgw}r>7QB 1 Then For i = 0 To CurCommand.Count - 1 If CurCommand(i).ToLower = "/topbar" Or CurCommand(i).ToLower = "/bottombar" Or CurCommand(i).ToLower = "/lefttopbar" Or CurCommand(i).ToLower = "/righttopbar" Or CurCommand(i).ToLower = "/leftbottombar" Or CurCommand(i).ToLower = "/rightbottombar" Or CurCommand(i).ToLower = "/leftbar" Or CurCommand(i).ToLower = "/rightbar" Then @@ -813,13 +813,26 @@ Public Class BootForm End If End Sub - Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) + Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If MovedV <> 1 Then If Me.Location <> a Then Me.Location = a End If End If + 'If Me.TopMost = True Then + ' If Me.Visible = True Then + ' SetWindowPos(Me.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS) + ' End If + 'End If End Sub + ' + 'Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As UInteger) As Boolean + 'End Function + + 'Const HWND_TOPMOST = -1 + 'Const SWP_NOSIZE As UInteger = &H1 + 'Const SWP_NOMOVE As UInteger = &H2 + 'Const TOPMOST_FLAGS As UInteger = SWP_NOMOVE Or SWP_NOSIZE 'API移动窗体 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Boolean Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Boolean diff --git a/Src/UsefulControl/IBoard/IBoardpfrm.Designer.vb b/Src/UsefulControl/IBoard/IBoardpfrm.Designer.vb index e6c15b8..39f2881 100644 --- a/Src/UsefulControl/IBoard/IBoardpfrm.Designer.vb +++ b/Src/UsefulControl/IBoard/IBoardpfrm.Designer.vb @@ -32,6 +32,7 @@ Partial Class IBoardpfrm Me.CFileState = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() Me.CHide = New System.Windows.Forms.ToolStripMenuItem() + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) Me.FlowLayoutPanel1.SuspendLayout() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.ContextMenuStrip1.SuspendLayout() @@ -107,7 +108,10 @@ Partial Class IBoardpfrm Me.CHide.Size = New System.Drawing.Size(148, 22) Me.CHide.Text = "隐藏(&H)" ' - 'pfrm + 'Timer1 + ' + ' + 'IBoardpfrm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi @@ -121,7 +125,7 @@ Partial Class IBoardpfrm Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.MaximizeBox = False Me.MinimizeBox = False - Me.Name = "pfrm" + Me.Name = "IBoardpfrm" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "图片展示小工具" @@ -139,4 +143,5 @@ Partial Class IBoardpfrm Friend WithEvents CFileState As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripSeparator Friend WithEvents CHide As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents Timer1 As System.Windows.Forms.Timer End Class diff --git a/Src/UsefulControl/IBoard/IBoardpfrm.resx b/Src/UsefulControl/IBoard/IBoardpfrm.resx index 723ebd3..befbd0e 100644 --- a/Src/UsefulControl/IBoard/IBoardpfrm.resx +++ b/Src/UsefulControl/IBoard/IBoardpfrm.resx @@ -1729,6 +1729,9 @@ F/8ABBf/AAQW/gAEFv8ABBX/AAQU/gAEFP8ABBP/AAQS/wAEE/8ABxH+AAeI/w== + + 305, 17 + AAABAAgAAAAAAAAAAAAgzwAAhgAAAEBAAAAAAAAAKEIAAKbPAAAwMAAAAAAAAKglAADOEQEAKCgAAAAA diff --git a/Src/UsefulControl/IBoard/IBoardpfrm.vb b/Src/UsefulControl/IBoard/IBoardpfrm.vb index 1eae250..b024a1b 100644 --- a/Src/UsefulControl/IBoard/IBoardpfrm.vb +++ b/Src/UsefulControl/IBoard/IBoardpfrm.vb @@ -25,6 +25,7 @@ '* * '\*****************************************************/ Imports Microsoft.Win32 +Imports System.Runtime.InteropServices Public Class IBoardpfrm Public pfile As String @@ -82,6 +83,19 @@ Public Class IBoardpfrm ' Me.Close() 'End Sub + '在Alt+Tab中隐藏 + Const WS_EX_COMPOSITED = &H2000000 '0x02000000 + Const WS_EX_NOACTIVATE = &H8000000 '0x08000000 + Const WS_EX_TOOLWINDOW = &H80 '0x00000080 + Const WS_EX_TRANSPARENT = &H20 '0x00000020 + Protected Overrides ReadOnly Property CreateParams As CreateParams + Get + Dim cp As CreateParams = MyBase.CreateParams + cp.ExStyle = cp.ExStyle Or WS_EX_TOOLWINDOW Or WS_EX_COMPOSITED Or WS_EX_NOACTIVATE Or WS_EX_TRANSPARENT + Return cp + End Get + End Property + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click IBoardprms.ShowDialog() End Sub @@ -148,7 +162,7 @@ Public Class IBoardpfrm 'End Sub Private Sub pfrm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load - + ' 获取当前窗体的 DPI Dim currentDpiX As Single = Me.CreateGraphics().DpiX Dim currentDpiY As Single = Me.CreateGraphics().DpiY @@ -525,7 +539,7 @@ Public Class IBoardpfrm pfile = pfile1 PictureBox1.Load(pfile) IBoardprms.TextBox1.Text = pfile1 - NotifyIcon1.Text = "图片展示小工具 - 已打开图片" + NotifyIcon1.Text = "图片展示小工具 - 已打开图片" CFileState.Text = "已打开文件:" & pfile ImgAutoLoad = 1 If UnSaveData = 0 Then @@ -534,7 +548,7 @@ Public Class IBoardpfrm Catch ex As Exception pfile = pfile1 IBoardprms.TextBox1.Text = "" - NotifyIcon1.Text = "图片展示小工具 - 未打开图片" + NotifyIcon1.Text = "图片展示小工具 - 未打开图片" CFileState.Text = "未打开文件。" ImgAutoLoad = 0 MessageBox.Show("图片加载失败。", "图片展示小工具 - 错误", MessageBoxButtons.OK, MessageBoxIcon.Error) @@ -617,13 +631,13 @@ Public Class IBoardpfrm NotifyIcon1.Visible = False End Sub - Private Sub NotifyIcon1_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick + Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick Me.Hsate = 0 CHide.Text = "隐藏(&H)" Me.Show() End Sub - Private Sub CHide_Click(sender As System.Object, e As System.EventArgs) Handles CHide.Click + Private Sub CHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CHide.Click If Hsate = 0 Then Me.Hsate = 1 CHide.Text = "显示(&S)" @@ -640,4 +654,15 @@ Public Class IBoardpfrm Me.Show() End If End Sub + Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick + SetWindowPos(Me.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS) + End Sub + + Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As UInteger) As Boolean + End Function + + Const HWND_TOPMOST = -1 + Const SWP_NOSIZE As UInteger = &H1 + Const SWP_NOMOVE As UInteger = &H2 + Const TOPMOST_FLAGS As UInteger = SWP_NOMOVE Or SWP_NOSIZE End Class \ No newline at end of file diff --git a/Src/UsefulControl/My Project/AssemblyInfo.vb b/Src/UsefulControl/My Project/AssemblyInfo.vb index 46c3335..a47f182 100644 --- a/Src/UsefulControl/My Project/AssemblyInfo.vb +++ b/Src/UsefulControl/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' 方法是按如下所示使用“*”: ' - - + + diff --git a/Src/UsefulControl/SeewoFakeShut.vb b/Src/UsefulControl/SeewoFakeShut.vb index 6cbdbba..da3bde6 100644 --- a/Src/UsefulControl/SeewoFakeShut.vb +++ b/Src/UsefulControl/SeewoFakeShut.vb @@ -24,29 +24,39 @@ '* Seewo Fake Shutdown UI. * '* * '\*****************************************************/ +Imports System.Runtime.InteropServices + Public Class SeewoFakeShut Public ReTime As Integer - Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click + Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub - Private Sub SeewoFakeShut_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + Private Sub SeewoFakeShut_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ReTime = 10 Label2.Text = "PC已关机 , 确认关闭整机?" & vbCrLf & "系统将在10秒后关闭" Timer1.Enabled = True End Sub - Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick + Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If ReTime = 1 Then Me.Close() Else ReTime = ReTime - 1 Label2.Text = "PC已关机 , 确认关闭整机?" & vbCrLf & "系统将在" & ReTime & "秒后关闭" End If + 'SetWindowPos(Me.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS) End Sub + ' + 'Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As UInteger) As Boolean + 'End Function - Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click + 'Const HWND_TOPMOST = -1 + 'Const SWP_NOSIZE As UInteger = &H1 + 'Const SWP_NOMOVE As UInteger = &H2 + 'Const TOPMOST_FLAGS As UInteger = SWP_NOMOVE Or SWP_NOSIZE + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button1_MouseMove(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseMove