精华内容
下载资源
问答
  • 最开始是想写一个windows服务程序,主要功能是以10分钟为间隔,遍历当前正在运行的程序主窗口标题,发现指定的程序时将其关闭。但是在执行过程,只能获取到当前正在运行的进程名,无法获取到主窗口标题。经过好几...
  • WPF退出当前应用程序

    千次阅读 2013-05-20 21:23:57
    很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是有一个Exit的事件驱动,在WPF应用程序里面关闭程序...

     很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多:

    在WPF应用程序的关闭是有ShutdownMode属性设置,具有3中枚举类型的值:

    1)OnLastWindowClose 应用程序最后一个窗体关闭时关闭应用程序

    2)OnMainWindowClose 应用程序主窗体关闭时关闭应用程序

    3)OnExplicitShutdown   显示调用关闭

    在OnExplicitShutdown模式下必须显示调用Application实例的ShutDown方法

    例如:Application.Current.Shutdown(-1);这里Application.Current返回当前应用程序的当前Application实例

             注意以上不适应XBAP,XBAP在浏览器关闭时自动关闭。


    在许多子窗体中关闭整个程序:

    winform实现:Application.Exit();

    WPF实现:Application.Current.Shutdown();


     另外,还有一种强制终止应用程序进程的方法

    Environment.Exit(0)可以立即中断程序执行并退出

    这个方法用起来的感觉类似在任务管理器里找到进程并终止,即立刻关闭进程,不管该进程目前有没有工作,在做什么工作。

    在WPF中调用该方法即立即退出,不会等待当前工作完成。

    展开全文
  • Finder工具栏应用程序可在终端打开当前目录。 它是用Objective-C编写的,并使用脚本桥,因此速度很快。 它也是不可知的。 当您的外壳是bash或fish或zsh时,效果也一样好。 由Jay Tuley 用法: 下载 要将“ ...
  • 在实际应用时,修改了系统的某些设置,必须重新启动WINDOWS;而有些时候演示完一个软件后,必须关闭WINDOWS;...重新启动WINDOWS,关闭WINDOWS,结束当前的用户进程都是通过调用EXITWINDOWSEX函数实现的.该函数有两个参数,前

    在实际应用时,修改了系统的某些设置,必须重新启动WINDOWS;而有些时候演示完

    一个软件后,必须关闭WINDOWS;同时在演示期间,又禁止用户强行关闭WINDOWS.如何

    解决上述问题,笔者编制了一个程序全面地解决了上述问题.

    实现原理:

    1.重新启动WINDOWS,关闭WINDOWS,结束当前的用户进程都是通过调用

    EXITWINDOWSEX函数实现的.该函数有两个参数,前一个参数使用EWX_FORCE表示

    强行关闭WINDOWS而不提醒保存其他应用程序的运行结果,后一个参数EWX_LOGOFF

    表示注销当前的用户进程; EWX_SHUTDOWN表示关闭WINDOWS; EWX_REBOOT表示

    重新启动WINDOWS.

    2.禁止关闭WINDOWS是通过关闭WINDOWS98,系统向各应用程序发送的一个

    消息wm_queryendsession,通知各应用程序要关机了,如反馈回来的消息值为0,那么就不能

    关闭WINDOWS98.

    Image4.gif 1

    应用实例:

    建立含有如下控件的窗体:

    控件 控件名 CAPTION

    窗体 FORM1 重新启动WINDOWS系统

    复选框 CHECKBOX1 强行结束当前的用户进程

    复选框 CHECKBOX2 强行关机

    复选框 CHECKBOX3 强行重新启动机器

    复选框 CHECKBOX4 禁止关机

    复选框 CHECKBOX5 退出

    2.程序清单:

    unit CLSW;

    interface

    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;

    type

    TForm1 = class(TForm)

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    CheckBox3: TCheckBox;

    CheckBox4: TCheckBox;

    CheckBox5: TCheckBox;

    procedure CheckBox1Click(Sender: TObject);

    procedure CheckBox2Click(Sender: TObject);

    procedure CheckBox3Click(Sender: TObject);

    procedure CheckBox5Click(Sender: TObject);

    private

    procedure wmqueryendsession(var msg:TMessage);

    message wm_queryendsession;

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.CheckBox1Click(Sender: TObject);

    var EWX_LOGOFF,EWX_FORCE:integer;

    begin

    EWX_LOGOFF:=0;

    EWX_FORCE:=4;

    EXITWINDOWSEX(EWX_FORCE OR EWX_LOGOFF,0);

    end;

    procedure TForm1.CheckBox2Click(Sender: TObject);

    var EWX_SHUTDOWN,EWX_FORCE:integer;

    begin

    EWX_SHUTDOWN:=1;

    EWX_FORCE:=4;

    EXITWINDOWSEX(EWX_FORCE OR EWX_SHUTDOWN,0);

    end;

    procedure TForm1.CheckBox3Click(Sender: TObject);

    var EWX_REBOOT,EWX_FORCE:integer;

    begin

    EWX_REBOOT:=2;

    EWX_FORCE:=4;

    EXITWINDOWSEX(EWX_FORCE OR EWX_REBOOT,0);

    end;

    procedure TForm1.wmqueryendsession(var msg: TMessage);

    begin

    if checkbox4.checked then

    msg.result:=1

    else

    msg.result:=0;

    end;

    procedure TForm1.CheckBox5Click(Sender: TObject);

    begin

    close;

    end;

    end.

    以上程序在WINDOWS 98DEPHI 4.0环境中运行通过.

    展开全文
  • QSettings 提供保存应用程序当前设置的接口,可以方便地保存程序的状态,例如窗口大小和位置,选项的选中状态等等。 在 Windows 系统,程序程序的状态信息记录在注册表;在 Mac OS X 系统上,这些...


    保存应用程序设置(QSettings)

    1.   QSettings 类

    • QSettings 提供保存应用程序当前设置的接口,可以方便地保存程序的状态,例如窗口大小和位置,选项的选中状态等等。

    • 在 Windows 系统中,程序程序的状态信息记录在注册表中;在 Mac OS X 系统上,这些信息记录在 XML 配置文件中;在 Unix 系统中,则使用 INI text 文件记录。QSettings 则是对这些技术的一个抽象,使得保存和取得应用程序的设置状态的只得独立于操作系统。

    • QSettings 的 API 是基于 QVariant 类,当创建一个 QSettings 对象时,必须传递公司或组织的名称(QString)和应用程序的名称(QString)用于构造一个 QSettings 对象。

    2.   使用 QSettings

    (1)构造一个 QSettings 对象

    • QSettings settings("MySoft", "Star Runner") ;

    (2)添加一个设置到 settings 中

    • 程序的设置是以“key-value”的形式,保存在 QSettings 对象中的。其中,key 由一个 QString 类型定义,value 是由 QVariant 类型定义:

    • settings.setValue( "editor/wrapMargin", 68 ) ;

             /*  wrapMargin 是一个子 key

             /*  如果存在相同的 key,那么已存在的 key 所对应的值将由新值代替

    (3)从 setttings 中取出设置

    • 同时也可以通过 key 从 settings 中取出值:

    • int margin = settings.value( "editor/wrapMargin").toInt( ) ;

    3.   QSettings 的组织方式

    (1)用“/”表示子 key

    • QSettings 存储状态信息的形式是 key-value,其中 key 与文件路径这个概念是类似的,subkey 可以用定义文件路径的形式定义,例如 findDialog/ matchCase,其中 matchCase 就是一个 subkey;

    (2)使用 beginGroup( ) 和 endGroup( ) 

    • void QSettings : : beginGroup( const QString &prefix ) 的作用是在当前的 group 后面加上 prefix。当前的 group 自动加到一个 QSettings 对象的尾部:

    settings.beginGroup("mainwindow") ;

    settings.setValue("size", win->size( ) ) ;

    settings.setValue("fullScreen", win->isFullScreen( ) ) ;

    settings.endGroup( ) ;

    settings.beginGroup("outputpanel") ;

    settings.setValue("visible", panel->isVisible( ) ) ;

    settings.endGroup( ) ;

    • 这样设置后,当前的 settings 对象看上去应该是这样的层次结构:

    mainwindow/ size

    mainwindow/ fullScreen

    outputpanel/ visible

    (3)取得 key 与子 key

    • QStringList QSettings : : childKeys( ) const 函数返回所有顶层 keys,组成一个 QStringList 作为一个返回值。例如:

    QSettings settings ;

    settings.setValue("fridge/color", Qt::white) ;

    settings.setValue("fridge/size", QSize(32, 96) ) ;

    settings.setValue("sofa", true) ;

    settings.setValue("tv", false) ;

    QStringList keys = settings.childKeys( ) ;

    • 那么这个 keys 中看上去应该是这样的:

    • keys: [ "sofa", "tv" ]

    • QStringList QSettings : : childGroups ( ) const 是返回所有包含有 key 的顶层 groups,组成一个 QStringList 作为返回值:

    QSettings settings ;

    settings.setValue("fridge/color",Qt::white); 

    settings.setValue("fridge/size",QSize(32,96)); 

    settings.setValue("sofa",true); 

    settings.setValue("tv",false);

    QStringList groups = settings.childGroups() ;

    • 则 groups 看上去是:

    • groups : [ "fridge" ]

    4.   保存和取得程序的设置

    (1)在主窗口的构造函数中,readSettings( )

    void MainWindow::readSettings()
    {
       QSettings settings("Software Inc.", "Spreadsheet");   // 写入与读取的 settings 要一致
       restoreGeometry(settings.value("geometry").toByteArray());
       recentFiles = settings.value("recentFiles").toStringList();
       updateRecentFileActions();
       bool showGrid = settings.value("showGrid", true).toBool();
       showGridAction->setChecked(showGrid);
       bool autoRecalc = settings.value("autoRecalc", true).toBool();
       autoRecalcAction->setChecked(autoRecalc);

    }

    (2)在关闭主窗口时,writeSettings( )

    void MainWindow::writeSettings()
    {
       
    QSettings settings("Software Inc.", "Spreadsheet");
       settings.setValue("geometry", saveGeometry());
       settings.setValue("recentFiles", recentFiles);
       settings.setValue("showGrid", showGridAction->isChecked());
       settings.setValue("autoRecalc", autoRecalcAction->isChecked());
    }

    /* 这里选择 4 个状态进行保存

    展开全文
  • 原理:Windows 在注销、重起、关机之前会向每个当前正在运行的应用程序发送WM_QUERYENDSESSION消息,如果该应用程序方便关闭的话,则在此消息的消息响应函数OnQueryEndSession()返回非0值(TRUE),否则返回0值...

    原理:

    Windows 在注销、重起、关机之前会向每个当前正在运行的应用程序发送WM_QUERYENDSESSION消息,如果该应用程序方便关闭的话,则在此消息的消息响应函数OnQueryEndSession()中返回非0值(TRUE),否则返回0值(FALSE)。如果当前系统正在运行的应用程序全部返回非0值,则Windows的注销、重起、关机过程继续下去,并且向所有运行的应用程序发送WM_ENDSESSION消息,并且消息参数为TRUE;如果当前系统正在运行的应用程序其中之一返回0值,则Windows的注销、重起、关机过程被终止,并且不再继续对剩余的应用程序调用OnQueryEndSession()消息响应函数,而是向已经调用过了OnQueryEndSession()消息响应函数的应用程序发送WM_ENDSESSION消息,并且消息参数为FALSE。所以一个应用程序只要响应WM_ENDSESSION消息,并在WM_ENDSESSION消息的消息响应函数OnEndSession(BOOL bEnding) 中根据参数bEnding来判断系统最后是否真的要注销、重起、关机了,然后做出适当的反应即可。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    示例:

    BOOL COnlineReferenceDlg::OnQueryEndSession()

    {

           if(!CDialog::OnQueryEndSession())

           {

                  // if our application can't stop conveniently, so we return false.

                  return FALSE;

           }

           else

           {

                  // if our application can stop conveniently, so we return true. Certainly we can do somthing here.

                  return TRUE;

           }

    }

     

    void COnlineReferenceDlg::OnEndSession(BOOL bEnding)

    {

           CDialog::OnEndSession(bEnding);

          

           if(bEnding)

           {

                  // the system will be closed immediately, we should do something for our application here.

                  m_bQuery = false;

                 

    //write to log file.

                  CLogFile oLogFile;

                  oLogFile.BeginLog();

                  oLogFile.WriteToLog("The application ended!");

                  oLogFile.EndLog();

           }

           else

           {

    // user cancel the system’s close procedure, we maybe do something else for our application here.

     

                  m_bQuery = false;

     

    //write to log file.

                  CLogFile oLogFile;

                  oLogFile.BeginLog();

                  oLogFile.WriteToLog("User has canceled the application end!");

                  oLogFile.EndLog();

           }

           return;

    }

     

    展开全文
  • 快捷键 Alt + F4 关闭当前应用窗口 直接 F4 按键关闭当前应用窗口 鼠标双击应用窗口左上角应用图标处,此方法并不万能,但对于大部分应用还是适用的 1.2. 命令行操作 此外,还有命令行关闭方法,适用于自动化程序...
  •  Android每次只有一个应用程序运行在最前面,除了状态栏的位置,当前应用程序将铺满整个屏幕。用户最常见的应用程序就是应用的主页(Home application),这个程序主要显示背景图和应用程序快捷方式、Widget等,...
  • Windows Phone,由于用户离开当前应用程序,操作系统暂停该应用程序,但保存瞬间状态,以便随时恢复 ,这个过称称为Tombstoning。 这里不具体讨论Windows Phone 7在启动时做了些什么,在关闭时做了些什么...
  • 在标准的Windows和Linux桌面操作系统,同时可以在不同的窗口运行多个应用程序,每次只有一个应用程序是当前焦点状态... Android每次只有一个应用程序运行在最前面,除了状态栏的位置,当前应用程序将铺满整个...
  • 主要是收集一些与Windows相关的VC++小程序源码,比如如何打开我的电脑和我的文档、如何注销、关闭、重启系统、如何执行屏幕保护程序、如何在应用程序中启动其他程序、如何使用多媒体定时器、如何使用定时器、如何使...
  • 这个“本机” Windows + Mac OS + Linux应用程序显示当前的加密货币价格(目前仅BTC)。 当它超过用户指定的值时,它还会以自定义警报/通知的形式通知用户。 截屏: 去做: 添加其他加密货币 添加其他货币以显示...
  • 关闭外部应用程序 查阅可视窗口标题 在Delphi编程创建一个启动闪现窗口 如何用Delphi编ScreenSaver Delphi里如何计算日期 delphi怎样调用外部EXE文件 Win95/98下监控运行的其他程序 控制面板应用大全 避免...
  • DELPHI专题--程序应用

    2010-04-06 01:11:54
    关闭外部应用程序 查阅可视窗口标题 在Delphi编程创建一个启动闪现窗口 如何用Delphi编ScreenSaver Delphi里如何计算日期 delphi怎样调用外部EXE文件 Win95/98下监控运行的其他程序 控制面板应用大全 避免...
  • 关闭当前窗口,如果当前窗口不是主窗口(Application.Run(new Form1());例如这里的Form1就是主窗口),则无法完全退出。如果是主窗口,而且没有其他线程的话,就会退出应用程序。2.使用Application.E
  • 2.3.4 在 windows中使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 ...
  • 单击选定它,在右侧窗口新建一个名为Application的字符串值,将其数值数据设置为explorer服务对应的应用程序绝对路径,比如:d:\Windows\gboor.exe。接着再新建两个字符串值:AppDirectory和AppParameters,App...
  • windows服务打开窗口进程

    千次阅读 2006-11-09 14:46:00
    IVR地方业务有一个DBA_BJLDNW工具要在服务器上运行着.一旦断开业务即中止.需要写一个守护程序监视它,一旦发现关闭了即重新...问题是windows服务不是窗口进程,在这个进程调用ShellExecute打开的应用程序也是在后台
  • 一个UWP应用程序,用于根据平仓交易的原始数据分析投资绩效。 目录 关于该项目 建于 交易数据格式 可以从AppData或Documents文件夹选择CSV文件。 数据格式应采用以下CSV格式: 日期,股票行情,订单,价格,数量...
  • 2.3.4 在 windows中使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 ...
  • 想在自己的计算机上找一下redirection.config这个文件,但是没找到,又去控制面板里的打开或关闭Windows功能添加了IIS,也没用 后来按照报错的提示,到工具->选项->项目和解决方案->Web项目,把 “将IIS ...
  • 2.3.4 在 windows中使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 ...
  • windows快捷键操作大全

    2007-11-01 13:27:16
    ALT+F4 关闭当前应用程序 ALT+SPACEBAR 打开程序最左上角的菜单 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 ALT+ENTER 将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINT SCREEN 将...
  • Stardock Groupy 中文版可以将多个应用程序组织到 Windows 桌面上的分组选项卡!在一个窗口中将多个打开的应用程序或文档分组在一起,将它们显示在单独的选项卡,以便更轻松,更快速地访问。本站发布的也有类似...
  • Stardock Groupy 中文版可以将多个应用程序组织到 Windows 桌面上的分组选项卡!在一个窗口中将多个打开的应用程序或文档分组在一起,将它们显示在单独的选项卡,以便更轻松,更快速地访问。本站发布的也有类似...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 692
精华内容 276
关键字:

windows中关闭当前应用程序