在logout状态运行程序

Linux logout命令教程:如何安全地退出Linux会话(附实例详解和注意事项) logout命令用于退出当前的登录Shell。这个命令可以被普通用户用来结束他们自己的会话。 阅读详情
做成服务,借鉴一篇codeproject得文章
http://www.codeproject.com/KB/system/xyntservice.aspx
在init函数添加定时器
很多病毒也用到这个技术。
  1. void CServiceLoaderDlg::OnBnClickedButtonInstall()
  2. {
  3.     // TODO: 在此添加控件通知处理程序代码
  4.     //GetDlgItemText(IDC_EDIT_SRVNAME, m_srvName);
  5.     SC_HANDLE shMan = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
  6.     if (shMan == 0)
  7.     {
  8.         long nError = GetLastError();
  9.         AfxMessageBox("OpenSCManager failed! Error code = " + nError);
  10.         exit(-1);
  11.     }
  12.     else
  13.     {
  14.         SC_HANDLE shSrv = CreateService(shMan,
  15.                                         (LPCTSTR)m_srvName,
  16.                                         (LPCTSTR)m_srvName,
  17.                                         SERVICE_ALL_ACCESS,
  18.                                         SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS,
  19.                                         SERVICE_AUTO_START,
  20.                                         SERVICE_ERROR_NORMAL,
  21.                                         (LPCTSTR)m_path,
  22.                                         NULL,
  23.                                         NULL,
  24.                                         NULL,
  25.                                         NULL,
  26.                                         NULL);
  27.         if (shSrv == 0)
  28.         {
  29.             long nError = GetLastError();
  30.             AfxMessageBox("CreateService failed! Error code = " + nError);
  31.             exit(-1);
  32.         }
  33.         else
  34.         {
  35.             AfxMessageBox("CreateService SUCCESS!");
  36.             CloseServiceHandle(shSrv);
  37.         }
  38.         CloseServiceHandle(shMan);
  39.     }
  40. }
  41. void CServiceLoaderDlg::OnBnClickedButtonUninstall()
  42. {
  43.     // TODO: 在此添加控件通知处理程序代码
  44.     SC_HANDLE shMan = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
  45.     if (shMan == 0)
  46.     {
  47.         long nError = GetLastError();
  48.         AfxMessageBox("OpenSCManager failed! Error code = " + nError);
  49.         exit(-1);
  50.     }
  51.     else
  52.     {
  53.         SC_HANDLE shSrv = OpenService(shMan, m_srvName, SERVICE_ALL_ACCESS);
  54.         if (shSrv == 0)
  55.         {
  56.             long nError = GetLastError();
  57.             AfxMessageBox("OpenService failed! Error code = " + nError);
  58.             exit(-1);
  59.         }
  60.         else
  61.         {
  62.             if (!DeleteService(shSrv))
  63.             {
  64.                 long nError = GetLastError();
  65.                 AfxMessageBox("DeleteService failed! Error code = " + nError);
  66.                 exit(-1);
  67.             }
  68.             else
  69.             {
  70.                 //AfxMessageBox("Uninstall success");
  71.             }
  72.             CloseServiceHandle(shSrv);
  73.         }
  74.     }
  75.     CloseServiceHandle(shMan);
  76. }
  77. void CServiceLoaderDlg::OnBnClickedButtonStart()
  78. {
  79.     // TODO: 在此添加控件通知处理程序代码
  80.     SC_HANDLE shMan = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
  81.     if (shMan == 0)
  82.     {
  83.         long nError = GetLastError();
  84.         AfxMessageBox("OpenSCManager failed! Error code = " + nError);
  85.         exit(-1);
  86.     }
  87.     else
  88.     {
  89.         SC_HANDLE shSrv = OpenService(shMan, m_srvName, SERVICE_ALL_ACCESS);
  90.         if (shSrv == 0)
  91.         {
  92.             long nError = GetLastError();
  93.             AfxMessageBox("OpenService failed! Error code = " + nError);
  94.             exit(-1);
  95.         }
  96.         else
  97.         {
  98.             if (!StartService(shSrv, NULL, NULL))
  99.             {
  100.                 long nError = GetLastError();
  101.                 AfxMessageBox("StartService failed! Error code = " + nError);
  102.                 exit(-1);
  103.             }
  104.             else
  105.             {
  106.                 CloseServiceHandle(shSrv);
  107.             }
  108.         }
  109.         CloseServiceHandle(shMan);  
  110.     }
  111. }
  112. void CServiceLoaderDlg::OnBnClickedButtonStop()
  113. {
  114.     // TODO: 在此添加控件通知处理程序代码
  115.     SC_HANDLE shMan = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
  116.     if (shMan == 0)
  117.     {
  118.         long nError = GetLastError();
  119.         AfxMessageBox("OpenSCManager failed! Error code = " + nError);
  120.         exit(-1);
  121.     }
  122.     else
  123.     {
  124.         SC_HANDLE shSrv = OpenService(shMan, m_srvName, SERVICE_ALL_ACCESS);
  125.         if (shSrv == 0)
  126.         {
  127.             long nError = GetLastError();
  128.             AfxMessageBox("OpenService failed! Error code = " + nError);
  129.             exit(-1);
  130.         }
  131.         else
  132.         {
  133.             SERVICE_STATUS status;
  134.             if (!ControlService(shSrv, SERVICE_CONTROL_STOP, &status))
  135.             {
  136.                 long nError = GetLastError();
  137.                 AfxMessageBox("StartService failed! Error code = " + nError);
  138.                 exit(-1);
  139.             }
  140.             else
  141.             {
  142.                 CloseServiceHandle(shSrv);
  143.             }
  144.         }
  145.                 CloseServiceHandle(shMan);
  146.     }
  147. }
  148. void CServiceLoaderDlg::OnTimer(UINT nIDEvent)
  149. {
  150.     // TODO: 在此添加消息处理程序代码和/或调用默认值
  151.     CTime current;
  152.     if (nIDEvent == 1)
  153.     {
  154.         if (current.GetCurrentTime().GetHour() == 22 && current.GetCurrentTime().GetMinute() == 40)
  155.         {
  156.             /*AfxMessageBox("good");*/
  157.             this->OnBnClickedButtonStart();
  158.         }
  159.     }
  160.     CDialog::OnTimer(nIDEvent);
  161. }
  162. void CServiceLoaderDlg::OnDestroy()
  163. {
  164.     CDialog::OnDestroy();
  165.     // TODO: 在此处添加消息处理程序代码
  166.     this->OnBnClickedButtonStop();
  167. }

Spring Authorization Server登出功能详解:从/logout到/connect/logout,再到/oauth2/revoke,一篇讲透 本文深入解析Spring Authorization Server的三种登出机制:/logout、/connect/logout和/oauth2/revoke,详细阐述其设计原理、实现方式及适用场景。通过对比分析和实战示例,帮助开发者掌握如何在Spring Security和OAuth2/OIDC协议下实现安全、高效的登出功能,特别适合需要构建微服务安全体系的架构师和开发者。 阅读详情

相关推荐

同一个 Chrome 里登录 SAP S/4HANA 后,一个窗口 logout,另一个窗口还能不能继续操作

摘要:在SAP S/4HANA Cloud环境中,Chrome浏览器多个窗口共享同一套登录状态,因为它们在相同profile下共用cookie和站点数据。点击一个窗口的登出后,另一个窗口看似仍保持登录状态,但实际已失效,刷新或发起新请求时会要求重新认证。这涉及多层会话清理问题:Fiori前端会话、后端ABAP会话和身份提供商(如SAP IAS或企业IdP)的SSO会话。若登出未彻底清理所有层级的会话(尤其是企业IdP或后端系统cookie),可能导致第二个窗口仍能短暂访问。SAP文档指出需要配置完整的登出链

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1718

c语言logout_Windows窗体C语言

评论内容较长,点击标题查看--lees vloerlamp评论内容较长,点击标题查看--http://www.pinsaguelbc.frI was going through a big loss in my online business but since.--http://www.sosirradies31.fr$Locale = setlocale (LC_ALL, $_SESSION[...

weixin_39544101的博客 156

TMC22系列步进电机驱动设计:从静音原理到硬件实战

步进电机驱动是运动控制系统的核心,其性能直接影响设备的精度、噪音和效率。传统驱动方案如A4988采用方波控制,存在转矩脉动大、运行噪音高等问题。而高性能驱动通过优化电流波形与切换策略,从根本上提升了运动质量。其中,**StealthChop2**技术通过同步MOSFET开关与电机反电动势过零点,实现了近乎无声的低速运行;**SpreadCycle**模式则通过逼近正弦波的电流调节,优化了中高速动态性能。这些技术为3D打印机、CNC机床、自动化设备等对静音和精度有要求的场景提供了关键解决方案。本文以广泛应用的

weixin_31858171的博客 353

怎样在从服务器 log out 之后继续运行程序

一般来说,通过终端连接到 Linux服务器上运行服务器的程序,如果终端和服务器之间的连接断开的话,通过该终端启动的服务器程序也会相应的终止运行。如果想要程序在用户从服务器注销之后继续运行,我们可以使用nohup 命令来做到这一点。通过 nohup 启动的程序,将会忽略系统的挂起(hangup)信号,也就能够使得程序会在用户注销之后依然在后台运行下去。

I SEE STARS 2305

基于MATLAB的基本数字调制解调系统的设计

基于MATLAB的基本数字调制解调系统的设计一、摘要现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向。本文以MATLAB为软件平台,充分利用其提供的通信工具箱和信号处理工具箱中的模块,对数字调制解调系统进行Simulink设计仿真,并且进行误差分析。调制与解调是通信系统中十分重要的一个环节,针对不同的信道环境选择不同的调制与解调方式可...

m0_55395440的博客 5550

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和LWIP搞定RMII以太网(附复位与PHY地址避坑指南)

本文详细解析了STM32F407与LAN8720通过RMII接口实现以太网通信的完整流程,重点解决了网口不通的常见问题。从硬件连接到CubeMX配置,再到LWIP网络参数设置,提供了复位时序、PHY地址配置等关键细节的避坑指南,帮助开发者快速排查和解决以太网通信故障。

weixin_33695082的博客 419

录制Flight程序登录的脚本

选中导出的共享对象库。

onlywishes的博客 1286

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 808

简单而有用的nohup命令

转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html 2005年04月18日 简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。 要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普...

weixin_30466039的博客 536

CTF全能工具箱ProV2:集成AI与94GB离线资源库,打造无网环境下的智能解题流水线

CTF全能工具箱ProV2是一款专为线下CTF比赛设计的All-in-One离线解决方案。它集成了94GB的庞大离线资源库,涵盖Web、逆向、Pwn等全方向工具链与知识库,并创新性地内置了本地AI大模型,可在断网环境下提供智能解题辅助,实现从信息收集到漏洞利用的智能流水线作业,极大提升比赛效率。

weixin_29240343的博客 424

C#实战:5分钟搞定西门子S7-1200 PLC数据读写(S7netplus保姆级教程)

本文详细介绍了如何使用C#和S7netplus库快速实现与西门子S7-1200 PLC的数据读写。从环境准备、连接管理到数据读写高级技巧,提供了保姆级教程和实战方案,帮助开发者绕过常见陷阱,提升工业自动化项目的开发效率。

weixin_28432777的博客 283

状态保持login()和状态清除logout()

如果需求是注册成功后即表示用户认证通过,那么此时可以在注册成功后实现状态保持 login( ) 方法介绍: 状态保持: 将通过认证的用户的唯一标识信息(比如:用户ID)写入到当前 session 会话中 login( ) 方法: Django 用户认证系统提供了 login() 方法 封装了写入 session 的操作,帮助我们快速实现状态保持 login( ) 位置: django....

weixin_30797199的博客 667

C# 开发实战:深度解析 13.56MHz 射频卡读写应用

本文详细介绍了如何在 C# 环境下开发 13.56MHz 射频卡的读写应用。通过 ACR122U 作为硬件设备,结合 C# 提供的 COM 组件或 SDK,我们能够实现对射频卡的读取与写入功能。在实际开发中,开发者还需要根据具体应用场景选择合适的卡片类型与设备,并注意性能优化和异常处理。随着技术的发展,RFID 技术的应用场景会越来越广泛,开发者可以根据不同需求,灵活扩展读写功能,实现更加智能化和自动化的系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1602

Spring Security/logout请求默认跳转到/login?logout解决方案

spring security logout请求 重定向

weixin_55658418的博客 4418

YOLOV12进阶:MSDA多尺度空洞注意力机制解析与实战,突破检测尺度瓶颈

在目标检测中,“尺度差异”是个老大难问题——大目标占据画面大半,小目标可能只有几个像素,普通模型很难同时精准检测。而MSDA(Multi-Scale Dilated Attention,多尺度空洞注意力)就像给模型配备了“变焦眼镜”,能同时关注不同尺度的目标,让YOLOV12在大、中、小目标检测上都能表现出色。这篇教程会带你从原理到实操,掌握这个强大的注意力机制,让你的检测模型真正“通吃”各种尺度的目标。MSDA的“多尺度空洞注意力”设计,是目标检测突破尺度瓶颈的关键一步。

know_F0727的博客 264

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

django登陆登出login和logout

login和logout函数 首先这两个都是对session操作的,也就是操作redis,所以返回的要么是空,要么成功,不会出现异常 login的用法:需要传入request和user对象,貌似不会返回。。 logout的用法:只需要传入一个request对象就行,就会把当前用户的session清除 cookie的设置+ 清除<====>必须先获取response...

qq_19663697的博客 5285

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux的time命令-我们可以了解地更多以及linux中的退出命令exit与logout命令的区别

上面使用的是shell内建的time命令,直接运行time命令时是调用的系统内建命令,内建time的功能很有限,比如不能重定向输出到日志中,如果需要使用time的更多功能,可以使用time命令的可执行二进制文件,下面使用type -a time查看并看一下time二进制文件的选项功能。1,从上面的执行过程可以看到,每次执行exit后面都跟着执行了一次logout,可以认为在命令行下执行的exit就是先进行了一些任务结束,最后执行logout,基本和logout没有什么差别。为了隔离保护,使得系统更稳定。

本博客记录了从2014年以来在工作学习中遇到的技术问题、解决方法以及部分个人人生经历、经验等内容。 1256

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

认证三剑客之 logout 函数使用

本教程深入解析 Django `logout()` 函数的会话清理机制、安全配置及扩展场景,提供从基础实现到企业级方案的全流程指导,助力开发者构建安全的用户退出系统。

YAnt的博客 849

Linux命令:logout

Linux命令:logout

闲余知道 441

linux:logout,shudown,reboot(注销,关机,重启)

一、注销,关机,重启   注销系统的logout命令   1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:   [root@localhost root]#logout   Red Hat Linuxrelease 9(Shike)   Kernel 2.4.20.8 on an i686   Logi...

bee100的专栏 770

Logout: 究竟用GET还是POST?

ReSTful风格api设计中,遇到了一个问题 logout究竟用get还是post? 理论上来说logout安全(logout没有改变服务器状态,只是改变了session)且幂等,应该是get但是用get在2010年前可能是正确答案,只不过现在的浏览器普遍具备pre load(预加载)功能,用get就悲剧了so,post吧

crystal_tyan 3080

【Shell 命令集合 系统管理 】Linux 注销当前登录的用户 logout命令 使用指南

logout命令用于注销当前登录的用户。它会终止当前用户的会话并返回到登录界面或者重新登录。当使用logout命令时,系统会关闭所有与当前用户相关的进程和程序,并释放占用的资源。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 4353

【Linux】一步一步学Linux——logout命令(209)

00. 目录 文章目录00. 目录01. 命令概述02. 命令格式03. 常用选项04. 参考示例05. 附录 01. 命令概述 logout指令退出一个登录 shell,其功能和login指令相互对应。 02. 命令格式 用法:logout [n] 03. 常用选项 --help 在线帮助 --vesion 显示版本信息 04. 参考示例 4.1 退出一个登录 shell [deng@loc...

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 2764

spring security3 (二)remember-me 和logout功能

1. logout功能比较简单,只需要先在http标签中加上: 然后再将logoutFilter的bean配置在下面:     class="org.springframework.security.web.authentication.logout.LogoutFilter">                          class="org.springfram

wanglin811的专栏 5174
上一篇: CString使用
下一篇: mplayer下载mms
gnuser
博客等级 码龄20年 35粉丝 141原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值