Code::Blocks(C/C++) 使用 「Windows API: ShellExecute」設定 執行檔(EXE)路徑 和 工作目錄 呼叫外部程式

Code::Blocks(C/C++) 使用 「Windows API: ShellExecute」設定 執行檔(EXE)路徑 和 工作目錄 呼叫外部程式

Code::Blocks(C/C++) 使用 「Windows API: ShellExecute」設定 執行檔(EXE)路徑 和 工作目錄 呼叫外部程式


資料來源: 「Copilot: C++ shellexecute api Set work directory」


GITHUB: https://github.com/jash-git/CodeBlocks_Windpws-API_ShellExecute


code

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

/*
    Copilot: C++ shellexecute api Set work directory
*/
/*
Code::Blocks執行 C/C++輸出時,若發現 「命令模式(console)」 輸出的中文為亂碼時的處理

資料來源: https://jiannrong.blogspot.com/2015/02/codeblockscc.html

修改I.

    步驟01.點選「Settings」功能表內的「Editor」

    步驟02.左邊請點選「General settings」,再請點選右邊的「Other settings」,於「Encoding」的下拉式選單內挑選「UTF-8」

    步驟03.按下「OK」後離開

修改II.

    步驟01.點選「Settings」功能表內的「Compiler」

    步驟02.左邊請點選「Global compiler settings」,再請點選右邊的「Compiler settings」,再請點選「Other options」

    步驟03.請輸入指令,指令內容為
-fexec-charset=BIG-5

    步驟04.按下「OK」後離開
*/
void pause()
{
    printf("Press Enter key to continue...");
    fgetc(stdin);
}

int main()
{
    char programPath[512]={'\0'};
    char workingDirectory[512]={'\0'};
    int len=0;

    printf("請輸入執行檔路徑: ");
    scanf("%s", programPath);//LPCSTR programPath = "C:\\Program Files\\MyProgram\\MyApp.exe";
    len=strlen(programPath);
    if(len<=0)
    {
        strcpy(programPath, "C:\\VTEAM\\VTEAM-POS\\MAUI\\MAUI_VPOS.exe");// C:\VTEAM\VTEAM-POS\MAUI\MAUI_VPOS.exe
    }

    printf("請輸入工作目錄路徑: ");
    scanf("%s", workingDirectory);//LPCSTR workingDirectory = "C:\\MyWorkDirectory";
    len=strlen(programPath);
    if(len<=0)
    {
        strcpy(programPath, "C:\\VTEAM\\VTEAM-POS\\MAUI");// C:\VTEAM\VTEAM-POS\MAUI
    }

    printf("輸入的執行檔路徑: %s\n",programPath);
    printf("輸入的工作目錄路徑: %s\n",workingDirectory);

    // 使用 ShellExecute 启动程序
    ShellExecute(NULL, "open", programPath, NULL, workingDirectory, SW_SHOWDEFAULT);
    pause();
    return 0;
}

One thought on “Code::Blocks(C/C++) 使用 「Windows API: ShellExecute」設定 執行檔(EXE)路徑 和 工作目錄 呼叫外部程式

  1. C/C++
    char array -> LPCSTR
    計算字串長度: strlen
    字串拷貝(複製): strcpy
    字串陣列初始化

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *