Na kürzer geht das mit dem Aufrufen auch noch ^^
Delphi-Quellcode:
ShellExecute(0, 'open', PChar(prog), PChar(params), nil, SW_NORMAL);
oder
ShellExecute(0, nil, PChar(prog), PChar(params), nil, SW_NORMAL);
Und wo nach den progemmen gesucht wird bekommst du z.B. über solch Systemweite Variablen wie PATH raus (ach, das gute alte DOS ^^)
also wenn du einfach nur den Programmnamen angibts wird es wie schonmal gesagt in diesen Pfaden gesucht, sobald es nicht im aktuellen Verzeichnis zu finden ist, wenn es allerdings nicht in enem der Pfade zu finden ist, dann wird es halt nicht gestartet, weil ja es nicht gefunden werden konnte
z.B.:
ShellExecute(0, nil, 'winword.exe', nil, nil, SW_NORMAL);
wenn es dich mal so interessiert, hier einige das Variablen, welche es meistens gibt.
mach dir einfach 'ne Datei (z.B. test.bat) kopier das Folgende rein und dann starte diese Datei einfach.
Code:
@echo off
echo
OS = %
OS%
echo PATH = %PATH%
echo HOMEPATH = %HOMEPATH%
echo TEMP = %TEMP%
echo USERPROFILE = %USERPROFILE%
echo ALLUSERSPROFILE = %ALLUSERSPROFILE%
echo ProgramFiles = %ProgramFiles%
echo SystemRoot = %SystemRoot%
echo SystemDrive = %SystemDrive%
echo windir = %windir%
echo sysdir = %sysdir%
pause
wichtig ist vorallem %PATH%.
und über Delphi kann man Diese mit
ExpandEnvironmentStrings abfragen.