Chce stworzyc program ktory bedzie uruchamial inny. Chcialem skozystac z http://4programmers.net/view_faq.html?id=320 ale obie funkcje nie dzialaja. Czemu? Z ususes usunalem wszystko. Jest to aplikacja bez formy dzieki czemu udalo mi sie zachowac jej rozmiary w wielkosci <15 kB. Ale gdy probuje uruchomic program za pomoca WinExec to wyskakuje 'Undeclared identifier' a gdy chce skorzystac z ShellExecute to przy uchwycie (handle) wyskakuje 'Undeclared identifier'. Naturalnie dodalem ShellApi do uses'ow. Myslalem zeby wpisac nil ale naturalnie to nie dziala. Co zrobic? Lub jak inaczej uruchomic jakis program?
Wyskakuje blad bo nie zna tej instrukcji. Mam nadzije ze pracujesz w project :) bo jesli wszystko usunoles to unit1 tez? (zart)
musisz dodac ShellApi do uses
'Naturalnie dodalem ShellApi do uses'ow' :p to cytat :d
Sprobuj tego:
(oczywiscie trzeba dodac shellapi)
function ExecuteFile(const FileName, Params, DefaultDir: string;
ShowCmd: Integer): THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd);
end;
uzywanie: np: ExecuteFile('C:\command.com',,
, SW_SHOW);
ShellExecute(Application.MainForm.Handle....
Znow ten Handle!
Mam usuniete formy! Nie mam nic po za glownym programem! Dlatego nie ma handle i stad problem z normalna procedura!
Wstaw np. GetDesktopWindow,
wpisz 0 tam gdzie trzeba wpisać handle
W mojeje funkcji nie podajesz handle, wiec o co ci chodzi? Mozesz tez podac nil
pozdrawiam
ShellExecute(Application.MainForm.Handle....
Znow ten Handle!
Mam usuniete formy! Nie mam nic po za glownym programem! Dlatego nie ma handle i stad problem z normalna procedura!
no ale Application.Handle chyba jednak jeszcze zostało.....??
Jeśli nie ma modułu Forms - to nie ma też obiektu Application. Czyli abo 0, albo GetDesktopWindow.
zamiast ShellAPI dodaj do uses Windows (w Project Source)