Wątek przeniesiony 2015-01-08 17:52 z Delphi i Pascal przez olesio.

Jak do programu napisanego w Pascalu, wplatać standardowe komendy CMD?

2015-01-07 21:52
TheSpecial1
0

Witam,

Jestem dopiero początkującym "użytkownikiem" Pascala, i chciałbym napisać program który potrafi wywołać komendę CMD oraz program typu adb, baksmali itd.
Być może kilka osób spotkało się z tymi programami, dla osób które się jednak z tym nie spotkały powiem że są to aplikacje z których korzystamy bezpośrednio przez CMD - cd "ścieżka do pliku" a następnie wywołanie od razu komend tych programów.

Chciałbym również móc otwierać pliki z rozszerzeniem *.bat.

Czytałem o tym tutaj: http://wiki.freepascal.org/Executing_External_Programs aczkolwiek muszę się przyznać że nie za wiele rzeczy z tego rozumiem. :(

Chciałbym więc prosić o pomoc osoby biegłe w temacie. :)

Pozdrawiam!
Bartek

Pozostało 580 znaków

2015-01-07 22:28
1

Opcja 1: ShellExecute
Opcja 2: WinExec
Opcja 3: czytasz tamten artykuł dopóki nie zrozumiesz; masz nawet przecież przykładowe fragmenty kodu.


Pozostało 580 znaków

2015-01-08 15:56
Zimny Lew
0

Trzymaj, najprościej jak umiałem.


program program1;
uses SysUtils, ShellApi;

{$APPTYPE CONSOLE}

var s:string;
begin
readln(s);

ShellExecute(0,nil, PChar('cmd.exe'),PChar('/c '+s),nil,0);
readln;
end.

Pozostało 580 znaków

2015-01-08 17:51
0

Polecam przed rozpoczęciem programowania poczytać kursy, bo imo nie znasz podstaw. Należy też googlować i kombinować samodzielnie do bólu zanim napiszemy na forum cokolwiek. Tak, wiem powatarzam się, ale będę męczył te stwierdzenie do bólu również, bo ludzie nie chcą się stosować.

Co do problemu. Poczytaj sobie na przykład na MSDNie, jakie wartości powinna przyjmować funkcja ShellExecute w ostatnim parametrze. Poza tym jest też różnica między parametrami /c, a np /k. Wątek ten przenoszę do Newbie, bo dotyczy właśnie podstaw.


edytowany 2x, ostatnio: olesio, 2015-01-08 17:53

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0