باز هم برگشتیم سر پله اول
نقل قول:
سلام
ببينيد اين همون چيزي است كه ميخواهيد :
(اين كد برنامه را فقط از TaskBar حذف مي كند، بقيه كارها را بايد خودتان انجام دهيد)
کد:
program Project1;
uses
Forms,
Windows,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
var
ExtendedStyle: Integer;
begin
Application.Initialize;
if ((ParamCount = 1) and (paramstr(1) = 'ShowMe')) then
begin
Application.Tag := 1;
end
else
begin
Application.Tag := 0;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
کد:
procedure TForm1.FormCreate(Sender: TObject);
begin
if Application.Tag = 0 then
begin
ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;
end;
end;
اینو که می دونستم :13::13::13:
برای مخفی کردن این کار و قبلا انجام دادم مشکل من همونی که گفتم می خوام برنامه از Run یا هرجای دیگه ای یه دستور بگیره - پارامتر ورودی - بعد بر اساس اون یه کاری انجام بده حتی اگر فرم اصلی هم نمایش داده نشه - در پشت صحنه کار کنه -
الان به کد یکم دقت کردم توی بخش اول که گفتید در نظر بگیرید که برنامه در حال اجراست و در صورت اجرای مجدد جلوی ادامه کار گرفته میشه - در هر لحظه تنها یک نسخه از برنامه می تونه اجرا بشه با استفاده از Mutex اگر املاشو درست نوشته باشم - حالا سر این پارامتر می خوام یه بلایی بیارم یعنی اگر برنامه قبلا اجرا شده بود این پارامتر رو به اون برنامه بفرستم و ...
بازم ممنون که جواب دادید :46::46::46::46::46: