让程序在Windows启动时自动运行并自动隐藏

 
CString strAppName  =  _T( " AppName " );                 //  应用程序名
CString strAppPath  =  _T( "
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序适用范围: 1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows Recovery Environment)菜单丢失 b.BCD引起的win7/2008r2的3D启动画面丢失(变成VISTA滚动条启动画面) c.BCD引起的启动菜单选择界面乱码现象 d.为VISTA/2008添加修复计算机(Windows Recovery Environment)菜单,使用方法:在系统盘符中新建recovery文件夹,再把光盘或安装程序中的sources\boot.wim(这个文件是否改名为winre.wim随意)和boot\boot.sdi两个文件复制至recovery文件夹,再运行程序,即可自动添加。 e.不明原因的启动菜单丢失 090412更新: f.系统BCD非法的强制修复,现象:VISTA/2008/WIN7中-- 运行msconfig后“启动”(BOOT)栏空白 管理员身份运行命令提示符中后运行bcdedit等和BCD相关的操作提示出错 系统属性的“启动和故障恢复”窗口无法配置“默认操作系统”和等待时间 其它软件无法添加BCD管理的新启动菜单 注:这种情况是否要强制修复自行决定。 使用方法: 非安装软件,直接运行,可运行于32位和64位系统或光盘WINPE系统。程序以盘符形式搜索系统,因此得确保你要添加的系统分区别被隐含盘符。 090416更新:增加支持繁体中文系统 090417:修正一些流程,改版本号V1.0 可以添加修复Vista/2008/Win7启动菜单,在满足条件的情况下也可以添加修复2000/xp/2003启动菜单。例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista多系统启动菜单,反过来在vista中运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/ntdetect.com/boot.ini)已存在活动分区且活动分区不被隐藏盘符的情况才会添加(当xp菜单不符合条件而无法添加时,如xp菜单已在原多系统菜单中存在,不会影响已存在的xp启动菜单项)。 程序正确运行后,如果有原始BCD启动配置,将备份在c:\autofix下,以bcdbackup1命名方式,多次运行则数字累加.c:\autofix下的autofix.log是程序运行纪录文件.纪录文件内容仅供参考。 没有启动菜单故障的朋友就不要运行程序
程序适用范围: 1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows Recovery Environment)菜单丢失 b.BCD引起的win7/2008r2的3D启动画面丢失(变成VISTA滚动条启动画面) c.BCD引起的启动菜单选择界面乱码现象 d.为VISTA/2008添加修复计算机(Windows Recovery Environment)菜单,使用方法:在系统盘符中新建recovery文件夹,再把光盘或安装程序中的sources\boot.wim(这个文件是否改名为winre.wim随意)和boot\boot.sdi两个文件复制至recovery文件夹,再运行程序,即可自动添加。 e.不明原因的启动菜单丢失 可以添加修复Vista/2008/Win7启动菜单,在满足条件的情况下也可以添加修复2000/xp/2003启动菜单。例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista多系统启动菜单,反过来在vista中运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/ntdetect.com/boot.ini)已存在活动分区且活动分区不被隐藏盘符的情况才会添加(当xp菜单不符合条件而无法添加时,如xp菜单已在原多系统菜单中存在,不会影响已存在的xp启动菜单项)。
您可以使用Windows API来检测其他应用程序是否全屏,并相应地隐藏您的窗体。以下是一个VB.NET示例: 首先,请确保在代码文件的顶部添加以下命名空间: ```vb.net Imports System.Runtime.InteropServices ``` 然后,您需要声明以下两个Windows API函数: ```vb.net Private Declare Function GetForegroundWindow Lib "user32" () As IntPtr Private Declare Function GetWindowPlacement Lib "user32" (ByVal hWnd As IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean <Serializable, StructLayout(LayoutKind.Sequential)> Public Structure WINDOWPLACEMENT Public Length As UInteger Public flags As UInteger Public ShowCmd As UInteger Public ptMinPosition As POINTAPI Public ptMaxPosition As POINTAPI Public rcNormalPosition As RECT End Structure <Serializable, StructLayout(LayoutKind.Sequential)> Public Structure RECT Public Left As Integer Public Top As Integer Public Right As Integer Public Bottom As Integer End Structure <Serializable, StructLayout(LayoutKind.Sequential)> Public Structure POINTAPI Public x As Integer Public y As Integer End Structure ``` 接下来,在窗体加载时,您可以使用以下代码来轮询其他应用程序是否全屏,并相应地隐藏您的窗体: ```vb.net Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Timer1.Interval = 100 ' 每100毫秒检查一次 Timer1.Enabled = True End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick Dim hWnd As IntPtr = GetForegroundWindow() Dim wp As WINDOWPLACEMENT = Nothing wp.Length = CUInt(Marshal.SizeOf(wp)) GetWindowPlacement(hWnd, wp) If wp.ShowCmd = 3 Then ' 如果前台窗口是全屏状态 Me.Hide() ' 隐藏本窗口 Else Me.Show() ' 显示本窗口 End If End Sub ``` 这将启动一个计时器,每100毫秒检查一次前台窗口是否全屏。如果是,您的窗体将被隐藏。否则,您的窗体将被显示。请注意,此方法可能会影响您的应用程序的性能,因为它需要在后台运行,并且需要定期轮询其他应用程序。如果您的应用程序需要更高的性能,请考虑其他方法,例如使用Windows消息循环来检测全屏状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值