1

Тема: передати аргументи в консоль сторонньої програми

Привіт всім
вирішив не ускладнювати собі життя(да да, думаю що то реально зробити) зарас поясню в чому суть питання
є у мене програма, написана на с++(консоль), мені потрібно передати дані з фрейму(при натиску на кнопку) в ту  консоль
це взагалі можливо зробити?

2

Re: передати аргументи в консоль сторонньої програми

По-моєму, це все ж ускладнення життя. Може просто ctrl+c, ctrl+v? (ну чи ctrl+ins, shift+ins)

3

Re: передати аргументи в консоль сторонньої програми

Master_Sergius написав:

По-моєму, це все ж ускладнення життя. Може просто ctrl+c, ctrl+v? (ну чи ctrl+ins, shift+ins)

нііі, так не проканає
детальніше, у мене  курсова робота минулого року була, написати хрестики нулики на безмежному полі(с++)
таку ж тему вихватив собі і на java
так як програмісти люди ліниві, я вирішив нічого не трогати а просто передати аргументи з фрейму в ту прогу, вот і все

4

Re: передати аргументи в консоль сторонньої програми

і чому б не навчитись чогось нового))))

5

Re: передати аргументи в консоль сторонньої програми

rundll32 підійде ?
і взагалі шо за ОС, шо за фреймворк, яка ситуація, ато таке враження, скріпткідс вирішив шось взламати і не знає як запитати

6

Re: передати аргументи в консоль сторонньої програми

reverse2500 написав:

rundll32 підійде ?
і взагалі шо за ОС, шо за фреймворк, яка ситуація, ато таке враження, скріпткідс вирішив шось взламати і не знає як запитати

windows 10
ситуацію я зверху пояснив)) лінь знов хрестики нолики писати
rundll32? хммм нада погуглити
можна якиїсь приклад?)

7

Re: передати аргументи в консоль сторонньої програми

http://datadump.ru/rundll32/
блін, це для dll, використовуй разом з shell32.dll

rundll32 shell32, Control_FillCache_RunDLL

от так, повинні бути і API, дальше використати JNI java

Подякували: roctik19961

8

Re: передати аргументи в консоль сторонньої програми

Відстежити закриття програми також можна за допомогою цього всього?)

9

Re: передати аргументи в консоль сторонньої програми

створити виключну якусь ситуацію і глянути. Навіть не знаю, ще не задавався таким питанням

10

Re: передати аргументи в консоль сторонньої програми

ок, розберусь наверно

11

Re: передати аргументи в консоль сторонньої програми

А тут пишуть в JAVA, про метод Desktop.open()

12

Re: передати аргументи в консоль сторонньої програми

мені ще от так підсказали

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
Подякували: reverse2500, leofun012

13

Re: передати аргументи в консоль сторонньої програми

Runtime.exec()

Подякували: reverse2500, roctik1996, leofun013

14

Re: передати аргументи в консоль сторонньої програми

Уточнення: що саме має відбуватися з вводом-виводом консольної програми?
1) Java-програма передаватиме туди вхідні дані й забиратиме вихідні, використовуючи потоки, користувач при цьому самої консолі не бачить. (Здається, цей варіант реалізувати простіше).
2) Java-програма, що запускає консольну програму з аргументами командного рядка, далі з нею не взаємодіє, користувач бачить консольне вікно й може робити в ньому якісь дії.

Подякували: leofun011

15

Re: передати аргументи в консоль сторонньої програми

P.Y. написав:

1) Java-програма передаватиме туди вхідні дані й забиратиме вихідні, використовуючи потоки, користувач при цьому самої консолі не бачить. (Здається, цей варіант реалізувати простіше).

от саме це мені і потрібно, але для цього нада ту консоль скрити, або просто свернути
щоб було простіше зрозуміти
минулого року написав курсову роботу, хрестики-нулики(С++, з використанням OpenGL, в консоль вводиться розмірність ігрового поля, імена гравців і т.д.)
цей рік вирвав собі таку ж саму тему але реалізувати на Java
переробляти мені лінь, та і часу немає
тому створив у джаві фрейм, там ті всі параметри вводяться, вот і їх мені нада передати в ту консоль
доречі...
ось це не коректно якось працює..., процес створюється, а от на моніторі нічого не бачу, просто тупо процес створений є

Process processBuilder = new ProcessBuilder("адреса\\Roctik.exe").start();

Ту є 2 варіанти:
1) Використовувати як повністю зовнішній застосунок. Запускаєте через exec той си додаток (що відповідає виклику через cmd/bash)  й обробляти його відповідь у консоль (http://stackoverflow.com/a/4741987) або зробити відповідь у файл і зчитувати у джаві.
2) Повна зв'язаність того коду з джавовим через JNI, тільки це ще більше геморою принесе, ніж переписати код на джаві.

16

Re: передати аргументи в консоль сторонньої програми

Process p = Runtime.getRuntime().exec("D:\\Кросплатформа\\Tic-Tac-Toe\\src\\Roctik.exe" );
тільки створює процес, але запущену програму я не бачу

17

Re: передати аргументи в консоль сторонньої програми

а може JNI допоможе в цьому випадку ? Як раз для цього і створено щоб JAVA працювала з іншимим мовами програмування

18

Re: передати аргументи в консоль сторонньої програми

reverse2500 написав:

а може JNI допоможе в цьому випадку ? Як раз для цього і створено щоб JAVA працювала з іншимим мовами програмування

навряд чи, мені нада саме запустити .ехе, а не використовувати код с++
воно ж процес створює, не розумію чому саме сама програма не запускається...
мож її десь в проект кинути? або навіть не знаю що...

19

Re: передати аргументи в консоль сторонньої програми

як тут скрін скинути? :)

20

Re: передати аргументи в консоль сторонньої програми

ProcessBuilder

мабуть сама назва говорить сама за себе, що потрібно створити лиш сам процес
а пробували open() метод ? Я вище писав, ще давали приклад з exec()