2007年7月20日

NSIS如何在安装前结束当前运行的进程

    今天查一个问题,我们的产品在运行是,点击安装,会报错,找到一个结束进程的控件processwork.dll
    下载地址:http://www.esanu.name/programs/NSISKillProcess.html 
     将processwork.dll放到Plugins目录下,然后在NSIS代码中加入如下函数:

Function CloseParentWithUserApproval
Push $5

loop:
  push "*.exe"
  processwork::existsprocess
  pop $5
  IntCmp $5 0 done

  MessageBox MB_RETRYCANCEL|MB_ICONSTOP “Your process must be closed during this installation.$\r$\n Close your process now, or press Retry to automatically close and continue or press Cancel to cancel the installation entirely.“  IDCANCEL BailOut
  push "*.exe"
  processwork::KillProcess
  Sleep 2000
Goto loop

BailOut:
  Abort

done:
Pop $5
FunctionEnd  

posted @ 2007-07-20 17:07 萍子 阅读(2650) | 评论 (1)编辑 收藏

2007年6月7日

非模态对话框的显示问题

    新创建的非模态对话框,失去焦点时也会显示在最前,使用很不方便。
    取消此特性的方法如下:
    (1)将Dialog的属性“Application Window”设置为True,以便在对话框可见时在任务栏显示图标。
    (2)将Dialog的属性“System Modal”和“Topmost”分别设置为False。
    (3)创建代码:
         CDialog* pModeDlg = new CDialog(NULL);
         pModeDlg ->Create(IDD_DIALOG_MODE, GetDesktopWindow());
         pModeDlg ->ShowWindow(SW_SHOWNA);

posted @ 2007-06-07 12:29 萍子 阅读(969) | 评论 (0)编辑 收藏

仅列出标题  
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(1)

随笔档案

技术圈圈

懒懒的生活

搜索

最新评论

阅读排行榜

评论排行榜