Nieoczekiwany błąd w wywołaniu procedury ShellExecute

Nieoczekiwany błąd w wywołaniu procedury ShellExecute
MD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
1

W wywołaniu procedury ShellExecute():

Kopiuj
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:

Kopiuj
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,

Pepe
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 505
2

w pierwszej z funkcji brakuje jej deklaracji.
Albo dajesz

Kopiuj
function TForm1.AdresIPFaktyczny: String;

albo

Kopiuj
function TForm1.AdresIPFaktyczny: String;
begin
  ShellExecute(Form1.Handle, 'Open', 'D:\Autoryzacja\DajIP.bat', nil, nil, SW_HIDE);
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
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.