View Full Version : گفتگو: طراحی نرم افزار به صورت ویندوز
saeedzx
پنج شنبه 23 اردیبهشت 1389, 22:57 عصر
با عرض سلام
یک مدتی بود که به فکرم رسیده بود که ما نرم افزار هایی رو می نویسیم تحت ویندوز بالا میاد و کاربران قادر هستند که از این برنامه می توانند استفاده می کنند
می خواستم بدونم آیا می شه که ما نرم افزاری رو طراحی کنیم که بوت داشته باشه یعنی ما به صورت یک فایل ویندوز مانند نرم افزار رو نصب کنیم سپس هر وقت کاربر سیستم را روشن نمود فقط نرم افزار باز بشه
نمونه : نرم افزار مدیریت بانک ها ( بانک ملی - بانک صادرات و....)
اگر می شه یک بحثی در این مورد شرح بدیم ؟؟؟:چشمک:
xxxxx_xxxxx
پنج شنبه 23 اردیبهشت 1389, 23:07 عصر
سلام،
خیر، چنین امکانی با VB6 وجود ندارد.
برنامه های VB6 تنها در محیط ویندوز(سیستم عامل) قابل اجرا هستند.
kooroush
جمعه 24 اردیبهشت 1389, 08:34 صبح
چه طور می شه چنین نرم افزارهایی نوشت !؟ آیا نرم افزاری وجود نداره که نرمافزار نوشته شده مارو به حالت بوت در بیاره !؟
MMR_1344
جمعه 24 اردیبهشت 1389, 09:29 صبح
با زبانهای سطح پایین ماننداسمبلی میشه اینچنین کارهائی رو انجام داد
vbhamed
جمعه 24 اردیبهشت 1389, 10:18 صبح
با عرض سلام
یک مدتی بود که به فکرم رسیده بود که ما نرم افزار هایی رو می نویسیم تحت ویندوز بالا میاد و کاربران قادر هستند که از این برنامه می توانند استفاده می کنند
می خواستم بدونم آیا می شه که ما نرم افزاری رو طراحی کنیم که بوت داشته باشه یعنی ما به صورت یک فایل ویندوز مانند نرم افزار رو نصب کنیم سپس هر وقت کاربر سیستم را روشن نمود فقط نرم افزار باز بشه
نمونه : نرم افزار مدیریت بانک ها ( بانک ملی - بانک صادرات و....)
اگر می شه یک بحثی در این مورد شرح بدیم ؟؟؟:چشمک:
سلام
تا جايي كه من مي دونم نرم افزار بانك صادرات تحت ويندوز Xp اجرا ميشه
آخه دوستم خودش مسئول نگهداري و سرويس نرم افزار و سخت افزار خودپرداز ها تو منطقه ماست
saeedzx
جمعه 24 اردیبهشت 1389, 12:19 عصر
تشکر می کنم از دوستان
من خودم یک مدت در بانک بودم و دیدم که وقتی سیستم روشن می شد فقط قسمت LOAD ویندوز بالا می آمد و سپس رمز عبور رو از کاربر می خواست یعنی وارد ویندوز نمی شد
به طراحان نرم افزار زنگ زدم ولی اوناهم جواب درستی بهم ندادن
منظور من از این کار اینکه کاربر وقتی سیستم رو روشن می کنه به جزء اینکه پسورد رو وارد نکنه تا وارد سیستم بشه هیچ کار دیگه ای نمی تونه بکنه
حمید محمودی
جمعه 24 اردیبهشت 1389, 12:19 عصر
سلام.
بله با vb6 رو نمیشه همچین برنامه ای که بدون ویندوز اجرا بشه نوشت. اما میتویند قبل از بالا اومدن یوزر، برنامه رو لود کنید. و اجازه وارد شدن به ویندوز رو ندید.
مثل برنامه هایی که بصورت bootable هستند و در زمان اجرای برنامه هایی مثل syskey اجرا میشن.
saeedzx
جمعه 24 اردیبهشت 1389, 12:21 عصر
خب دوست من جناب dcamera (http://barnamenevis.org/forum/member.php?u=85593) می تونی یک نمونه رو به ما نوشن بدین :متفکر:
sajjadrad
جمعه 24 اردیبهشت 1389, 12:42 عصر
من یه مدت دیوانه شدم این سیستم شبیه ساز خودپرداز رو با VB 2008 نوشتم...ضمیمه کردم واستون...نظرتونو بگین:لبخند::لبخند:
فقط یادتون نره Microsoft .Net Framework 3.5 به بالا نیاز داره!!:لبخند:
martoor
جمعه 24 اردیبهشت 1389, 14:22 عصر
دوست عزیز Visual Basic یک زبان بسیار سطح بالاست که فقط می شه از اون برای ساخت برنامه هایی الگوریتم محور استفاده کرد نه الگوریتم ساز برنامه هایی که با VB نوشته می شوند فقط پیرو هنجار های ویندوز هستند و این شکل عملیاتی که از نرم افزار می خواهید چیزی مانند پاک کردن فایل های در حال اجرا است . برای ساخت چنین نرم افزاری باید حدکم از زبانی مانند C و حد بالا اسمبلی و تنها کاری که در VB می توان انجام دارد استفاده از افزونه ها و OCX هاست .
من چند وقت پیش سورس یک آنتی ویروس را از یک سایت روسی دریافت کردم که در آن یک OCX وجود داشت که وظیفه ی آن حذف فایل های در حال اجرا بود . از این گونه OCX ها در اینترنت وجود دارد .
حمید محمودی
جمعه 24 اردیبهشت 1389, 14:24 عصر
قبلا یه برنامه ای بود از AtlantisMinds بنام Windows Password Expert که با vb6 نوشته شده بود. و بصورت برنامه bootable خودشو اجرا میکرد. (البته خیلی وقت پیش بود دیدمش الان نمیدونم این حرفی که زدم درسته یا نه)
اونو ببینید....
یه کار دیگه :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
در مسیر بالا به جای shell آدرس برنامه رو کامل بدید بعد هم به جای explorer برنامه شما اجرا میشه..
الان این چیزا به ذهنم رسیده و من هیچ یک از روش ها رو تست نکردم ... شما ببین این راه ها جواب میده...
والبته لینک زیر رو ببین :
http://www.bigresource.com/VB-Vb-Auto-Run-After-Boot-yxfiniLHfk.html#
موفق باشید
martoor
جمعه 24 اردیبهشت 1389, 14:32 عصر
البته یکی از دوستان بنده کار جالبی کرده بودن ، سورس یکی از نسخه های لینوکس را از اینترنت دریافت کرده بودن . سپس با نرم افزار Kbasic نرم افزار حسابداری خودشون رو برای لینوکس کامپایل کردند و بعد نرم افزار رو در StartUP گذاشتند و صفحه ی Login لینوکس رو مطابق میلشون تغییر دادن و منو ها و TaskBar رو برداشتند و اینگونه نرم افزار حسابداریشون هم بصورت Bootable نصب می شد ، و هم در بوت می شد وارد نرم افزار ایشون شد و هک نرم افزار و اطلاعات و کرکش هم غیر ممکن شد .
البته طرحش ررو خودم بهشون داده بودم و فکر نمی کردم ممکن باشه ولی ممکن شد .
M.T.P
جمعه 24 اردیبهشت 1389, 14:52 عصر
دوست عزیز اون دسته از برنامه هایی که بهشون اشاره کردین مثل نرم افزارهای بانک ها اونها تحت سیستم عامل Dos اجرا میشن نه اینکه خودکفا باشن ، نسخه های جدیدشون هم خب تحت ویندوز هستن و دوستان بهش اشاره کردن. اگه شما قصد ساخت برنامه ای خارج از محیط ویندوز رو دارین باید با زبان های دیگه که امکان ایجاد برنامه های تحت داس رو دارن رجوع کنید.(که اصلا برگشتن به گذشته معقولانه نیست)
موفق باشید.:لبخندساده:
Felony
جمعه 24 اردیبهشت 1389, 17:49 عصر
همچین کاری رو میتونید با نرم افزار PE Builder پیاده سازی کنید.
این برنامه یه سیستم عامل با امکانات اولیه رو به همراه برنامه شما روی یک دیسک رایت میکنه و ...
kooroush
شنبه 25 اردیبهشت 1389, 09:38 صبح
امکانش هست یک مقدار بیشتر توضیح بدین !؟
یا مثالی یا آموزشی در این زمینه قرار دهید ؟
با تشکر
saeedzx
شنبه 25 اردیبهشت 1389, 09:43 صبح
تشکر می کنم از دوستان که بنده راهنمایی کردن
راستش من می خواستم یک برنامه دیوار آتش طراحی کنم
که قبل از ویندوز بوت بشه اجرا بشه و رمز عبور بخواد یعنی ضریب امنیتی رو به 99% برسونه
خب به نظر دوستان اگر من بخوام نرم افزاری طراحی کنم که بعد از ورود به سیستم اولین چیزی باشه که اجرا می شه باید چیکار کنم
منظورم اینکه مثلا آنتی ویروس روی سیستم هست ولی برنامه من قبل از اون اجرا بشه یا درایور صدا و......
یعنی برنامه اولین چیزی باشه که بعد از بوت شدن ویندوز اجرا می شه ؟؟؟
حمید محمودی
شنبه 25 اردیبهشت 1389, 14:04 عصر
شما پست 11 رو (قسمت winlogon ) تست کردین؟؟ که آیا جواب میده؟
اما در مورد اجرا شدن قبل از برنامه های دیگه دقیقا مطمئن نیستم اما شاید با RumOnce توی ریجستری بشه اینکارو کرد!!
saeedzx
شنبه 25 اردیبهشت 1389, 19:29 عصر
نه دوست من جواب نیم ده ؟؟؟؟؟
xxxxx_xxxxx
یک شنبه 26 اردیبهشت 1389, 00:15 صبح
اما در مورد اجرا شدن قبل از برنامه های دیگه دقیقا مطمئن نیستم اما شاید با RumOnce توی ریجستری بشه اینکارو کرد!!
RunOnce تفاوتی با Run عادی در رجیستری نداره. فقط برای یک بار اجرا میشه.
Explorer.exe از یک مسیری در رجیستری اجرا میشه. با همین نام Explorer.exe در مسیر زیر هست:
Software\Microsoft\Windows NT\CurrentVersion\Winlogon
یک مقدار رشته ای با نام Shell وجود داره که در اون Exeplorer.exe ذخیره شده.
شما میتونید مسیر فایل اجرایی خودتون رو جایگزین Explorer.exe کنید تا در زمان اجرای ویندوز برنامه شما قبل از Explorer.exe اجرا شود.
موفق باشید/
mohamad_ice
یک شنبه 26 اردیبهشت 1389, 03:01 صبح
من اونچه از پست اول شما دریافتم رو اینطوری پاسخ میدم
با روشن شدن سیستم کنترل دست بایوس هست
بعد از اینکه بایوس کارش تموم میشه (post ، ست کردن کلاکها ، ...)
میره و دیوایسی که به عنوان بوت بوده رو میخونه و داخل حافظه لود میکنه
تا جایی که یادمه در 0x1be قرار داره (hdd0-partion0)
شما اگه میخوای کنترل سیستم دست خودت باشه هیچ مشکلی نیست!
درایور های لازم برای ارتباط با گرافیک هارد و قسمت های دیگه رو بنویس
این قسمت رو هندل کن
و برنامه رو مخصوص cpu خودت کامپایل کن
به همین راحتی !!!(پشیمون که نشدی؟)
RunOnce تفاوتی با Run عادی در رجیستری نداره. فقط برای یک بار اجرا میشه.
Explorer.exe از یک مسیری در رجیستری اجرا میشه. با همین نام Explorer.exe در مسیر زیر هست:
Software\Microsoft\Windows NT\CurrentVersion\Winlogon
یک مقدار رشته ای با نام Shell وجود داره که در اون Exeplorer.exe ذخیره شده.
شما میتونید مسیر فایل اجرایی خودتون رو جایگزین Explorer.exe کنید تا در زمان اجرای ویندوز برنامه شما قبل از Explorer.exe اجرا شود.
موفق باشید/
کاملا صحیح میفرمایند
ولی نیازی به جایگزینی نیست میتونید با "," هر تعداد که خواستید لود کنید
حمید محمودی
یک شنبه 26 اردیبهشت 1389, 03:10 صبح
Explorer.exe از یک مسیری در رجیستری اجرا میشه. با همین نام Explorer.exe در مسیر زیر هست:
Software\Microsoft\Windows NT\CurrentVersion\Winlogon
یک مقدار رشته ای با نام Shell وجود داره که در اون Exeplorer.exe ذخیره شده.
شما میتونید مسیر فایل اجرایی خودتون رو جایگزین Explorer.exe کنید تا در زمان اجرای ویندوز برنامه شما قبل از Explorer.exe اجرا شود.
موفق باشید/
فکر کنم توی پست 11 هم همین مطلب وجود داره و توضیح داده شده!!!
ولی نیازی به جایگزینی نیست میتونید با "," هر تعداد که خواستید لود کنید
اون قبلنا یادمه با space هم جواب داده بود
Felony
یک شنبه 26 اردیبهشت 1389, 12:27 عصر
به آدرس زیر در رجیستری بروید :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
در اینجا کلیدی با نام Userinit میبینید ، آدرس فایل اجرایی برنامه خودتون رو جایگزین مقدار داخل این کلید کنید .
در ضمن یادتون باشه باید تو برنامتون فایل فعلی که آدرسش داخل کلی هست (C:\Windows\system32\userinit.exe) رو اجرا کنید ، در غیر این صورت ویندوز بالا نمیاد.
saeedzx
دوشنبه 27 اردیبهشت 1389, 21:40 عصر
جناب مجتبی تاجیک (http://barnamenevis.org/forum/member.php?u=63881) از شما تشکر می کنم
در صورت امکان می توانید یک سورس در اختیار ما قرار دهید با تشکر
حمید محمودی
دوشنبه 27 اردیبهشت 1389, 22:01 عصر
در صورت امکان می توانید یک سورس در اختیار ما قرار دهید
خیلی واضح توضیح داده شده...
میتونید از نمونه هایی که در این سایت هم هست برای تغییر یک کلید در ریجستری استفاده کنید و دوباره اونو به حالت اول برگردونید...
اینم یه مثال ریجستری : این مثال (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1881&lngWId=1)
miniator
سه شنبه 28 اردیبهشت 1389, 23:11 عصر
سلام خدمت دوستان !
اين مطلب رو توي يك سايت ديدم ! ميتونيد ازش اطلاعات كافي رو بدست بياريد .
و اينكه نكته رو فراموش نكيند كه در فضاي مجازي هر كاري قابل شدن است !
http://www.shahvar.net/1389/01/20/kolibrios-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-1-%D9%85%DA%AF%D8%A7%D8%A8%D8%A7%DB%8C%D8%AA%DB%8C-%E2%80%8F/#more-3981
xxxxx_xxxxx
چهارشنبه 29 اردیبهشت 1389, 13:17 عصر
سلام خدمت دوستان !
اين مطلب رو توي يك سايت ديدم ! ميتونيد ازش اطلاعات كافي رو بدست بياريد .
و اينكه نكته رو فراموش نكيند كه در فضاي مجازي هر كاري قابل شدن است !
http://www.shahvar.net/1389/01/20/kolibrios-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-1-%D9%85%DA%AF%D8%A7%D8%A8%D8%A7%DB%8C%D8%AA%DB%8C-%E2%80%8F/#more-3981
سلام،
این موضوعی که شما مطرح کردید، ارتباطی به برنامه نویسی در VB6 ندارد.
سیستم عامل Kolibri به زبان اسمبلی نوشته شده.
saeedzx
چهارشنبه 29 اردیبهشت 1389, 16:26 عصر
با عرض سلام درسته xxxxx_xxxxx (http://www.barnamenevis.org/member.php?u=46030) میگویند
من اول پست گفته بودم با VB6
خب اینجا می خواستم بدونم آیا در VB2010 می شه چنین کاری کرد ؟؟؟
اصلا VB6 با VB 2010 چقدر تفاوت داره ؟؟؟؟ از نظر کد نویسی ؟؟؟/
حمید محمودی
چهارشنبه 29 اردیبهشت 1389, 19:06 عصر
اصلا برنامه هایی که با این زبان های برنامه نویسی نوشته شده رو نمیشه جداگانه و بدون سیستم عامل اجرا کنید. بهترین راه همون PE Builder هست. ولی بهرحال تموم امکانات یه سیستم عامل رو نمیشه توش داشت.
اما به نظر من اینکارا رو بکن :
بعد از اینکه برنامه رو ساختی اونو پرتابل بکن
بعدشم به جای Explorer.exe اجراش کنید. بعدشم به کاربر اجازه اجرای تسک منجر رو ندید.
درایو های سی دی رام و USB و... رو لاک کنید تا کاربر نتونه ازشون (برای اجرای برنامه های فایل منجر) استفاده کنه....
و توی برنامتون یه قسمت برای خاموش کردن و استفاده از امکاناتی از این قبیل بزار تا گندش در نیاد....
و ....
saeedzx
چهارشنبه 29 اردیبهشت 1389, 21:57 عصر
اصلا VB6 با VB 2010 چقدر تفاوت داره ؟؟؟؟ از نظر کد نویسی ؟؟؟
این رو توضیح ندادین
حمید محمودی
چهارشنبه 29 اردیبهشت 1389, 22:55 عصر
اصلا VB6 با VB 2010 چقدر تفاوت داره ؟؟؟؟ از نظر کد نویسی ؟؟؟
بنده با این زبان کار نمیکنم اما همین قدر رو بگم (اگه باهاش کار نکردین) ابزارهاش خیلی زیاده و خیلی چیزا رو میشه راحت طراحی کرد ... اما در مورد کد نویسیش باید بگم که کسی که با vb6 کار کرده میتونه به vb2010 سوئیچ بکنه اما در هر حال ساختارش تغییرات زیادی کرده... خودتون یه برنامه ی ساده که با vb6 بهش تسلط دارین رو با ابزار تبدیل کد به vb2010 تغییرش بدید فکر کنم بهتر کار دستتون بیاد...
موفق باشید
pooya1072
پنج شنبه 30 اردیبهشت 1389, 17:19 عصر
سلام
هر برنامه ای برای اجرا نیاز به یک محیط داره که همون سیستم عامله.
حال اون سیستم عامل می تونه ویندوز باشه یا dos یا لینوکس یا ....
برنامه ای که شما می خواید قبل از ویندوز اجرا بشه باید خودش یه محیط سیستم عامل رو شبیه سازی کنه و بعد عملیات مورد نظر شما رو انجام بده.پس باید در نظر داشته باشید این کار رو با نرم افزارهای برنامه نویسی که خودشون برای اجرا محتاج به محیط سیستم عامل ویندوز هستند نمی تونید انجام بدید.vb6 و vb2010 برای کار شما مناسب نیست.همون طور که دوستان گفتند شما نیاز به یک زبان سطح پایین مثل اسمبلی دارید.البته واقعا کار سختیه.
saeedzx
پنج شنبه 30 اردیبهشت 1389, 22:42 عصر
خب تشکر میکنم از دوستان که به بنده لطف دارن
خب شما که می گویید از زبان سطح پایین استفاده کنید ( آیا خودتون امتحان کردین یا سورسی در این رابطه با هر زبانی دارید ؟؟؟؟)
یعنی : دقیقاً چه زبانی برنامه نویسی باید برای این کار باید انتخاب کنم ؟؟؟:متفکر:
pooya1072
جمعه 31 اردیبهشت 1389, 01:03 صبح
خب تشکر میکنم از دوستان که به بنده لطف دارن
خب شما که می گویید از زبان سطح پایین استفاده کنید ( آیا خودتون امتحان کردین یا سورسی در این رابطه با هر زبانی دارید ؟؟؟؟)
یعنی : دقیقاً چه زبانی برنامه نویسی باید برای این کار باید انتخاب کنم ؟؟؟:متفکر:
با سلام دوباره
دوست عزیز ...شاید خیلی از دوستان با زبانهایی مثل اسمبلی کار کردند , ولی نوشتن یه برنامه در این سطح کار خیلی سختیه.البته این رو هم بگم که خیلی از توابع API که ویندوز ازشون استفاده می کنه بوسیله زبان C نوشته شدن.توی برنامه نویسی با زبان c با دستوراتی میشه به زبان اسمبلی برنامه نوشت(یک حالت ترکیبی).خب به نسبت زبان اسمبلی , زبان c درکش راحت تره و قابلیتهای زیادی داره که من زیاد ازش اطلاع ندارم.منم در این حد می دونم که برای نوشتن برنامه ای که خودش نقش سیستم عامل رو برای خودش داره علاوه بر دید نرم افزاری نیاز به دید بالایی از سخت افزارها و نحوه ارتباط با اونها رو می طلبه.
موفق باشی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.