Mrowqa Temat założony przez niniejszego użytkownika |
[C++] Wywoływanie programu przez inny program » 2011-04-17 15:25:25 Witam!
Chciałem zapytać jak wywołuje się program przez inny program ( konkretnie jak to wygląda w kodzie ;D ). Jak przy takim wywołaniu podać argumenty wywołania oraz jak odebrać wartość zwrócona przez program ?? Pytam z ciekawości, tak jak wcześniej ;) W win7 jak się wpisze w okno przy menu-Start program.exe -argument -innyArgument to odpala program ;) - nie sprawdzałem jeszcze argumentów - raczej sprawdzę niedługo :)
Pozdrawiam, Mrowqa |
|
yoogi |
» 2011-04-17 15:53:47 Możesz skorzystać z funkcji ShellExecute() #Edit char * ARG[] = { "notepad", 0 }; execv( "c:\\windows\\notepad.exe", ARG );
No i oczywiście musisz dodać nagłówek process.h |
|
Mrowqa Temat założony przez niniejszego użytkownika |
» 2011-04-17 16:04:41 Poczytam o tym na pewno ;) Ja odpalałem przed chwilą z Uruchom oraz cmd specjalnie przeze mnie napisany program, który podaje parametry wywołania ... Co ciekawe w cmd to ciekawie wyszło, oddawało sterowanie programowi, zamiast odpalić nowy ... ( Zmieniło nawet kolor w cmd - bawiłem się w odpalanie innych programów ;P ) PS aby odebrać wartość zwrócona przez program wystarczy przypisać ją do zmiennej ? int cos = ShellExecute( "jakiś program" );
Tak ?? :P EDIT: @up aha ;) Pozdrawiam, Mrowqa |
|
yoogi |
» 2011-04-17 16:08:24 ShellExecute( NULL, "open", sciezka, NULL, NULL, SW_SHOWNORMAL );
W 3 parametr wpisujesz ścieżkę np. "c:\windows\system32\" lub ścieżkę internetową np. "http://google.pl/" #edit A co do wartości zwracanej to nie wiem, musisz poczytać. |
|
Mrowqa Temat założony przez niniejszego użytkownika |
» 2011-04-17 16:29:05 Co do execv: Wywołuje nią specjalnie mój program, który wyświetla parametry wywołania. Działa ona podobnie jak w przypadku cmd --> oddaje sterowanie programowi, ale w przeciwieństwie do cmd już go nie oddaje, tzn w okienku programu wywołującego ukazuje się program wywołany, ale gdy on zakończy program, to zamyka okno, a nie kontynuuje programu wywołującego ;/ To normalne ??
Zaraz przetestuję drugą funkcję ...
EDIT: nie podałeś nazwy pliku nagłówkowego, ale spróbowałem windows.h i zadziałało ;) Otworzyło się okno, wywołanie umieściłem w cout << fun(); w momencie wywołania coś wypisało ;/ = to nie jest wartość zwrócona przez program ;(
Pozdrawiam, Mrowqa |
|
yoogi |
» 2011-04-17 16:34:58 Chodzi co o to, że włączasz program, uruchamia ci się notatnik i program się zamyka tak ? |
|
Mrowqa Temat założony przez niniejszego użytkownika |
» 2011-04-17 16:37:27 @up Nie o to. Napisałem wyżej, że napisałem ( ale to brzmi :D ) swój program wypisujący parametry: #include <iostream> #include <conio.h> #include <process.h> #include <Windows.h> using namespace std;
int main() { cout << ShellExecute( NULL, "open", "C:\\Users\\R620\\Desktop\\My projects\\test_parametry\\Debug\\test_parametry.exe", NULL, NULL, SW_SHOWNORMAL ) << endl; system( "pause" ); }
Nie chciało mi się znów kod zmieniać ;) Chyba wiesz o co chodzi :D Mogę podać kod tego programu wywoływanego ... ale to raczej zbędne :D PS to o co chodzi to jest to w komentarzu Pozdrawiam, Mrowqa |
|
yoogi |
» 2011-04-17 16:39:30 Aha |
|
« 1 » 2 3 |