Wykonanie polecenia w Lazarusie

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
xam
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 14 sty 2008, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Wykonanie polecenia w Lazarusie

Post autor: xam »

Cześć

Czy ktoś może wie w jaki sposób sprawić żeby po kliknięciu w lazarusie np. przycisku wykonała się zdefiniowana procedura lub polecenie w konsoli?

I czy można potem załadować np. do memo to co wyświetliła dana procedura w konsoli?
Adawo
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lis 2007, 16:12
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: Adawo »

Pewnie że ktoś wie... do odpalenia polecenia konsoli znam 2 metody:
  1. funkcja Shell modułu unix
  2. Klasa TProcess z modułu process
Tyle że jeśli chcesz mieć większą kontrole nad poleceniem (czyli miedzy innymi przypisania do TMemo strumienia wyjścia polecenia) to użyj TProcess.

Więcej o tej klasie poczytasz:
Executing External Programs z wiki Free Pascal

P.S Jak coś to mam przykład aplikacji pisanej z wiedzy czerpanej z wyżej wymienionego artykułu więc jak chcesz to mogę Ci podesłać... ;)
Awatar użytkownika
xam
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 14 sty 2008, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Wykonanie polecenia w Lazarusie

Post autor: xam »

Jeśli byś mógł to prześlij zawsze na przykładzie jest łatwiej zrozumieć :)
Adawo
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lis 2007, 16:12
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: Adawo »

http://www.chomikuj.pl/kaktus/MiniConsole.tar.gz

Prosze bardzo, źródło programiku wykonującego wpisane konsolowe polecenie i wyświetla rezultat w TMemo.
Awatar użytkownika
xam
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 14 sty 2008, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Wykonanie polecenia w Lazarusie

Post autor: xam »

Dzięki Ci jesteś wielki ::clap:
O to właśnie mi chodziło, a wiesz może jak wykonywać komendy poprzedzone sudo? Bo aplikacja mi sie zwiesza jak próbuję wykonać taką komendę.
Awatar użytkownika
vytah
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 11 paź 2007, 17:44
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: vytah »

spróbuj gksudo?
bo ze mnie jest zimnokrVisty aktyVista co śVista na oczyVistą oczyVistość, która jest naroVista i zaVistna o moje śVistanie
trzeci-punkt.blog.onet.pl
Adawo
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lis 2007, 16:12
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: Adawo »

Znalazłem jeszcze jedną fajną rzecz dotyczącą właśnie wykonywania poleceń konsoli, a mianowicie komponent TCmdBox, więcej znajdziesz w wiki FPC: http://wiki.freepascal.org/CmdLine. Może się przyda...
Awatar użytkownika
xam
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 14 sty 2008, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Wykonanie polecenia w Lazarusie

Post autor: xam »

Cześć

powróciłem do walki ze swoją aplikacją:) Teraz pozostał tylko problem uruchomienia jej jako root, tymczasowo rozwiązałem to przy pomocy skryptu, ale chciałbym wykorzystać gksudo, tylko nie wiem jak zrobić żeby przed startem aplikacji było zapytanie o hasło :(. Co radzicie? Może zostać przy skrypcie i podawaniu hasła w konsoli?

Pozdrawiam
Awatar użytkownika
vytah
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 11 paź 2007, 17:44
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: vytah »

gksudo może przecież być w skrypcie... sam to kiedyś używałem
bo ze mnie jest zimnokrVisty aktyVista co śVista na oczyVistą oczyVistość, która jest naroVista i zaVistna o moje śVistanie
trzeci-punkt.blog.onet.pl
Adawo
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lis 2007, 16:12
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: Adawo »

Rzecz do zrobienia bardzo prosta, musisz dopisać do źródła projektu (Projekt -> pokaż źródło projektu) przed Application.Initialize swój kod, w tym wypadku sprawdzający wynik działania skryptu...
Awatar użytkownika
xam
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 14 sty 2008, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Wykonanie polecenia w Lazarusie

Post autor: xam »

przed Application.Initialize swój kod, w tym wypadku sprawdzający wynik działania skryptu...
Czyli skrypt np. w wyniku daje jakąś wartość i program na jej podstawie uruchamia sie jako root?
Dobrze myślę, bo trochę nie rozumiem :-|
Adawo
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lis 2007, 16:12
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: Adawo »

Uruchamiasz skrypt, i jeśli rezultat skrypu będzie pozytywny, w tym wypadku poprawnie wpisane hasło, to uruchamiasz program, w przeciwnym razie nie. Mniej więcej w pseudokodzie:

if not WynikDzialaniaSkryptu then exit;
Awatar użytkownika
command_dos
Wytworny Kaczor
Wytworny Kaczor
Posty: 288
Rejestracja: 11 wrz 2008, 12:22
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Wykonanie polecenia w Lazarusie

Post autor: command_dos »

Nie wiedziałem, że temat był już wałkowany - ja napisałem coś takiego, w tym wątku:

viewtopic.php?t=44070&page=3

może tutaj znajdziesz odpowiedź na to jak wykonać skrypt w trybie admina...
Ubuntu User number is # 26071 - http://command-dos.blogspot.com/ - Mój skromny blog command_dos'a - pozdrowionka -
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 73 gości