PDA

View Full Version : چطور برنامه رو به صورت kiosk طراحی کنیم؟



realman
دوشنبه 09 مرداد 1385, 10:13 صبح
در اکثر برنامه های Autorun سازی حالتی در برنامه وجود داره در هنگام نمایش برنامه یک صفحه رنگی به صورت ثابت پشت تمامی form های برنامه نمایش داده می شه.
می خواستم بدونم چه جوری می شه این کار رو کرد.
مزیت این کار اینه که برنامه ما در یک محیط مجزا قرار می گیره.به این حالت هم اصطلاحا kiosk mode میگن.

این دو تصویر رو ببینید،شاید منظورم رو متوجه شدید.
پیشاپیش از لطف شما متشکرم.

mzjahromi
دوشنبه 09 مرداد 1385, 10:31 صبح
نمی دونم شاید من اشتباه فهمیده باشم
ولی این کار زیاد پیچیده نیست یه فرم اصلی میسازید و به صورت Client قرارش بدید و بقیه فرمها رو روی اون ShowModal کنید

baboozadeh
دوشنبه 09 مرداد 1385, 13:19 عصر
QSetup برنامه ای یه که این امکان رو داره، میشه باهاش bg دلخواه browse کرد یا bg رو سایه زد ...

realman
دوشنبه 09 مرداد 1385, 13:38 عصر
ممنون از دوستان.
ببخشید که منظورم روخوب بیان نکردم.
در بالا دو تا تصویر گذاشتم.حالت اول kiosk است.همونطور که می بینید هیچ چیز از windows دیده نمی شه.حتی Taskbar.

vcldeveloper
سه شنبه 10 مرداد 1385, 09:38 صبح
همون کار آقای mzjahromi را انجام بده با این تفاوت که فرم اصلی را با استفاده از خصوصیت ٌWindowState (wsMaximized) بصورت Full Screen نمایش بده.

realman
سه شنبه 10 مرداد 1385, 10:03 صبح
با تشکر از شما:
تا این جای کار مشکلی نبود.علت اینکه من فکر می کردم برای این کار از تکنیک خاصی استفاده شده پنهان شدن خودکار taskbar بود.
البته من کد پنهان کردن اون هم دارم.ولی یه عیب بزرگ داره و اون هم اینه که اگر به هر دلیلی برنامه با مشکل مواجه بشه کاربر دیگه به taskbar دسترسی نداره.
به نظر شما برای این قسمتش چه کاری باید انجام بدم؟

Bahmany
سه شنبه 10 مرداد 1385, 10:25 صبح
سلام
اول WindowState رو درحالت Maximaze قرار بده در خصوصیات Form1
بعد در رویداد OnCreate فرم 1 کد زیر رو بنویس
Form1.BorderStyle:=bsNone;

realman
سه شنبه 10 مرداد 1385, 10:37 صبح
سلام
اول WindowState رو درحالت Maximaze قرار بده در خصوصیات Form1
بعد در رویداد OnCreate فرم 1 کد زیر رو بنویس
Form1.BorderStyle:=bsNone;

دوست عزیزم من با این قسمتش مشکلی ندارم.مساله من taskbar یا هر چیز دیگری در ویندوز هستش.در حقیقت من با این کار می خوام کاربرم رو در یک محیط مجزا از ویندوز قرار بدم.

Sub Zero
یک شنبه 07 مرداد 1386, 23:31 عصر
میدونم که بعد حدود یک سال جواب دادن به این تاپیک کارخنده داریه اما چون امکان داره هنوز خیلیها جوابی برای انجام این کار پیدا نکردند راه حلش رو میگم .

تنها کاری که باید انجام بشه اینه که در مسیر زیر در رجیستری ویندوز کلید Shell رو پیدا کنید و مقدار اون رو (Explorer.exe ) با مسیر و نام کامل برنامتون عوض کنید :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
البته این کار باید از طریق کد نویسی انجام بشه .
من یه نمونه برنامه با .Net نوشتم اینم لینکش (http://barnamenevis.org/forum/attachment.php?attachmentid=9095&d=1181647083)
برای بهتر مشخص شدن موضوع این تاپیک رو هم مطالعه کنید.

Arman_1367
دوشنبه 08 مرداد 1386, 00:18 صبح
منم دیدم بحث داغه این را نوشتم.

می تونی در هنگام اجرای برنامت با استفاده از تابع
CreateDesktop یک میز کار خالی بسازی برنامه را بفرستی بهش و قبل از خروج هم میز کار را ببندی این عاقلانه تر هست چون همه جور کاری میشه کرد.