Hogyan kell futtatni bármilyen fájlt egy program delphi
Mivel ebben a cikkben, a kód segítségével könnyen semmilyen programot futtatni, vagy rendszeres fájlt közvetlenül a Delphi alkalmazás. Ebben a példában azt is meg fogja vizsgálni egy módja annak, hogy az exe az átutalást a fájl megnyitásához, azaz megtanulják, hogyan kell nyitni más fájlokat bármilyen programot.
Egy egyszerű futni egy futtatható fájl, vagy bármilyen más fájl használható nazheprivedennuyu funkciót. Érdemes megjegyezni, hogy ez a munka meg kell csatlakoztatni ShellAPI modult.
[Cc lang = 'Delphi] funkciót ExecuteFile (const fájlnév, Params, DefaultDir: string; ShowCmd: Egész szám): THandle;
kezdődik
Eredmény: = ShellExecute (Application.MainForm.Handle, nil, PChar (fájlnév), PChar (Params),
PChar (DefaultDir), ShowCmd);
végén; [/ cc]
Egy példa segítségével ExecuteFile funkciók:
[Cc lang = 'Delphi] ExecuteFile ( 'myexe.exe', »,», SW_SHOW); // futtatni exe fájlt
ExecuteFile (text.txt ",»,», SW_SHOW); // indul txt fájlt az alapértelmezett programot [/ cc]
ExecuteFile funkció lehetővé teszi, hogy nyissa meg a nem csak a futtatható fájlokat, hanem bármely más fájlok, például szöveget. Ebben az esetben a fájl megnyílik a program, amelyet az ezt a fájltípust a rendszerben.
De néha szeretne megnyitni egy fájlt egyedi program. Ez segít nekünk a következő kódot:
[Cc lang = 'Delphi] eljárás openfile;
var
CmdLine, fname: WideStringstring;
si: TStartupInfo;
pi: TProcessInformation;
kezdődik
CmdLine: = 'c: \ program.exe'; // teljes elérési útvonal a program, hogy mi szeretnénk megnyitni a fájlt
FNAME: = 'a: \ text.txt'; // teljes elérési utat
FillChar (si, sizeof (SI), # 0);
A si do kezdődik
CB: = sizeof (SI);
dwFlags: = STARTF_USESHOWWINDOW;
wShowWindow: = SW_SHOW;
végén;
ha CreateProcessWCreateProcessA (
nulla, // lpApplicationName,
pWideCharpChar (CmdLine + fname), // lpCommandLine,
nulla, // lpProcessAttributes,
nulla, // lpThreadAttributes,
Igaz, // bInheritHandles,
0, // dwCreationFlags
nulla, // lpEnvironment,
nulla, // lpCurrentDirectory,
si, // lpStartupInfo,
pi) akkor kezdődik // lpProcessInformation
WaitForSingleObject (pi.hProcess, INFINITE);
CloseHandle (pi.hProcess);
végén;
végén;
[/ Cc]