Я пытаюсь использовать функцию SHGetKnownFolderPath (), которая получает каталог localappdata пользователя и преобразует PWSTR (который является wchar_t *) в LPCSTR (который является const char *), затем добавляет программу в LPCSTRчтобы его можно было использовать в CreateProcess.
Я понял, как использовать SHGetKnownFolderPath и распечатать путь к консоли, используя printf (% ls%, путь), и выяснил, как использовать CreateProcess для выполнения файла .exe, но я не знаю, какпревратить PWSTR в const char * и включить программу, которую я хочу выполнить, в этот const char *.
#include <Windows.h>
#include <fstream>
#include <shlobj_core.h>
#include <string>
#include <KnownFolders.h>
#include <wchar.h>
int main () {
//SHGetKnownFolderPath function
PWSTR path = NULL;
HRESULT path_here = SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &path);
//CreateProcess funtion
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
const char* execute = //Want to have path_here plus another folder and an .exe program.
BOOL create = CreateProcess(execute, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &info, &processInfo);
.......................
}
Я бы не сказал, что знаю много о кодировании, и, вероятно, есть кое-что важное, что я наденупока не знаю.Любая помощь будет оценена.
РЕДАКТИРОВАТЬ
Я думаю, было бы более полезно, если бы я показал эту другую часть моего кода.Следующий код сразу после кода, который я написал выше:
if (create){
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}