PDA

View Full Version : اجرای فایل با جزئیات



Delphi-Man
چهارشنبه 18 مهر 1386, 22:30 عصر
سلام اگر بخواهیم یک برنامه را باز کنیم و تعیین کنید که چکار کند چه راهی وجود دارد؟ مثلا Notepad را با یک دستور اجرا کنیم و مسیر فایلی را در زمان اجرای آن تعیین کنیم که notepad آن را باز کند؟ درواقع میخواهم فایل exe را با پارامتر اجرا کنم.

Arman_1367
چهارشنبه 18 مهر 1386, 22:43 عصر
ShellExecute(0,'OPEN','NotePad.exe','FileName','', SW_SHOWDEFAULT);

به جای Filename نام و مسیر فایل را بنویسید.
موفق باشید.

hossein taghi zadeh
چهارشنبه 18 مهر 1386, 22:47 عصر
با سلام

شما باید از تابع CreateProcess استفاده کنید، پس این کلمه را جستجو کنید.
در ضمن

Function WinExecAndWait32(FileName: String; Visibility: Integer): Integer;
Var
WorkDir: String;
StartupInfo: TStartupInfo;
Resultado, ExitCode: DWord;
zCurDir: Array[0..255] Of Char;
zAppName: Array[0..512] Of Char;
ProcessInfo: TProcessInformation;
Begin
StrPCopy(zAppName, FileName);
GetDir(0, WorkDir);
StrPCopy(zCurDir, WorkDir);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);

StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
CreateProcess(Nil,
zAppName, { pointer to command line string }
Nil, { pointer to process security attributes}
Nil, { pointer to thread security attributes}
false, { handle inheritance flag }
CREATE_NEW_CONSOLE Or { creation flags }
NORMAL_PRIORITY_CLASS,
Nil, { pointer to new environment block }
Nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo);

{Espera a que termine la ejecucion}
{Wait until execution finish}
Repeat
ExitCode := WaitForSingleObject(ProcessInfo.hProcess, 10);
Application.ProcessMessages;
Until (ExitCode <> WAIT_TIMEOUT);
GetExitCodeProcess(ProcessInfo.hProcess, Resultado);
MessageBeep(0);
CloseHandle(ProcessInfo.hProcess);
Result := Resultado;
End;

WinExecAndWait32('Notepad c:\1.txt', SW_SHOWNORMAL);