خطأ في كود تشغيل برنامج اخر
#1
Question 
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله تعالى وبركاته
هذا اول مشاركة في هذا المنتدى الجميل
ابدء مع البرمجة ببرنامج  RAD Studio 
جربت الكود التالي لكن ظهر به خطأ
كود :
ShellExecute(Handle,'open',PChar('D:\fiel\FIEL.EXE'),nil, 'D:\fiel', SW_SHOWNORMAL) ;
[صورة: 150574912704741.png]D
الرد
#2
وعليكم السلام ورحمة الله وبركاته ومغفرته

اضف uses
Winapi.ShellAPI
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#3
شكرا لك اخي الكريم لكنني  هذه اول مرة اتعامل بهذا البرنامج
ممكن اضافة لو سمحت وهي طريقة جعل الفورم لا يظهر اي مخفي
وشكرا Shy
الرد
#4
Form1.Hide;
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#5
وجدت الكود اخي شكرا لك
كود :
Application.Initialize;  Application.ShowMainForm:=False;  Application.CreateForm(TForm1, Form1);  Application.Run;
الرد
#6
اريد عكس العملية اخواني بحيث اريد اخفاء البرنامج الذي اقوم بتشغيله
وهناك مشكلة عندما اشغل البرنامج الثاني لا يتوقف عن تشغيله يظل يشغله
ارجو الفكرة واضحة وشكرا

(19-09-2017, 07:04 PM)bidaya كتب : اريد عكس العملية اخواني بحيث اريد اخفاء البرنامج الذي اقوم بتشغيله
وهناك مشكلة عندما اشغل البرنامج الثاني لا يتوقف عن تشغيله يظل يشغله
ارجو الفكرة واضحة  وشكرا
اي البرنامج الرئيسي يفتح البرنامج الثاني ولا يتوقف على اعادة فتحه
اريد فتحه ويتوقف Wink
الرد
#7
كود :
uses ShellApi; ... var    SEInfo: TShellExecuteInfo;    ExitCode: DWORD;    ExecuteFile, ParamString, StartInString: string; begin    ExecuteFile:='c:\Windows\Calc.exe';    FillChar(SEInfo, SizeOf(SEInfo), 0) ;    SEInfo.cbSize := SizeOf(TShellExecuteInfo) ;    with SEInfo do begin      fMask := SEE_MASK_NOCLOSEPROCESS;      Wnd := Application.Handle;      lpFile := PChar(ExecuteFile) ; { ParamString can contain the application parameters. } // lpParameters := PChar(ParamString) ; { StartInString specifies the name of the working directory. If ommited, the current directory is used. } // lpDirectory := PChar(StartInString) ;      nShow := SW_SHOWNORMAL;    end;    if ShellExecuteEx(@SEInfo) then begin      repeat        Application.ProcessMessages;        GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;      until (ExitCode <> STILL_ACTIVE) or Application.Terminated;      ShowMessage('Calculator terminated') ;    end    else ShowMessage('Error starting Calc!') ; end;
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
[-] كل من 1 user says قال شكرا ل mobile على المشاركة المفيدة
  • bidaya
الرد
#8
[quote pid='42888' dateline='1505845792']
كود :
الف شكر لك اخي الكريم على الكود لكن البرنامج الذي تم تشغيله بالبرنامج الاساسي ظل ظاهر انا اريد البرنامج الثاني يشتغل لكن في الخفاء ولما اغلق البرنامج يغلق معه وشكرا مرتا اخرى

[/quote]

(20-09-2017, 12:18 AM)bidaya كتب : معذرتا لقد تعلمت من عدت محاولات على هذا الكود وتم اخفاء الفورم الرئيسي والبرنامج الذي تم تشغيلع
الان يجب وظع كود اذا كان البرنامج الاول شغال واردت التشغيل تطلع رسالة بانه قيد التشغيل Dodgy
الرد
#9
كود :
program Project1; uses Forms, Windows, // ?? ???????? ??? ??????? Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} var HM: THandle; function Check: boolean; begin HM := OpenMutex(MUTEX_ALL_ACCESS, false, 'MyOwnMutex'); Result := (HM <> 0); if HM = 0 then HM := CreateMutex(nil, false, 'MyOwnMutex'); end; begin if Check then Exit; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم