1. 程式人生 > >Qt 開啟程序,查詢程序,關閉程序

Qt 開啟程序,查詢程序,關閉程序

#include <windows.h>
#include <TlHelp32.h>

1, 開啟程序

QString path = qApp->applicationDirPath() + "/../../tools/redis/redis-server.exe";
QStringList args;
bool ret = QProcess::startDetached(path);
if (!ret)
{
QMessageBox::warning(this, QStringLiteral("錯誤"), QStringLiteral("redis服務啟動失敗!"));
}
else
{
qDebug() << QStringLiteral("服務程序啟動, 程序pid:") << m_pid;
}
//程式退出時, 關閉redis服務
DWORD pid;
bool ret = FindProcess("redis-server.exe", pid);
if (ret)
{
KillProcess(pid);
}


2,查詢程序

//查詢程序
bool FindProcess(const char * name,  DWORD &pid)
{
int i = 0;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
i += 0;
}
bool bMore = ::Process32First(hProcessSnap, &pe32);
while (bMore)
{
LPTSTR pf = (LPTSTR)(LPCTSTR)pe32.szExeFile;
char *pFileName = (char *)malloc(2 * wcslen(pf) + 1);
wcstombs(pFileName, pf, 2 * wcslen(pf) + 1);
//printf (" 程序名稱:%s \n", pe32.szExeFile);  
if (stricmp(name, pFileName) == 0)
{
i += 1;
pid = pe32.th32ProcessID;
return true;

}
bMore = ::Process32Next(hProcessSnap, &pe32);
}
if (i > 0){           //大於1,排除自身  
return true;
}
else{
return false;
}
}


3,關閉程序

//關閉程序
BOOL KillProcess(DWORD ProcessId)
{
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
if (hProcess == NULL)
return FALSE;
if (!TerminateProcess(hProcess, 0))
return FALSE;
return TRUE;
}


相關推薦

C++程序檢測,發現程序路徑,關閉程序(一)

#include "stdafx.h" #include <windows.h> #include "stdio.h" #include <tlhelp32.h> #include "Psapi.h" BOOL DosPathToNtPath(LP

Qt 開啟程序,查詢程序,關閉程序

#include <windows.h> #include <TlHelp32.h> 1, 開啟程序 QString path = qApp->application

mysql 查詢程序關閉程序

1、查詢某一程序PID號     tasklist |findstr mysqld 2、關閉某一程序     taskkill /F /PID XXXX 3、製作   windows + r鍵輸入services.msc 4、配置my.ini    [mysqld] character-

Oracle會話 查詢關閉會話 表被鎖解鎖 殺會話 殺程序

  Oracle會話查詢等 2016年05月11日 10:27:00 波特王子 閱讀數:4432 如何檢視oracle當前連線數,會話數 收藏 檢視session: select * from v$session where username is

windows查詢關閉某個程序

1、netstat -ano | findstr "8080"    檢視埠8080被哪個程序佔用; 2、tasklist | findstr "12036"檢視程序號為"12036"對應的程序,找出被哪個程式佔用; 3、taskkill /f /t /im javax.exe&nbs

VC獲取系統程序列表、查詢程序關閉程序

1、獲取系統程序列表#include <tlhelp32.h>//宣告快照函式標頭檔案...  PROCESSENTRY32 pe32;  pe32.dwSize=sizeof(pe32);  HANDLE hProcessSnap=::CreateToolhel

一個可以添加商品、查詢商品的程序,登錄成功的話,再去操作,添加、查詢商品,添加商品也是寫在文件裏面

指定 true rod 成功 文件 font split digi 邏輯 #寫一個可以添加商品、查詢商品的這麽程序#1、先登錄,登錄的用戶名和密碼都是寫在文件裏面的#1、讀文件、字符串分割#2、登錄成功的話,再去操作,添加、查詢商品,添加商品也是寫在文件裏面#1、讀寫文件,

Macbook怎麽強制關閉後臺程序?Macbook強制關閉後臺程序的方法

killall 紅色 -i www 關於 light cbo 圖標 終端 有時候我們的Macbook電腦運行某個程序卡在那裏耗了很長時間,程序本身有可能提供了取消按鈕,點了也沒有反應,這時候我們就很想強制關閉它了,那麽Macbook怎麽強制關閉後臺運行的程序呢?下面完美小編

如何避免關鍵程序被意外關閉

失去 如果 服務器 nbsp 機器 要求 重新 重裝 發生 1,問題的提出 最近公司開發了一個數據上傳程序,要求24小時運行不能中斷。但實際部署後,發現有時被windows認定為程序異常,從而被關閉。 由於機器綁定了固定IP,程序必須在此固定Ip的服務器上運行。因此不能更換

IIS無法啟動,應用程序池自動關閉,應用程序池XXXX將被自動禁用 解決方案之一

nbsp 問題 -- content 其中 iis service .com 裏的 是上網找各種相關資料。其中解決該問題的前半段是用如下這個帖子的方法。 http://www.360doc.com/content/14/1119/01/16402602_426289088.

結對-及格程序查詢-最終程序

最終 images wid 成員 ont idt nbsp log 運行方式 結對成員:李一軒、程吉 學號:2015035107040 學號:2015035107019 程序運行方式:HTML頁面 程序運行示例及結果: 結對-及格程序查詢-最終程序

安裝Qt creator時出現 無法定位程序輸入點_except1 於動態鏈接庫MSVCR120.dll上

x86 win mark size 提示 mar msvc 這樣的 系統 開始不知道怎麽回事一直出現 無法定位程序輸入點,_except於動態鏈接庫MSVCR120.dll上,重新下了幾個Qt版本同樣出現這樣的問題,後來在網上查了一下 這兩天回老家了,沒事打算在筆記

查詢並發程序是否啟動跟蹤功能-trc文件對數據庫性能有影響

org reat rest class and program one ont source /* Formatted on 2018/3/14 23:38:51 (QP5 v5.256.13226.35538) */ SELECT icon_name ,

C#啟動外部程序以及等待外部程序關閉的幾種方法

string C# main 無限 完成 nbsp text enable geb 1. 啟動外部程序,不等待其退出。 2. 啟動外部程序,等待其退出。 3. 啟動外部程序,無限等待其退出。 4. 啟動外部程序,通過事件監視其退出。 // using Sy

解決3D Max2014關閉程序,打開後停止工作

img com size 打開 停止 ctp 工作 下載鏈接 9.png 批處理下載鏈接:https://pan.baidu.com/s/1qQKcTpjlm3ZGmqoZP1lvxg 密碼:422t 解決3D Max2014關閉程序,打開後停止工作

Qt程序嵌入C# VB程序,menu和toolstrip的點擊不可用

清水 動態 不可 孤單 風中 春天 長風 baidu 趣味 <p>  不!要總是在乎別人做什麽,多做一下自己的事情最重要;不要總在看人家的動態,就算你再累,人家也不理會;不要老是纏著別人。人家會說:你不累。我還累;不要隨便怨恨別人,人家早等著抱怨你怎麽辦;不要總

C# 任務管理器關閉程序,觸發程序中的什麽事件?

一句話 什麽 blog 看書 很多 愛的 手臂 出了 實現 <p>  (1)守候 守候,是人生中;的一種美麗等待。 這等待也許是一種幸福!也許是片刻的溫馨! 如果真的要我回報你一世的柔情,我願一生為你默默守候! 誠然,思念著你,卻不能長長久久牽住你的手。我只能這

e566. 關閉的時候關閉程序

pub owa ada bgcolor when pre style cati related By default, when the close button on a frame is clicked, nothing happens. This example sh

Windows查詢佔用8080埠的程序號並殺死程序

首先查詢到佔用8080埠的程序號PID是多少 CMD>netstat -ano | findstr 8080 這個命令輸出的最後一列表示佔用8080埠的程序號是多少,假設為1234 kill掉這個程序 CMD>

SQL SERVER死鎖查詢和殺死程序

關於死鎖的產生原理,想了解更多,可以點選這裡 查詢死鎖程序 select         request_session_id spid,