[C++] Włączanie zewnętrznych programów z poziomu własnego


(Golwitka) #1

Siema, jako że jest to mój pierwszy post na tym forum, to chciałbym się z wszystkimi przywitać. :slight_smile: Ale do tematu. Otóż chciałbym napisać program w C++ który po wybraniu odpowiedniej liczby uruchamiałby odpowiedni program. Mam nadzieję, że mniej więcej zrozumiecie o co mi chodzi Wyglądałoby to tak że wyświetla mi się lista programów, razem z przypisanymi liczbami, i po wklepaniu odpowiedniej liczby uruchomiłby się program ze ścieżki podanej w funkcji. No właśnie teraz tylko pytanie jakiej funkcji użyć? Potrzebna mi jest tylko funkcja, z resztą sobie poradzę. Mam nadzieję, że napisałem dosyć jasno :slight_smile: Z góry dzięki za pomoc.

Pozdr.


([alex]) #2
system("notepad.exe");

(dobryteddy) #3

WinExec/ShellExecute


(Golwitka) #4

Dobra, mam napisany i skompilowany, włącza się, ale gdy wybieram program do włączenia wyskakuje komunikat "Nazwa 'C:Program' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne". O co chodzi?


(Sawyer47) #5

To przez spacje w ścieżce. Musisz albo poprzedzić spacje backslashem, albo całą ścieżkę ując w cudzysłowy.


(Golwitka) #6

to jest fragment kodu ze ścieżką

case 9: system("\"C:\Program Files (x86)\Adobe\Adobe Photoshop CS3\photoshop.exe\""); 

					 break;

możesz po prostu napisać jak powinno być?


(Drobok) #7

Po co ci te dwa cudzysłowy ? Taką skłądnią wpisujesz w konsolę \ a dalej kompilator nie wie ocb.

system("C:\Program Files (x86)\Adobe\Adobe Photoshop CS3\photoshop.exe"); [/code]

(Golwitka) #8

teraz nawet się nie chce włączyć. Błędy:

84 C:\Users\user\Desktop\browser.cpp expected primary-expression before "break" 

86 C:\Users\user\Desktop\browser.cpp missing terminating " character

Takie 2 błędy są przy każdej ścieżce.


(Sawyer47) #9

Wprawdzie nie mam Windowsa, aby przetestować, ale spróbuj, któraś wersja powinna zadziałać:

system("\"C:\Program Files (x86)\Adobe\Adobe Photoshop CS3\photoshop.exe\"");

system("C:\Program\ Files\ (x86)\Adobe\Adobe\ Photoshop\ CS3\photoshop.exe");

system("\"C:/Program Files (x86)/Adobe/Adobe Photoshop CS3/photoshop.exe\""); // wydaje mi się, że slashe też przyjmie, choć nie jestem do końca pewien


(Drobok) #10
system("\"C:\\Program Files (x86)\\Adobe\\Adobe Photoshop CS3\\photoshop.exe\"");

(Golwitka) #11

Wielkie dzięki, wszystko śmiga jak należy :slight_smile: Ostatni wariant z tych które podałeś zadziałał :wink: