首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当远程桌面会话注销时,如何阻止DLL终止应用程序服务器?

当远程桌面会话注销时,如何阻止DLL终止应用程序服务器?
EN

Stack Overflow用户
提问于 2011-10-09 08:49:12
回答 1查看 683关注 0票数 1

我有一个应用服务器(JBoss,但这也发生在Tomcat中),在Windows 2003中作为服务运行。它使用-Xrs标志运行。

在应用服务器下运行的Java应用程序通过JNI调用一个用C++编写的可定制接口(这意味着我们可以修改这段代码),引用第三方DLL文件来处理图像(林肯用于转换PostScript)。

当我们以控制台(mstsc /console)或管理员(mstsc /admin)模式通过远程桌面连接登录到服务器时,当我们注销时,如果林肯DLL文件已经加载,应用服务器将确认注销信号,服务进程将立即终止而不受影响。

我相信信号是CTRL_LOGOFF,但我可能是错的。

JavaJiggle关于信号处理的文章之后,显然信号处理程序在DLL文件处理时传递给DLL文件。这意味着第三方DLL文件(在本例中为Lincoln)通过注销来侦听和响应CTRL_LOGOFF信号。

我相信,我应该能够在我的C++接口中为DLL编写一个信号捕捉器,以便在CTRL_LOGOFF到达DLL之前拦截它,如果是这样的话,那么当有人从控制台/admin登录时,我们不会经常死掉。

我需要的是:

  1. 我在控制台/管理注销/注销中得到的信号是CTRL_LOGOFF,对吗?
  2. 我可以在C++接口中写一个信号拦截器吗?
  3. 我如何编码信号拦截器,或有预先存在的代码?我正在使用32位DLL.

我找到了微软的文章http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049%28v=vs.85%29.aspx,这可能有助于回答这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 14:21:39

我似乎是通过每次调用第三方DLL时向堆栈添加一个忽略处理程序来解决这个问题的,但我担心每次调用我的方法时,我们都会继续向堆栈中添加处理程序,而且很明显,第三方DLL不会删除它的处理程序。我不知道这是否造成了内存泄漏。

是否有办法防止第三方处理程序被放在第一位?我问了一个后续问题来回答这个问题:https://stackoverflow.com/questions/7747388/how-can-i-prevent-a-3rd-party-dll-from-adding-console-control-handlers-in-windows

下面是我的自定义JNI类方法,它调用第三方DLL文件:

代码语言:javascript
运行
AI代码解释
复制
JNIEXPORT jint JNICALL Java_com_company_ConvertProxy_convertToImageType(JNIEnv *env, jclass cls, jstring input, jstring output) {

    jboolean isCopy;
    inFilename = env->GetStringUTFChars(input, &isCopy);
    outFilename = env->GetStringUTFChars(output, &isCopy);

    // I tried to call SetConsoleCtrlHandler() here, but failed;
    // it turns out third-party code in ConvertImage() also
    // calls SetConsoleCtrlHandler and overrides it if placed here.

    int value = ConvertImage();

    // Deafen Control Logoffs set by third-party ConvertImage.
    // SetConsoleCtrlHandler( NULL, TRUE ); // DOES NOT WORK, must use custom CtrlHandler.
    SetConsoleCtrlHandler( (PHANDLER_ROUTINE) CtrlHandler, TRUE );

    return value;
}

BOOL CtrlHandler( DWORD fdwCtrlType ) {
    switch( fdwCtrlType )
    {
        // Handle the CTRL-C signal.
        case CTRL_C_EVENT:
          return( TRUE );

        // CTRL-CLOSE: confirm that the user wants to exit.
        case CTRL_CLOSE_EVENT:
          return( TRUE );

        case CTRL_BREAK_EVENT:
          return( TRUE );

        case CTRL_LOGOFF_EVENT:
          return( TRUE );

        case CTRL_SHUTDOWN_EVENT:
          return( TRUE );

        default:
          return FALSE;
      }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7704979

复制
相关文章
[Cocos Creator] 围绕物体旋转
在游戏开发过程中,可能会有让一个物体围绕另一个物体旋转的需求,就比如月球围绕着地球旋转,同时地球也在围绕着太阳旋转。
陈皮皮
2020/07/10
3.8K0
[Cocos Creator] 围绕物体旋转
HTML元素
注意:一些 HTML 元素没有内容(如 <br> 元素)。这些元素称为空元素。空元素没有结束标签!
玖柒的小窝
2021/09/24
1.4K0
HTML 元素
注释: 您将在本教程的下一章中学习更多有关属性的内容。 嵌套的 HTML 元素 大多数 HTML 元素可以嵌套(HTML 元素可以包含其他 HTML 元素)。 HTML 文档由相互嵌套的 HTML 元素构成。 HTML 文档实例
用户6884826
2021/07/07
1.3K0
HTML 元素
HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href="default.htm"> 这是一个链接 </a> <br> 换行 HTML 元素语法 HTML 元素以开始标签起始 HTML 元素以结束标签终止 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签中进行关闭(以开始标签的结束而结束) 大多数 HTML 元素可拥有属性
用户8442333
2021/08/21
1.5K0
HTML 元素
Web浏览器(如谷歌浏览器,Internet Explorer,Firefox,Safari)是用于读取HTML文件,并将其作为网页显示。
用户8442333
2021/08/21
1.3K0
Flash:DisplayObject的矩阵旋转(移动/修改注册点,修改旋转点)
简单来说,原理就是利用matrix运算,先把旋转点移到原点位置,旋转变换后再恢复到原来的位置 var a:Sprite = new Sprite(); a.graphics.beginFill(0); a.graphics.drawRect(0,0,100,100); a.graphics.drawCircle(0,0,6); a.graphics.endFill(); addChild(a); a.x = a.y = 100; trace (a.transform.matrix); var m:Matr
用户1258909
2018/07/04
9500
多个扇形元素绕圆旋转
这种效果有很多方案,最后选择了一个比较简单的方案,就是一个position: relative;的 div 。包裹5个position: absolute;的div。 通过旋转,调整5个div的 top 与 left,而产生弧度,并使中心点都指向圆心。 黄色扇形与文字 都是在5个div内部。
拿我格子衫来
2023/10/19
3060
多个扇形元素绕圆旋转
html元素(标签)
html元素(标签) <!DOCTYPE html> <html> <head> <!-- 头标签用于存放<meta><title>等标签 --> <meta charset="utf-8"> <!-- 设置编码 --> <title>html5</title> <!-- 设置标题 --> <link rel="stylesheet" type="text/css" href="mystyle.css"><!-- 定义了外部文件 --> <style type="t
IT架构圈
2018/05/31
2K0
认识html元素
前端现在越来越火,可以用去年热门的词语来形容——“风口上的猪”。希望这个系列的文集能够给“毫无任何基础,但是想转到前端的人”一点帮助。 认识一个html文档的基本结构: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Here is title</title></head><body> Here is content.</body></html> HTML 文档是由 HTML 元素 定义的,而HT
用户1667431
2018/04/18
2.3K0
认识html元素
认识html元素
前端现在越来越火,可以用去年热门的词语来形容——“风口上的猪”。希望这个系列的文集能够给“毫无任何基础,但是想转到前端的人”一点帮助。 认识一个html文档的基本结构: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Here is title</title></head><body> Here is content.</body></html> HTML 文档是由 HTML 元素 定义的,而HT
用户1667431
2018/04/18
2.4K0
认识html元素
HTML DOM - 元素
如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。
陈不成i
2021/07/21
2.3K0
HTML的行元素和块元素
本博客所有文章如无特别注明均为原创。作者:十月梦想 ,复制或转载请以超链接形式注明转自 十月梦想博客 。 原文地址《HTML的行元素和块元素》
十月梦想
2018/08/29
3.4K0
HTML块级元素和行内元素
块级元素(block-level) 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。 常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等, 其中<div>标签是最典型的块元素。 块级元素的特点: (1)总是从新行开始 (2)高度,行高、外边距以及内边距都可以控制。 (3)宽度默认是容器的100% (4)可以容纳内联元素和其他块元素。 行内元素(inline-level) 行内元素(内联元素)不占有独立的区域,仅
秋白
2018/05/24
3.5K0
嵌套的 HTML 元素
<!DOCTYPE html> <html> <body> <p>这是第一个段落。</p> </body> </html>
用户8442333
2021/08/21
2.1K0
html 元素左移右移
Title div{ width: 200px; float: left; text-align: center; } select{ width: 100px; height: 140px; } $(function (){ $("#left button:eq(0)").click(function (){ // alert($
await
2021/09/23
3K0
html 元素左移右移
Title div{ width: 200px; float: left; text-align: center; } select{ width: 100px; height: 140px; } $(function (){ $("#left button:eq(0)").click(function (){ // alert($
await
2021/09/23
2.6K0
cefsharp修改html元素,CefSharp网页元素点击
代码完美地点击了开发人员控制台上的确切按钮,但没有点击CEF。只是出于某种原因忽略了它。。。
全栈程序员站长
2022/10/05
4.3K0
cefsharp修改html元素,CefSharp网页元素点击
HTML锚点
        以前只是知道有锚点这么个东西,一直没有用到,昨天做毕设用到了锚点,现在总结一下控制锚点的几种情况:         1. 在同一页面中 <a name="add"></a><!-- 定
高爽
2017/12/28
3.8K0
【HTML】HTML5 <div>元素布局的使用
标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
梦溪
2021/08/09
4.2K0
JavaScript HTML DOM 元素 (节点)
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
陈不成i
2021/07/20
2.3K0

相似问题

旋转点围绕枢轴点?

12

围绕原点旋转点

20

方法围绕一个点旋转,html画布

10

围绕任意点旋转SKShapeNode

11

围绕轴心点旋转图像

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档