怎样使程序的“否关闭计算机”的对话框。点是和否都不会关闭计算机?
还有就是程序每次登录密码输入错误三次后也会自动关机?说白了,就是不想让程序自带的任何关机功能实现!
望采纳!!!
要使程序的“否关闭计算机”对话框不会关闭计算机,你可以尝试以下方法:
1.找到程序的关闭计算机代码,将其注释掉或删除。这可能需要您对程序的源代码进行修改。
2.在系统设置中禁用计算机的关闭功能。您可以在“开始”菜单的“设置”中找到“电源和休眠”设置,在其中禁用“关闭计算机”功能。
3.在注册表中禁用关闭计算机。您可以使用注册表编辑器修改注册表来禁用关闭计算机功能。
然后是要使程序在登录密码输入错误三次后不会自动关机,你可以试试:
1.找到程序的关闭计算机代码,将其注释掉或删除。
2.修改程序的密码验证代码,使其不会在输入错误的密码次数达到一定值时关闭计算机。
请详细说一下,你的需求 --- 计算机要关机,一方面是要重启动,另一方面是要关机。 这两个需求你都不让它发生么?
如果你想要禁用计算机的关机功能,你可以使用 Windows 的关机禁止注册表项。你可以使用以下步骤来禁用关机功能:
在 Windows 搜索栏中输入 "regedit" 并打开注册表编辑器。
导航到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
在右侧窗格中右键单击空白处,然后选择 "新建"->"DWORD (32 位) 值"。
将新建的值命名为 "NoClose"。
双击 "NoClose" 并将其值设置为 1。
这样,当你点击 "开始" 菜单中的 "关机" 按钮时,系统就不会关闭。
如果你想要禁用程序内置的关机功能,你可以查看程序的代码,并找出关机功能相关的代码,然后删除或修改这些代码。比如,如果程序中使用了 exit() 函数来退出程序并关闭计算机,你可以删除这行代码或者将其注释掉。
主要分为以下步骤:
1、点击’win+L‘来锁定计算机,这样既能防止他人窥探个人当前工作状态,又可以阻止他人乱动。【这里别人还是可以关闭你的计算机,所以还需执行下面的操作】
2、禁止关闭计算机,点击开始-运行-CMD-输入GPEDIT.MSC,回车,打开组策略编辑器。
3、依次展开如下:计算机配置-Windows设置-安全设置-本地策略-安全选项
4、在右侧窗格中找到【关机】:允许在未登录前关机的选项,双击
5、在弹出的属性对话框中将其属性设置改为’已禁用‘,点击确定并关闭组策略编辑器
如果想要不能在开始--->关闭计算机,里面关机的话,可以尝试:
1、打开注册表编辑器
2、打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer分支。
3、右击右窗口,然后从“新建”菜单中选择“DWORD值”,则在Explorer子键中将添加了一个新键值名“Newvalue#1”,然后将新键值名更改为“NoClose”。
4、 双击“NoClose”,然后在“编辑DWORD值”对话框的“键值”框中输入1。
5、单击“确定”按钮,然后关闭注册表编辑器窗口。
6、 重启后生效
如果想令关机键消失的话可以参考:
[](https://baijiahao.baidu.com/s?id=1553502775408693&wfr=spider&for=pc
直接拦截忽略点击信息不就ok了,自己的程序,怎么处理还不是自己说了算
这个是需要修改windows操作系统自带的默认设置,需要找到对应的注册表 ,把对应的事件属性值进行设置为和是一样就行了
如果想禁用程序的关机功能,可以通过以下步骤来做到这一点:
1、使用管理员权限运行记事本。
2、在记事本中输入以下内容:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableShutdown /t REG_DWORD /d 1 /f
3、保存记事本,然后将其另存为“disable_shutdown.reg”(注意要选择所有文件类型)。
4、双击这个文件运行它。这会将禁用关机注册表值添加到注册表中,从而禁用关机。
仅供参考,望采纳,谢谢。
你这想要的是逆向修改程序代码去掉关机功能。一般是调用 ExitWindowsEx函数关机,把代码里调用该函数的地方nop掉,前提程序没加壳什么的。
又或者程序调用shutdown命令关机,可以用火绒等阻止调用。
如果是32位系统,pchunter配置选项里可以勾选禁止关机。
弹对话框的方法当然是让框架实现WindowListener,注意不是WindowsListener,然后重写windowClosing()方法,让窗口在正在关闭的时候弹一个窗口。
一个窗口:
int answer = JOptionPane.showConfirmDialog(this, "blah", "blah", JOptionPane.YES_NO_OPTION);
注意对话框是要静态引用的,不需要new一个JOptionPane出来。
后面用answer来if一下就不用说了,都是静态属性,YES_OPTION,NO_OPTION,CANCEL_OPTION,之类之类的。
然后Yes就System.exit(0)。
不过No,或者说else要单独说一下,单纯return的话因为框架已经在关闭中了,关掉对话框框架还是会继续关闭,所以我们要打断它。
打断狗腿:
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
半路给它set一下。
据我观察,直接在框架初始化的时候设置是没用的,大概这个方法是一次性的吧。
于是顺道介绍一下setDefaultCloseOperation()这个方法。
参数里面有几个选项可选:
1. EXIT_ON_CLOSE:关闭时调用System.exit(),整个关闭虚拟机,也就是说整个进程都结束掉了,应该用在最外面的,也就是主框架上。
2. HIDE_ON_CLOSE:隐藏框架,依然保留在内存里,没实际使用过,大概在别处setVisible()一下就可以让它显示出来。
3. DISPOSE_ON_CLOSE:处置(?)框架,取消框架显示的同时释放掉框架所占资源,和HIDE的区别是能释放内存,进程还会继续运行,可以用于子窗口。
4. DO_NOTHING_ON_CLOSE:顾名思义,什么也不干,设置成这个的话不管怎么点叉都关不掉。
如果您想在程序中禁用“否关闭计算机”对话框,以及登录密码输入错误三次后自动关机的功能,您可以尝试以下方法:
在程序中禁用关闭计算机的功能:
您可以在程序中禁用系统关机功能,从而防止程序中出现“否关闭计算机”对话框。例如,您可以使用以下代码来禁用关机功能:
private const int SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
private static void DisableShutdown()
{
try
{
// 获取当前进程的进程身份
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
// 判断当前进程是否具有 SeShutdownPrivilege 权限
if (principal.IsInRole(WindowsBuiltInRole.Administrator))
{
// 获取 SeShutdownPrivilege 权限的 LUID
var token = identity.Token;
var luid = new Luid();
if (LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref luid))
{
// 获取当前进程的权限表
var privileges = new TokenPrivileges();
if (GetTokenInformation(token, TokenInformationClass.TokenPrivileges, ref privileges, Marshal.SizeOf(privileges), out var length))
{
// 将 SeShutdownPrivilege 权限设为禁用
var found = false;
for (int i = 0; i < privileges.PrivilegeCount; i++)
{
if (privileges.Privileges[i].Luid.LowPart == luid.LowPart &&
privileges.Privileges[i].Luid.HighPart == luid.HighPart)
{
privileges.Privileges[i].Attributes = 0;
found = true;
break;
}
}
if (found)
{
// 修改权限表
AdjustTokenPrivileges(token, false, ref privileges, Marshal.SizeOf(privileges), IntPtr.Zero, IntPtr.Zero);
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
这段代码使用了 P/Invoke 技术,调用了 Windows API 函数来禁用 SeShutdownPrivilege 权限,从而禁用关机功能。要使用这段代码,您需要在程序中引入以下命名空间:
using System.Runtime.InteropServices;
using System.Security.Principal;
然后,您可以在程序启动时调用 DisableShutdown() 函数,来禁用关机功能。
对于登录密码输入错误三次后自动关机的功能,您可以在注册表中修改相应的配置项,来禁用该功能。
您可以在注册表中找到以下配置项:
在这些配置项下,您可以找到“ShutdownWithoutLogon”和“AutoAdminLogon”的值。
如果您想禁用登录密码输入错误三次后自动关机的功能,您可以将“ShutdownWithoutLogon”的值设为“0”,并将“AutoAdminLogon”的值设为“0”。
您也可以使用以下代码来修改注册表配置:
private static void DisableAutoShutdown()
{
try
{
// 禁用关机功能
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ShutdownWithoutLogon", 0, RegistryValueKind.DWord);
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "AutoAdminLogon", 0, RegistryValueKind.DWord);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
这段代码使用了 .NET Framework 的 Registry 类,来修改注册表配置。您可以在程序启动时调用 DisableAutoShutdown() 函数,来禁用登录密码输入错误三次后自动关机的功能。
我希望这些方法能够帮助您解决问题。如果您有任何疑问,请随时告诉我。望采纳。