PDA

View Full Version : دستور دادن به فايل exe با URL



allaf2
یک شنبه 04 بهمن 1388, 18:12 عصر
سلام.

من يك سرور ويندوز دارم.و ميخوام از طريق يك URL به فايل EXE دستوري رو بدم.
اينو ميدونم كه براي اين كار بايد از يك اسكريپت PHP استفاده كرد.

حالا براي اينكه فايل EXE از اين اسكريپ PHP دستور بپذيره، چه تمهيداتي در سورس فايل exe بايد ديده بشه.
من به يك توضيح كلي احتياج دارم كه آيا اين كار شدني هست يا خير.
و اين كه از چه جور دستوراتي بايد استفاده كرد. و جزو چه مبحثي از VB هست.

crazyfull
یک شنبه 04 بهمن 1388, 19:02 عصر
فایل اجرایی باید به صورت کنسول نوشته بشه و با تابع exec در php میتونید از توابع فایل اجرایی استفاده کنید
اطلاعات بیشتر (http://php.net/manual/en/function.exec.php) در باره تابع exec

با VB6 هم نميشه به صورت کنسول برنامه نوشت, ميتونيد از VB9 استفاده کنيد

علیرضا حسن زاده
یک شنبه 04 بهمن 1388, 20:29 عصر
فایل اجرایی باید به صورت کنسول نوشته بشه و با تابع exec در php میتونید از توابع فایل اجرایی استفاده کنید
اطلاعات بیشتر (http://php.net/manual/en/function.exec.php) در باره تابع exec

با VB6 هم نمیشه به صورت کنسول برنامه نوشت, میتونید از VB9 استفاده کنید
دوست عزیز تا جایی که من میدونم VB9 دات نت هست و ربطی به برنامه های vb6 که Win32 هست نداره البته از لحاظ پلتفرم

حالا جواب دوستمون، شما دو روش برای این کار دارین:
1- یه برنامه Cgi ترجیحا با C بنویسید و مقادیری که می خواین توسط URL به اون بفرستین و تو اون برنامه بعد از گرفتن اون مقادیر می تونین هر کاری بکنین مثل اجرای یه برنامه دیگه با اون پارامتر های ورودی یا ذخیره اون تو یه جایی مثل فایل و اجرای یه برنامه که اطلاعات اولیه رو از اون فایل بخونه.
2-همون طور که تو پست قبلی دوست عزیز گفتن با php می تونین پارامتر هارو بگیرین که از ربطی به نوع زبان برنامه نویسی شما نداره مثلا تو vb می تونید یه کنترل اکسپلورر بذاری و URL رو با مقادیر دلخواه دستکاری کنی و درخواست اجرای اون رو بکنی و کنترل رو هم Visable نکنی تا کاربرت از موضوع زیاد باخبر نشه

crazyfull
یک شنبه 04 بهمن 1388, 22:12 عصر
دوست عزیز تا جایی که من میدونم VB9 دات نت هست و ربطی به برنامه های vb6 که Win32 هست نداره البته از لحاظ پلتفرم

مگه گفتم vb9 تحت win32 هست ؟
در مورد نحوه اجرا برنامه صحبت نکردم، همون کد نويسی که با vb6 انجام ميده رو ميتونه خيلی راحت باvb9 انجام بده
خود php اون تابع رو دقيقاً برای ارتباط با Commnad Prompt قرار داده



1- یه برنامه Cgi ترجیحا با C بنویسید و مقادیری که می خواین توسط URL به اون بفرستین و تو اون برنامه بعد از گرفتن اون مقادیر می تونین هر کاری بکنین مثل اجرای یه برنامه دیگه با اون پارامتر های ورودی یا ذخیره اون تو یه جایی مثل فایل و اجرای یه برنامه که اطلاعات اولیه رو از اون فایل بخونه.

دوست عزيز تو انجمن VB6 تاپيک باز شده نه C


2-همون طور که تو پست قبلی دوست عزیز گفتن با php می تونین پارامتر هارو بگیرین که از ربطی به نوع زبان برنامه نویسی شما نداره مثلا تو vb می تونید یه کنترل اکسپلورر بذاری و URL رو با مقادیر دلخواه دستکاری کنی و درخواست اجرای اون رو بکنی و کنترل رو هم Visable نکنی تا کاربرت از موضوع زیاد باخبر نشه

قرار هست به وسيله php با فايل اجرايی ارتباط برقرار کرد نه به وسيله برنامه با php ، چون اول php اجرا ميشه بعد مقاديری که ميخواهد رو بايد از فايل اجرايی بگيره

با استفاده سوکت پروگرمينگ هم ميشه با php ارتباط برقرار کرد
برنامه به يک پورت گوش ميده و به وسيله php با متد GET يا POST مقاديری که لازم هست به آپی + پورت باز برنامه فرستاده ميشه و مقدارهای که لازم هست از طرف برنامه باز گردونده ميشه

علیرضا حسن زاده
یک شنبه 04 بهمن 1388, 23:11 عصر
مگه گفتم vb9 تحت win32 هست ؟
در مورد نحوه اجرا برنامه صحبت نکردم، همون کد نویسی که با vb6 انجام میده رو میتونه خیلی راحت باvb9 انجام بده
خود php اون تابع رو دقیقاً برای ارتباط با Commnad Prompt قرار داده

خوب من هم با گفته شما موافقم ولی وقتی میگی VB9 برنامه میره تو دات نت و کلا قضیه فرق میکنه و اینکه رو سرور برای برنامه شما باید دات نت هم نصب شده باشه و این مشکل زیادی نیست و معمولا رو سرور های تجاری دات نت هم هست و البته دقیقا همون کدی رو که تو VB6 می نویسیم دقیقا همون کد VB9 نیست سینتکس و دستورات VB6 به تنهایی جواب گو نیست و برای کارایی بهتر باید از کلاس های دات نت که اصلا تو VB6:گیج: وجود نداره استفاده کرد و اینکه php این کار رو میکنه شکی نیست وقتی قرار باشه از php استفاده کنیم و برنامه هم دات نت باشه خوب لقمه رو دور سر گردوندن میشه و با دو تا انجین کار کردن واسه پاس کردن چند تا مقدار به یه برنامه کار درستی نیست و سربار زیادی می تونه داشته باشه.



دوست عزیز تو انجمن VB6 تاپیک باز شده نه C

خوب همون طور که اشاره کردین انجمن VB6 است نه VB9 و php و... و هدف ارئه راه حل های ممکن و تاجایی که سوادم قد بده اشاره به مزایا و معایب هر کدوم داشته باشم و برای هر کاری باید از ابزار های مناسب استفاده کرد و گرنه با سنگ هم میشه میخ کوبید.



قرار هست به وسیله php با فایل اجرایی ارتباط برقرار کرد نه به وسیله برنامه با php ، چون اول php اجرا میشه بعد مقادیری که میخواهد رو باید از فایل اجرایی بگیره
اینم فکر می کنم اشتباه متوجه شدین باید یه مقداری واسه سرور ارسال بشه تا یه مقداری برگردونه و برای پاس کردن مقدار در سمت کلاینت یا باید از طریق صفحه سایت و یا از طریق یه برنامه پارامتر ها رو با سرور ارسال کرد من منظورم در طرف کلاینت بدون استفاده از کاوشگر وب بود ولی میشه با کاوشگر هم این کار رو انجام داد. و در ضمن طبق نوشته سوال ایشون مثل اینکه php رو یه راه حل برای این کار می دونن و راه های بهتر و بهینه تری هم ممکن هست.


با استفاده سوکت پروگرمینگ هم میشه با php ارتباط برقرار کرد
برنامه به یک پورت گوش میده و به وسیله php با متد GET یا POST مقادیری که لازم هست به آپی + پورت باز برنامه فرستاده میشه و مقدارهای که لازم هست از طرف برنامه باز گردونده میشه
در این مورد هم با شما موافقم ولی یه اشکالی داره اونم اینکه متد های Get و Post پیش فرض اینه که به برنامه ارسال کننده درخواست url که پورتش اون بری سرور فرستاده شده برگشت داده میشه و معمولا همچین کارایی مشکلاتی هم در کار با فایروال به وجود میاره یه مسله دیگه هم اینکه کار با Get و post البته به نظر من با وی بی سخت تره تا زبان های دیگه البته این نظر شخصی منه

crazyfull
دوشنبه 05 بهمن 1388, 00:06 صبح
البته دقیقا همون کدی رو که تو VB6 می نویسیم دقیقا همون کد VB9 نیست سینتکس و دستورات VB6 به تنهایی جواب گو نیست و برای کارایی بهتر باید از کلاس های دات نت که اصلا تو VB6:گیج: وجود نداره استفاده کرد و اینکه php این کار رو میکنه شکی نیست وقتی قرار باشه از php استفاده کنیم و برنامه هم دات نت باشه خوب لقمه رو دور سر گردوندن میشه و با دو تا انجین کار کردن واسه پاس کردن چند تا مقدار به یه برنامه کار درستی نیست و سربار زیادی می تونه داشته باشه.

کسی که قبلاً تو VB6 کد نويسی انجام داده باشه قطعا با ورژن های ديگه مشکل اساسی نخواهد داشت جز اينکه امکانات جديد و زيادی پيش رو ميبينه حتماً ميدنيد که با VB9 ميشه دقيقاً کد نويس VB6 رو به VB9 تبديل کرد پس مشکلی نيست


خوب همون طور که اشاره کردین انجمن VB6 است نه VB9 و php و... و هدف ارئه راه حل های ممکن و تاجایی که سوادم قد بده اشاره به مزایا و معایب هر کدوم داشته باشم و برای هر کاری باید از ابزار های مناسب استفاده کرد و گرنه با سنگ هم میشه میخ کوبید.
هردو VB6 و VB9 از يک خانوده هستند اما C جزو خانوده VB نيست
همونطور که گفتم کسی با vb6 کار کرده باشه با vb9 هم ميتونه ديگه خيلی مبتدی باشه ميتونه پروژه رو با vb6 بنويسه و با vb9 کانورت کنه



اینم فکر می کنم اشتباه متوجه شدین باید یه مقداری واسه سرور ارسال بشه تا یه مقداری برگردونه و برای پاس کردن مقدار در سمت کلاینت یا باید از طریق صفحه سایت و یا از طریق یه برنامه پارامتر ها رو با سرور ارسال کرد من منظورم در طرف کلاینت بدون استفاده از کاوشگر وب بود ولی میشه با کاوشگر هم این کار رو انجام داد. و در ضمن طبق نوشته سوال ایشون مثل اینکه php رو یه راه حل برای این کار می دونن و راه های بهتر و بهینه تری هم ممکن هست.
يک مقدار عجيب هست که کاربرها رو مجبور کنيم از يک برنامه مجزا برای ارتباط با سايت استفاده کنند
بله اگه قرار باشه تو سرور ويندوز اين کار انجام بشه چه بهتر با ASp.net نوشته بشه


در این مورد هم با شما موافقم ولی یه اشکالی داره اونم اینکه متد های Get و Post پیش فرض اینه که به برنامه ارسال کننده درخواست url که پورتش اون بری سرور فرستاده شده برگشت داده میشه و معمولا همچین کارایی مشکلاتی هم در کار با فایروال به وجود میاره یه مسله دیگه هم اینکه کار با Get و post البته به نظر من با وی بی سخت تره تا زبان های دیگه البته این نظر شخصی منه

اين مشکل اساسی نيست که جلو اجرای روش رو بگيره ميشه برنامه يا پورت باز رو به سيف ليست فايروال اضافه کرد
بله برای اجرای اين کار ميبايست با پروتکل HTTP هم آشنا باشند