gpt4 book ai didi

c++ - 使用 System::AnsiString 类

转载 作者:行者123 更新时间:2023-11-30 01:14:11 24 4
gpt4 key购买 nike

我正在尝试从以下答案中导入代码:Get full running process list ( Visual C++ )

bool FindRunningProcess(AnsiString process) {
/*
Function takes in a string value for the process it is looking for like ST3Monitor.exe
then loops through all of the processes that are currently running on windows.
If the process is found it is running, therefore the function returns true.
*/
AnsiString compare;
bool procRunning = false;

HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (hProcessSnap == INVALID_HANDLE_VALUE) {
procRunning = false;
} else {
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32)) { // Gets first running process
if (pe32.szExeFile == process) {
procRunning = true;
} else {
// loop through all running processes looking for process
while (Process32Next(hProcessSnap, &pe32)) {
// Set to an AnsiString instead of Char[] to make compare easier
compare = pe32.szExeFile;
if (compare == process) {
// if found process is running, set to true and break from loop
procRunning = true;
break;
}
}
}
// clean the snapshot object
CloseHandle(hProcessSnap);
}
}

在 Phil 的回答中,他正在使用 System::AnsiString 类,我不确定如何将它包含在我的项目中,即它是安装包的一部分还是我需要下载和包括它?

这个问题的扩展:我可以使用另一种替代品来实现与 AnsiString 相同的功能吗?

我对这段代码的最终目标是修改它,以便我可以获得当前正在运行的进程列表,并且我正在寻找一个特定的进程来终止它(如果它正在运行)。我尝试使用 ce::string,但由于 pe32.szExeFileTCHAR [260] 类型,我无法将它传递给以下 ce::string process_name;ce::string 声明(这可能是他使用 System::AnsiString 的原因)。

我假设 pe32.szExeFile 将返回进程名称,所以我想将它与另一个声明的具有特定进程名称的字符串进行比较。

最佳答案

好吧,现在还不清楚AnsiString 是什么; 你假设它是the Embarcadero System::AnsiString class坦率地说,这看起来是一个合理的假设

不过,我不会去尝试获得它。 我会专注于编写标准代码,切换到 std::string/std::wstring(视情况而定)。它应该接近-使作者的代码可移植是微不足道的。您将不得不尝试并阅读该代码中使用的函数的文档,以查看哪些有效,哪些无效。它看起来 System::AnsiString 几乎或完全兼容std::string,但只有尝试一下才能知道.

我怎么强调都不为过,不要走上你的时间机器并在 1950 年打开它的道路,带着装满指针的午餐盒和可怕的陈旧 C -字符串比较函数。我真的不明白为什么有人会建议这样做。

关于c++ - 使用 System::AnsiString 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com