Jak uruchomić zewnętrzny program po wciśnięciu przycisku?

0

Witam
Jestem osobą początkującą i proszę o zrozumiałość.

Poszukuję osoby która mi pomoże stworzyć funkcje w programie (Delphi)

Chciałbym stworzyć taką funkcję że po naciśnięciu przycisku „Button” uruchamia się plik z ścieżki „/Folder/setup.exe” bez pośredni z plików który się znajduje program i obok folder o nazwie np. "Folder" w nim "setup.exe"

Będę wdzięczny za pomoc dzięki.

1

W zdarzeniu onClick przycisku wykonujesz: ShellExecute

0
katakrowa napisał(a):

W zdarzeniu onClick przycisku wykonujesz: ShellExecute

nie wiem czy to ta funkcja "ShellExecute" ponieważ tam trzeba podać pełna ścieżkę to pliku padając literę Dysku.

1

No bez przesady! To brzmi jakbyś tego Delphi jeszcze nawet nie włączył.
Musisz przeciągnąć button na formularz, dwukrotnie kliknąć w button i przepisać z linka, który podałem składnię wywołania programu - to wszystko roboty na 45 sekund.

Jeśli tego nie ogarniasz proszę obejrzyj choć jeden tutorial o Delphi, których na Youtube i nawet po Polsku nie brakuje, np:

0

wiem jak się wprowadza funkcję.

0

Zatem czego nie wiesz?

0

Proszę napisz jak byś napisał tą funkcje używając "ShellExecute"

1

A czy spróbowałeś już samodzielnie cokolwiek napisać? Jeśli tak to proszę pokaż co - wtedy zastanowimy się dlaczego nie działa.

https://www.google.com/search?q=ShellExecute+delphi+example

0

Widzę że nie chcesz mi pomoc.
Tak próbuję.

Zrobiłem na innym programie niż Delphi

https://ibb.co/yQw0DBV

Tylko musiałem wybrać funkcję „OpenRunFile” i wprowadzić „File Name:” Ścieszkę którą widzisz na zdjęciu.

0
  1. Obejrzałeś tutorial?
  2. Czy masz Delphi?
  3. Czy utworzyłeś w Delphi nowy pusty projekt "WindowsForms" ?
0
  1. Zostawię komentarz dla siebie.
  2. Tak mam posiadam program Delphi jak pan może zauważyć w tytule „Tworzenie funkcji - Delphi [Pomoc]” słowo „Delphi”
  3. Mogę stworzyć 100 nowych projektów pustych w klikając ikonkę Delpih.exe i potem klikam „File” a potem „New” potem „Windows VCL Application – Delphi”.
1

Przynajmniej człowiek jest grzeczny :)

Kod pod przyciskiem, który uruchomi program znajdujący się w podfolderze aplikacji "Delphiowej"

procedure TForm1.Button1Click(Sender: TObject);
var mypath :string;
begin
  mypath := ExtractFilePath(Application.ExeName)+'Folder/setup.exe';
  ShellExecute(Handle, 'open', PChar(mypath), nil, nil, SW_SHOW);
end;

do uses jeszcze należy dodać Shellapi

0

Można za pomocą ShellExecute, ale wygodniej za pomocą TProcess, który przy okazji daje sporo możliwości.

2
furious programming napisał(a):

Można za pomocą ShellExecute, ale wygodniej za pomocą TProcess, który przy okazji daje sporo możliwości.

Chcesz go zabić? ;-)
Przecież w Delphi nie ma TProcess...
Ale pewnie o tym wiesz :D

0

Dzięki @Svenson !
Ktoś normalny pomógł.
Wprowadziłem tą funkcje którą mi napisałeś do przycisku „Button” ale nie działa nie wiem czemu ?

Informuje, że jest błąd w

ShellExecute(Handle, 'open', PChar(mypath), nil, nil, SW_SHOW);
0

Sorry nie zauważyłem że napisałeś jeszcze
"do uses jeszcze należy dodać Shellapi"

Działa.

Svenson Dzięki.

1
RIP napisał(a):

Ktoś normalny pomógł.

Nie „pomógł”, a „rzucił gotowca”, a to dwie różne sprawy. Poza tym większość ludzi jest tutaj „normalnych” – jak już prosisz o pomoc to bądź łaskaw nie obrażać użytkowników, którzy nie chcą poświęcać czasu na odwalanie roboty za Ciebie.

Zresztą tego typu gotowce leżą tonami w sieci, więc zamiast leserować i czekać aż ktoś się gotowcem zlituje, wystarczyło spojrzeć choćby do Kompendium w tym serwisie – wszystko ładnie wytłumaczone, po polsku. Więcej znajdziesz oczywiście w Google (już pierwszy link miażdży mnogością opisów i przykładów), ale oczywiście to za trudne – lepiej żebrać na forum.

Wprowadziłem tą funkcje którą mi napisałeś do przycisku „Button” ale nie działa nie wiem czemu ?

Bo drutujesz niezrozumiały kod, zamiast zabrać się za naukę podstaw. A bez znajomości choćby podstaw programowania w Delphi, żadnego programu nie napiszesz (i bez pomocy innych oraz nudzenia ich o prowadzenie za rączkę). A poza tym, będziesz tracił kupę czasu odświeżając forum i sprawdzając czy coś się pojawiło, czy nie. No ale powodzenia życzę.

0

Szanuję ludzi i szanuje tych którzy mi pomogli i poświęcili mi czas że mi pomóc.
Nikogo nie chciałem tutaj obrażać.
Rozumiem i przepraszam.

0
Svenson napisał(a):

Przynajmniej człowiek jest grzeczny :)

Kod pod przyciskiem, który uruchomi program znajdujący się w podfolderze aplikacji "Delphiowej"

procedure TForm1.Button1Click(Sender: TObject);
var mypath :string;
begin
  mypath := ExtractFilePath(Application.ExeName)+'Folder/setup.exe';
  ShellExecute(Handle, 'open', PChar(mypath), nil, nil, SW_SHOW);
end;

do uses jeszcze należy dodać Shellapi

Zastanawia mnie ta linijka mypath := ExtractFilePath(Application.ExeName)+'Folder/setup.exe';
działasz na serwerze czy powinno być: mypath := ExtractFilePath(Application.ExeName)+'Folder\setup.exe';

0

Można prościej


uses shellapi

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShellExecute(Handle, 'open', PChar(ExtractFilePath(Application.ExeName)+'Folder\setup.exe'), nil, nil, SW_SHOW);
end;

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