diff --git a/Source/exehead/Main.c b/Source/exehead/Main.c index 4353b240..36e9f606 100644 --- a/Source/exehead/Main.c +++ b/Source/exehead/Main.c @@ -201,6 +201,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdParam, mystrcat(state_temp_dir,"~nsu.tmp"); CreateDirectory(state_temp_dir,NULL); + SetCurrentDirectory(state_temp_dir); if (!state_install_directory[0]) mystrcpy(state_install_directory,state_exe_directory); @@ -233,7 +234,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdParam, MoveFileOnReboot(state_temp_dir,NULL); #endif GetNSISString(buf2,g_header->str_uninstcmd); // '"$TEMP\$1" $0 _?=$INSTDIR\' - hProc=myCreateProcess(buf2,state_temp_dir); + hProc=myCreateProcess(buf2); if (hProc) { CloseHandle(hProc); diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index f7c6f401..4a7eb962 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -865,7 +865,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) log_printf2("Exec: command=\"%s\"",buf0); update_status_text(LANG_EXECUTE,buf0); - hProc=myCreateProcess(buf0,state_output_directory); + hProc=myCreateProcess(buf0); if (hProc) { diff --git a/Source/exehead/util.c b/Source/exehead/util.c index 2289c346..b8e7f3de 100644 --- a/Source/exehead/util.c +++ b/Source/exehead/util.c @@ -50,16 +50,12 @@ NSIS_STRING g_usrvars[1] __attribute__((section (NSIS_VARS_SECTION))); # endif #endif -HANDLE NSISCALL myCreateProcess(char *cmd, char *dir) +HANDLE NSISCALL myCreateProcess(char *cmd) { - DWORD d; PROCESS_INFORMATION ProcInfo; static STARTUPINFO StartUp; StartUp.cb=sizeof(StartUp); - d=GetFileAttributes(dir); - if (d == INVALID_FILE_ATTRIBUTES || !(d&FILE_ATTRIBUTE_DIRECTORY)) - dir=0; - if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, dir, &StartUp, &ProcInfo)) + if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &StartUp, &ProcInfo)) return NULL; CloseHandle(ProcInfo.hThread); return ProcInfo.hProcess; diff --git a/Source/exehead/util.h b/Source/exehead/util.h index ae6c5cbd..74dca8d3 100644 --- a/Source/exehead/util.h +++ b/Source/exehead/util.h @@ -72,7 +72,7 @@ extern char g_log_file[1024]; #define LogData2Hex(x1,x2,x3,x4) #endif -HANDLE NSISCALL myCreateProcess(char *cmd, char *dir); +HANDLE NSISCALL myCreateProcess(char *cmd); int NSISCALL my_MessageBox(const char *text, UINT type); void NSISCALL myDelete(char *buf, int flags);