Вот сама программа. Ошибок нет, но и нечего не происходит.
| Код | #pragma endregion private: HANDLE handle; private:char* StringToChar(String^ str1) { char *ch; pin_ptr<const wchar_t> wch = PtrToStringChars(str1); size_t convertedChars = 0; size_t sizeInBytes = ((str1->Length + 1) * 2); ch = (char *)malloc(sizeInBytes); wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes); return ch; } private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(STARTUPINFO)); si.cb=sizeof(STARTUPINFO); String^ str = textBox1->Text; //TCHAR szCom [] =(LPWSTR) StringToChar (str); CreateProcess(NULL,(LPWSTR) StringToChar (str),NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi); handle = pi.hProcess; } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { TerminateProcess(handle,NULL);
} }; }
|
Добавлено через 12 минут и 54 секунды Вот так работает.
| Код | #pragma endregion private: HANDLE handle; private:char* StringToChar(String^ str1) { char *ch; pin_ptr<const wchar_t> wch = PtrToStringChars(str1); size_t convertedChars = 0; size_t sizeInBytes = ((str1->Length + 1) * 2); ch = (char *)malloc(sizeInBytes); wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes); return ch; } private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(STARTUPINFO)); si.cb=sizeof(STARTUPINFO); //String^ str = textBox1->Text; //TCHAR szCom [] =(LPWSTR) StringToChar (str); [U]TCHAR szCom []= TEXT ("NOTEPAD"); CreateProcess(NULL,szCom,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);[/U] handle = pi.hProcess; } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { TerminateProcess(handle,NULL);
} }; }
|
Но я хочу сам указывать процесс. |