Я цитирую MSDN :
Функция не будет использовать путь поиска. Этот параметр должен включать расширение имени файла; расширение по умолчанию не предполагается.
Так что вы не можете просто использовать cmd. Это будет зависеть от вашего рабочего каталога, если он будет работать. Если вы используете полный путь, он будет работать. Например, это рабочий пример на моей машине.
char *hotkeyexe = "c:\\Windows\\notepad.exe";
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
if(!CreateProcess(hotkeyexe, "", 0, 0, 0, 0, 0, 0, &si, &pi))
printf("error");
scanf("%d");