| 153 | | HANDLE hStdOutput = NULL; |
| 154 | | HANDLE hStdError = NULL; |
| 155 | | HANDLE hStdInput = NULL; |
| 156 | | |
| 157 | | //sa.bInheritHandle = TRUE; |
| 158 | | CreatePipe(&hStdInput, &hStdOutput, &sa, NULL); |
| | 151 | |
| | 152 | HANDLE hStdInput = NULL; |
| | 153 | HANDLE hStdOutput = NULL; |
| | 154 | HANDLE hStdError = NULL; |
| | 155 | HANDLE hMyStdInput = NULL; |
| | 156 | HANDLE hMyStdOutput = NULL; |
| | 157 | HANDLE hMyStdError = NULL; |
| | 158 | |
| | 159 | CreatePipe(&hStdInput , &hMyStdInput , &sa, NULL); |
| | 160 | CreatePipe(&hMyStdOutput , &hStdOutput , &sa, NULL); |
| | 161 | CreatePipe(&hMyStdError , &hStdError , &sa, NULL); |
| | 162 | |
| | 163 | // �n���h���̃A�N�Z�X���ύX |
| | 164 | if (!DuplicateHandle(GetCurrentProcess(),hMyStdInput ,GetCurrentProcess(),NULL, 0, FALSE, DUPLICATE_SAME_ACCESS) || |
| | 165 | !DuplicateHandle(GetCurrentProcess(),hMyStdOutput,GetCurrentProcess(),NULL, 0, FALSE, DUPLICATE_SAME_ACCESS) || |
| | 166 | !DuplicateHandle(GetCurrentProcess(),hMyStdError ,GetCurrentProcess(),NULL, 0, FALSE, DUPLICATE_SAME_ACCESS)) { |
| | 167 | |
| | 168 | BOOST_REQUIRE(false); |
| | 169 | } |
| | 170 | |
| 165 | | si.hStdError = GetStdHandle(STD_ERROR_HANDLE ); |
| 166 | | |
| 167 | | cout << "fakecygpty: [" << fakecygpty << "]" << endl |
| 168 | | << "cd: [" << cd << "]" << endl; |
| 169 | | |
| 170 | | BOOL result4 = CreateProcess(fakecygpty, _T("fakecygpty /bin/zsh"), NULL, NULL, TRUE, 0, NULL, cd, &si, &pi); |
| | 180 | si.hStdError = GetStdHandle(STD_ERROR_HANDLE); |
| | 181 | |
| | 182 | BOOL result4 = CreateProcess(fakecygpty, _T("fakecygpty /bin/zsh --login -i"), NULL, NULL, TRUE, 0, NULL, cd, &si, &pi); |
| 173 | | Sleep(10000); |
| 174 | | } |
| | 185 | DWORD written = 0; |
| | 186 | { |
| | 187 | const char output[] = "source ~/.i3\n"; |
| | 188 | WriteFile(hMyStdInput, output, sizeof(output), &written, NULL); |
| | 189 | } |
| | 190 | { |
| | 191 | const char output[] = "/bin\t\t"; |
| | 192 | WriteFile(hMyStdInput, output, sizeof(output), &written, NULL); |
| | 193 | } |
| | 194 | { |
| | 195 | //const char output[] = "\003"; |
| | 196 | //WriteFile(hMyStdInput, output, sizeof(output), &written, NULL); |
| | 197 | } |
| | 198 | |
| | 199 | |
| | 200 | Sleep(3000); |
| | 201 | CloseHandle(hStdInput); |
| | 202 | CloseHandle(hStdOutput); |
| | 203 | CloseHandle(hStdError); |
| | 204 | CloseHandle(hMyStdInput); |
| | 205 | CloseHandle(hMyStdOutput); |
| | 206 | CloseHandle(hMyStdError); |
| | 207 | } |