PDA

View Full Version : برنامه مقیم در حافظه



hadi azad
سه شنبه 30 فروردین 1384, 13:26 عصر
باسلام
اگر کسی در این مورد اطلاعاتی داره لطفا راهنمایی کنه
متشکرم

houshmand
سه شنبه 30 فروردین 1384, 14:03 عصر
با دلفی یا پاسکال؟
اگه دلفی راحتترین کار این است که فرم خودت را مخفی کنی :mrgreen:

vcldeveloper
چهارشنبه 31 فروردین 1384, 05:04 صبح
می تونی سرویس ویندوز بنویسی. قبلا در همی بخش درباره سرویس ها و نحوه ساختشون بحث شده

مرتضی نویس
چهارشنبه 31 فروردین 1384, 11:51 صبح
آقای ali11ali112000 با hide کردن فرم که برنامه در حافظه مقیم نشده
هم برنامه در taskbar دیده می شود وهم اگر در حالت keypress فرم عملیاتی تعبیه شود در حالت hide شده و با تایپ هر کلیدی هیچ اتفاقی نمی افتد

اگر اشتباه می کنم بفرمایید

Delphi-Clinic
چهارشنبه 31 فروردین 1384, 12:12 عصر
می تونی سرویس ویندوز بنویسی. قبلا در همی بخش درباره سرویس ها و نحوه ساختشون بحث شده


منتهی تو سیستمهایی که ویندوز خدابیامرز 98 رو دارن مشکل پیدا می کنی.

ssmehizadeh
پنج شنبه 01 اردیبهشت 1384, 09:11 صبح
سلام دوست عزیز :
برای این کار ابتدا فرم رو به صورت مخفی در می اوری که این هم دو حالت داره : 1- فرم شما خالی باشه 2- در فرم از چند کنترل استفاده کرده باشی .

که برای هر کدوم دستور خاصی داره ....

کار بعدی شما باید فرم رو از task manager ببری ...

وقی تمام این کار ها رو کردی حالا هرموقع alt + f4 رو بزنی برنامه ات از حافظه بیرون میره که باید این دو دکمه هم برای برنامه ات غیر فعال کنی

و کار آخر اینکه در هنگام خاموش یا ریست کردن کامپیوتر باید برنامه رو خودت از حافظه بیرون بیاری وگرنه پیغام خطا میده ......

این یک سری توضیحات بود که برات درک بهتر برنامه ات دادم راستش قسمتی از پروژه پایانی خودم برنامه مقیم در حافظه بود که خوشبختانه با موفقیت انجام دادم .....

حالا بگو تا کجا پیش رفتی تا کمکت کنم ......

اگه خیلی عجله داری برام E mail بزن چون خیلی وقت ندارم توی سایت بیام
ssmehizadeh@yahoo.com

ولی خدایش ..... سایت خیلی خوبیه

houshmand
چهارشنبه 07 اردیبهشت 1384, 00:34 صبح
آقای ali11ali112000 با hide کردن فرم که برنامه در حافظه مقیم نشده
مقیم شدن یعنی چی؟


هم برنامه در taskbar دیده می شود
چه ربطی داره ((به سوال؟))

وهم اگر در حالت keypress فرم عملیاتی تعبیه شود در حالت hide شده و با تایپ هر کلیدی هیچ اتفاقی نمی افتد
ار توابع API استفاده کن

محمد میرمصطفی
چهارشنبه 07 اردیبهشت 1384, 03:08 صبح
موضوع اینه که مقیم بودن در حافظه تو کدوم OS؟ اگه منظور شما، تو محیط ویندوزه که کار زیاد سختی نیست. (عرض می‏کنم.) ولی اگه منظورت تو محیط داسه کار یکم سخته. تو داس هنگام خروج برنامه از حافظه باید از وفقه 33 استفاده کنی تا برنامه از حافظه خارج نشه، بلکه فقط مخفی بشه تا اتفاف خاصی بیافته (باصطلاح TSR بشه). مثلا کلیدی فشرده بشه یا از پرینتر استفاده بشه و از این قبیل کارها. خب برای اینکه برنامه با یه اتفاق خاص فعال بشه، باید آدرس بردار وقفه مخصوص اون اتفاق رو به سمت برنامه خودت تغییر بدی تا برنامه در صورت نیاز ازش استفاده کنه. (این کار شبیه به کارگیری Hookها در ویندوزه)
در ونیدوز هم یه کاری تو همین مایه‏ها باید بکنی. بسته به اینکه می‏خوای چه کاری انجام بدی باید کار خاصی بکنی. مثلا اگه می‏خوای برنامه شما با کلیدهای ترکیبی صفحه‏کلید کار کنه باید برنامه با خصوصیت ShowMainForm از آبجکت Application فرم اصلی خودش رو Hide کنه. بعد با تابع RogisterHotKey که یه API هست منتظر فشردن کلیدهای هدف بمونه.
البته از سرویس هم می‏شه استفاده کرد ولی یه‏کم محدودتره. (ضمنا تو 98 هم سرویس می‏تونه کار کنه ولی بازم محدودتر چون اونجا هم SCM شبیه‏سازی شده ولی protected نیست.
(البته این یه دیدگاه اجاملی بود. میشه بازم وارد عمق بیشتری از Detail شد.)