Как да пуснете някой файл от програма на Delphi

Като се има предвид в тази статия, кодът ще ви помогне лесно да пуснете някой изпълним или обикновен файл директно от вашата кандидатура Delphi. В този пример, ние също ще обмисли начин за стартиране на EXE с прехвърлянето на файла, за да го отворите, т.е. научите как да отворите други файлове с помощта на каквато и да е програма.







За един прост план изпълним файл или всеки друг файл може да се използва nazheprivedennuyu функция. Заслужава да се отбележи, че за да работи, трябва да свържете shellapi модул.

[Cc Lang = 'Delphi'] функция ExecuteFile (конст FileName, Params, DefaultDir: низ; ShowCmd: цяло число): THandle;
започвам
Резултат: = ShellExecute (Application.MainForm.Handle, нула, PChar (име), PChar (Params)
PChar (DefaultDir), ShowCmd);
край [/ см]

Един пример за използване на ExecuteFile функции:

[Cc Lang = 'Delphi'] ExecuteFile ( "myexe.exe" »,», SW_SHOW); // тече Търсейки файл







ExecuteFile ( "text.txt", »,», SW_SHOW); // започне TXT файл програмата по подразбиране [/ см]

функция ExecuteFile ви позволява да отворите, не само на изпълними файлове, но и всякакви други файлове, като например текст. В този случай, файлът ще се отвори програмата, която се възлага на този тип файлове в системата.

Но понякога искате да отворите файл специфична програма. Това ще ни помогне следния код:

[Cc Lang = 'Delphi'] процедура openfile;
Var
команден-ред, fName: WideStringstring;
SI: TStartupInfo;
пи: TProcessInformation;
започвам
CMDLINE: = "C: \ program.exe"; // пълния път към програмата, която искаме да отворите файла
fName: = 'а: \ text.txt "; // пълния път до файла

FillChar (SI, SizeOf (SI), # 0);
с SI започвайте
вб: = SizeOf (SI);
dwFlags: = STARTF_USESHOWWINDOW;
wShowWindow: = SW_SHOW;
приключи;

ако CreateProcessWCreateProcessA (
нула, // lpApplicationName,
pWideCharpChar (команден-ред + fName), // lpCommandLine,
нула, // lpProcessAttributes,
нула, // lpThreadAttributes,
Вярно е, че // bInheritHandles,
0, // dwCreationFlags
нула, // lpEnvironment,
нула, // lpCurrentDirectory,
SI, // lpStartupInfo,
PI) след това започва // lpProcessInformation
WaitForSingleObject (pi.hProcess, безкрайност);
CloseHandle (pi.hProcess);
приключи;
приключи;
[/ Cc]