我堅持了下來,需要將指標字符值添加到串列字符值中。指標字符值包括用戶名(Windows 機器),串列字符值包括啟動路徑。我試圖 strcat 但它打破了第一個“;” 部分。
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
char *username = getenv("USERNAME");
//printf("%s\n", username);
char shortcutpath[100] = "C:\\Users\\";"\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"; //2 ; is weird, i just tried
strcat(shortcutpath, username);
printf("%s\n",shortcutpath);
return 0;
}
輸出 = C:\Users%username% ,需要繼續
需要分配一個變數“C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”這個路徑
有沒有什么簡單的方法可以做到這一點?或者其他有用的東西?
uj5u.com熱心網友回復:
你可能想要這個:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
char* username = getenv("USERNAME");
char shortcutpath[100] = "C:\\Users\\";
strcat(shortcutpath, username);
strcat(shortcutpath, "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
printf("%s\n", shortcutpath);
return 0;
}
但更正確的方法可能是直接獲取 APPDATA 環境變數:
int main(void)
{
char shortcutpath[100];
char* appdata = getenv("APPDATA"); // C:\Users\<yourusername>\AppData\Roaming
strcpy(shortcutpath, appdata);
strcat(shortcutpath, "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
...
uj5u.com熱心網友回復:
char shortcutpath[255] = "C:\\Users\\";
strcat(shortcutpath, username);
strcat(shortcutpath, "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup");
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367267.html
標籤:C
下一篇:無符號整數
