PDA

View Full Version : سوال: بستن یک کادر پیام ویندوز ، بدون کلیک کاربر بر روی دکمه Ok



hadisalahi2
پنج شنبه 11 دی 1393, 10:30 صبح
سلام به همگی

من یک برنامه Setup ساختم که همه کارهای نصب یک نرم افزار رو خودش انجام میده .

در انتهای نصب یک فایل OCX رو که مال قفل سخت افزاری هست رو، رجیستر میکنم.

بعد از اجرای فایل bat که اون دستور رجیستر رو اجرا میکنه
یک پنجره به صورت زیر ظاهر میشه:

127102

حالا برنامه نصب منتظر میمونه تا کاربر روی Ok کلیک کنه.

حالا آیا روشی هست که عمل کلیک روی دکمه OK رو خودم شبیه سازی کنم و کلا این پنجره نمایش داده نشه یا نه؟

ممنون از همگی

یا حق

Mask
پنج شنبه 11 دی 1393, 11:29 صبح
یا خدا.
حاجی یعنی برنامه نویسیا.
چرا با کامند لاین اخه؟
اگه اصرار به این کار داری میتونی با s/ سایلنت نصبش کنید و راحتترش اینه که خودت با کد نویسی در برنامه نصبش کنی.
به این شکل:

procedure RegisteredOcxDll(Path:string);type
TDLLRegisterServer = function: HResult stdcall;
var
MangoOCX : THandle;
Registrar : TDllRegisterServer;
begin
MangoOCX:= LoadLibrary(pchar(Path));
Registrar:= GetProcAddress(MangoOCX, 'DllRegisterServer');
if Registrar <> 0 then
ShowMessage('Error');
FreeLibrary(MangoOCX);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:=ExtractFilePath(Application.ExeName)+' tiny.ocx';
end;

hadisalahi2
پنج شنبه 11 دی 1393, 12:12 عصر
حاجی یعنی برنامه نویسیا.
چرا با کامند لاین اخه؟


راستش تا الان موردش پیش نیومده بود از این دستورات استفاده کنم و این رو هم از همون راهنمای نصب قفل برداشتم . :خجالت:



اگه اصرار به این کار داری میتونی با
s/
سایلنت نصبش کنید و راحتترش اینه که خودت با کد نویسی در برنامه نصبش کنی.


نه داداش اصلا اصراری ندارم
وقتی راه ساده تر هستش ، مگه مجبورم از راه های سخت استفاده کنم :چشمک:


procedure TForm1.FormCreate(Sender: TObject);begin
Edit1.Text:=ExtractFilePath(Application.ExeName)+' tiny.ocx';
end;

نفهمیدم این تیکش چیه؟
فکر کنم مسیر فایل OCX رو باید بفرستم
درسته؟
یعنی اینطوری:


RegisteredOcxDll(ExtractFilePath(Application.ExeNa me)+' tiny.ocx')

BORHAN TEC
پنج شنبه 18 دی 1393, 23:01 عصر
سلام،
اگه از قفل سخت افزاری tiny استفاده می کنی اصلاً نیازی به رجیستر کردن ocx نداری. برای اینکار باید از فایل res مربوطه استفاده کنی:
http://www.dedj.com/Download.html

hadisalahi2
یک شنبه 21 دی 1393, 10:00 صبح
شاهین جان درسته از قفل tiny استفاده میکنم
اما این manifest اصلا جالب نیست
به خودشون هم گفتم
کلا وقتی کنار پروژه خودت لود میکنی ، همه تم های ویندوز رو از کار میندازه

مثلا من وقتی توی ویندوز Xp کار میکردم و XpManifest رو به پروژه اضافه میکردم ، کلا این کامپوننت رو از کار مینداخت و تم برنامه میشد مثل ویندوز 98 یا 2000

واسه همین دیگه ازش استفاده نکردم

آیا این نسخه جدیدشه که با تم سازگاری داره؟

BORHAN TEC
یک شنبه 21 دی 1393, 23:07 عصر
آیا این نسخه جدیدشه که با تم سازگاری داره؟
بله، ولی به شرط اینکه به جای manifest از فایل res استفاده کنید. که با اینکار دیگه نیازی نیست که فایل manifest رو در کنار برنامه قرار بدید. این قضیه کاملاً تست شده و درست کار میکنه و همین الان هم چند هزار نفر از مشتریانمون بدون فرایند رجیستر کردن ocx مربوطه دارن از برنامه استفاده میکنند.

hadisalahi2
دوشنبه 22 دی 1393, 16:02 عصر
بله، ولی به شرط اینکه به جای manifest از فایل res استفاده کنید.


الان توی این دانلودی که انجام دادم یک فایل به نام Manifest.RES و یا فایل به نام Manifest.rc وجود داره و البته این فایل YourExeName.exe.manifest.

و این عکس رو هم داره داخلش :

127501

حالا منظورتون هر دو تا فایله؟

در ضمن بعد از کامپایل آیا نیازی به بودن این فایلها در کنار برنامه اصلی هستش یا نه؟

توی راهنمایی که داره ، نوشته اون فایل مانیفست هم باید همراه و همنام پروژه باشه

BORHAN TEC
دوشنبه 22 دی 1393, 21:30 عصر
اول فایل manifest رو در کنار فایل rc قرار بدید و سپس فایل rc رو با notepad باز کنید و داخلش اسم فایل مانیفست رو وارد کنید. بعد از انجام این کار در command prompt دستور زیر را وارد کنید:

rc c:\manifest.rc
که به جای c:\ مسیر فایل وارد شود.
حالا با این کار یک فایل RES ساخته میشه که میتونی ازش طبق عکسی که قرار دادی استفاده کنی.

بعد از انجام این کارها برای توزیع برنامه فقط کافیه که فایل tiny.ocx رو در کنار فایل exe قرار بدید. همین! اگه توی راهنماش چیز دیگه ای گفته، اشتباه گفته چون با انجام این کارها برنامه توزیع شده نیازی به فایل manifest و ... نداره.

hadisalahi2
پنج شنبه 25 دی 1393, 11:23 صبح
که به جای c:\ مسیر فایل وارد شود.
حالا با این کار یک فایل RES ساخته میشه که میتونی ازش طبق عکسی که قرار دادی استفاده کنی.




داش شاهین من این کار رو انجام دادم ، اما فایل res ساخته نمیشه

محتویات فایل rc هم این هستش :


1 24 "HakimAsrar.exe.manifest"

اینطوری هم توی خط فرمان تایپ میکنم دستور رو:


rc C:\New folder\Manifest.rc


توی فایلهایی که گرفتم از سایتش ، یا فایل Res هست
ولی وقتی پاکش میکنم ، فایل جدید ایجاد نمیشه

BORHAN TEC
پنج شنبه 25 دی 1393, 20:43 عصر
توی سیستم من به خوبی کار میکنه. من بعد از تایپ rc متون زیر رو میبینم(به ورژن دقت کن):

hadisalahi2
شنبه 27 دی 1393, 12:33 عصر
توی سیستم من هم کار میکنه
اما نمیدونم چرا فایل res ساخته نمیشه

البته نسخه من از اونی که تو عکسش رو گذاشتی بالاتره
در ضمن ویندوز من 64 بیتی هستش
اما نسخه دلفی من 32 بیتی

آیا ممکنه مشکل توی این تفاوت باشه ؟
127657

hadisalahi2
دوشنبه 29 دی 1393, 12:04 عصر
فکر کنم فهمیدم مشکل کجاست
البته این مشکل خیلی عجیب بود ولی راه حل ساده داشت

مشکل توی طول مسیر فایل rc بود
وقتی طوی یک مسیر فایل زیاد باشه ، توی CMD اون خط تبدیل به دو خط میشه و هنگام اجرا خطا میده

البته این رو وقتی متوجه شدم که دستورات رو توی یک bat گذاشتم

الان توی مسیرهای کوتاه ، فایل res ایجاد میشه

واقعا چیز عجیبی بود !!!!!!!!!!!!! :متعجب::متعجب::متعجب::متعجب:: تعجب: