- CHAR CallParam[256] = { 0 };\r
- CHAR FileName[MAX_PATH];\r
-\r
- Log("GetPecmdParam <%s>", argv);\r
-\r
- *CallParamBuf = 0;\r
-\r
- strcpy_s(FileName, sizeof(FileName), argv);\r
- for (dw = 0, Pos = FileName; *Pos; Pos++)\r
- {\r
- dw++;\r
- *Pos = toupper(*Pos);\r
- }\r
-\r
- Log("dw=%lu argv=<%s>", dw, FileName);\r
-\r
- if (dw >= 9 && strcmp(FileName + dw - 9, "PECMD.EXE") == 0)\r
- {\r
- Log("Get parameters for pecmd.exe");\r
- Ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "System\\Setup", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dw);\r
- if (ERROR_SUCCESS == Ret)\r
- {\r
- memset(FileName, 0, sizeof(FileName));\r
- dw = sizeof(FileName);\r
- Ret = RegQueryValueEx(hKey, "CmdLine", NULL, &Type, FileName, &dw);\r
- if (ERROR_SUCCESS == Ret && Type == REG_SZ)\r
- {\r
- strcpy_s(CallParam, sizeof(CallParam), FileName);\r
- Log("CmdLine:<%s>", CallParam);\r
-\r
- if (_strnicmp(CallParam, "PECMD.EXE", 9) == 0)\r
- {\r
- Pos = CallParam + 9;\r
- if (*Pos == ' ' || *Pos == '\t')\r
- {\r
- Pos++;\r
- }\r
- }\r
- else\r
- {\r
- Pos = CallParam;\r
- }\r
-\r
- Log("CmdLine2:<%s>", Pos);\r
- sprintf_s(CallParamBuf, BufLen, " %s", Pos);\r
- }\r
- else\r
- {\r
- Log("Failed to RegQueryValueEx %lu %lu", Ret, Type);\r
- }\r