CreateProcess中%LOCALAPPDATA%的使用情况

时间:2015-11-25 21:28:40

标签: c++ windows createprocess

我正在尝试编写一个在运行时调用exe文件的可执行文件。

该文件的窗口位置为:

"C:\\Users\\User1\\AppData\\Local\\Apptest\\Application\\apptest.exe"

因为它位于用户配置文件的Local App Data文件夹中,所以需要使用%LOCALAPPDATA%快捷方式调用它,因为我将与其他人共享可执行文件。

以下代码通过快捷方式调用上述路径:

"%LOCALAPPDATA%\\Apptest\\Application\\apptest.exe"

但它不起作用。

#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <errno.h>
#include <ctype.h>
#include <shellapi.h>
#include <tchar.h>
#include <time.h>
#include <iostream>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){

    STARTUPINFO siStartupInfo;
    PROCESS_INFORMATION piProcessInfo;
    memset(&siStartupInfo, 0, sizeof(siStartupInfo));
    memset(&piProcessInfo, 0, sizeof(piProcessInfo));
    siStartupInfo.cb = sizeof(siStartupInfo);


    if (CreateProcess(_T("%LOCALAPPDATA%\\Apptest\\Application\\apptest.exe") ,NULL, NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &siStartupInfo, &piProcessInfo)){
        WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
        CloseHandle(piProcessInfo.hProcess);
        CloseHandle(piProcessInfo.hThread);
    }
    else {
        MessageBox(0, TEXT("Can not start program"), TEXT("AppTest"), MB_OK);
        exit(0);// Shutdown on fail
    }

    return 0;
}

%LOCALAPPDATA%

中如何使用CreateProcess快捷方式?

0 个答案:

没有答案