Nieoczekiwany błąd w wywołaniu procedury ShellExecute

1

W wywołaniu procedury ShellExecute():

function AdresIPFaktyczny:string;
begin
  ShellExecute(Handle,'Open','D:\Autoryzacja\DajIP.bat',
               nil,nil,SW_HIDE);
end;{of AdresIPFaktyczny}

wystąpił nieoczekiwany błąd Undeclare Identifier:Handle, a nieoczekiwany dlatego, że w innym programie identyczne wywołanie:

procedure TForm1.Button5Click(Sender: TObject);
begin
  ShellExecute(Handle,'Open','D:\Autoryzacja\DajIP.bat',
               nil,nil,SW_HIDE);
end;

dało spodziewany wynik. Nadmieniam, ze w uses umiściłem w obu przypadkach moduł ShellApi. No i jestem w kropce Bądź aniołem i pomóż mi,

2

w pierwszej z funkcji brakuje jej deklaracji.
Albo dajesz

function TForm1.AdresIPFaktyczny: String;

albo

function TForm1.AdresIPFaktyczny: String;
begin
  ShellExecute(Form1.Handle, 'Open', 'D:\Autoryzacja\DajIP.bat', nil, nil, SW_HIDE);
0

Nie musisz podawać uchwytu okna-rodzica do ShellExecute, jeśli operacja nie jest powiązana z oknem Twojej aplikacji. W takim przypadku po prostu podaj w tym parametrze 0, co oznacza brak uchwytu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.