provide stdin to keep xcopy happy
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4335 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
7ac5477abc
commit
d6145f7e0f
1 changed files with 10 additions and 1 deletions
|
@ -666,6 +666,7 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
SECURITY_DESCRIPTOR sd={0,};
|
SECURITY_DESCRIPTOR sd={0,};
|
||||||
PROCESS_INFORMATION pi={0,};
|
PROCESS_INFORMATION pi={0,};
|
||||||
HANDLE newstdout=0,read_stdout=0;
|
HANDLE newstdout=0,read_stdout=0;
|
||||||
|
HANDLE newstdin=0,read_stdin=0;
|
||||||
OSVERSIONINFO osv={sizeof(osv)};
|
OSVERSIONINFO osv={sizeof(osv)};
|
||||||
GetVersionEx(&osv);
|
GetVersionEx(&osv);
|
||||||
if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
||||||
|
@ -676,7 +677,12 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
else sa.lpSecurityDescriptor = NULL;
|
else sa.lpSecurityDescriptor = NULL;
|
||||||
sa.bInheritHandle = true;
|
sa.bInheritHandle = true;
|
||||||
if (!CreatePipe(&read_stdout,&newstdout,&sa,0)) {
|
if (!CreatePipe(&read_stdout,&newstdout,&sa,0)) {
|
||||||
ErrorMessage(g_sdata.hwnd,"There was an error creating the pipe.");
|
ErrorMessage(g_sdata.hwnd,"There was an error creating the output pipe.");
|
||||||
|
PostMessage(g_sdata.hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (!CreatePipe(&read_stdin,&newstdin,&sa,0)) {
|
||||||
|
ErrorMessage(g_sdata.hwnd,"There was an error creating the input pipe.");
|
||||||
PostMessage(g_sdata.hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
|
PostMessage(g_sdata.hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -685,6 +691,7 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
si.wShowWindow = SW_HIDE;
|
si.wShowWindow = SW_HIDE;
|
||||||
si.hStdOutput = newstdout;
|
si.hStdOutput = newstdout;
|
||||||
si.hStdError = newstdout;
|
si.hStdError = newstdout;
|
||||||
|
si.hStdInput = newstdin;
|
||||||
if (!CreateProcess(NULL,g_sdata.script,NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi)) {
|
if (!CreateProcess(NULL,g_sdata.script,NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi)) {
|
||||||
char buf[MAX_STRING];
|
char buf[MAX_STRING];
|
||||||
wsprintf(buf,"Could not execute:\r\n %s.",g_sdata.script);
|
wsprintf(buf,"Could not execute:\r\n %s.",g_sdata.script);
|
||||||
|
@ -717,6 +724,8 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
CloseHandle(pi.hProcess);
|
CloseHandle(pi.hProcess);
|
||||||
CloseHandle(newstdout);
|
CloseHandle(newstdout);
|
||||||
CloseHandle(read_stdout);
|
CloseHandle(read_stdout);
|
||||||
|
CloseHandle(newstdin);
|
||||||
|
CloseHandle(read_stdin);
|
||||||
PostMessage(g_sdata.hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
|
PostMessage(g_sdata.hwnd,WM_MAKENSIS_PROCESSCOMPLETE,0,0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue