ورود

View Full Version : سوال: اجرا کردن یک فایل EXE در کامپیوتر کاربر به محظ انتخاب یک لینک با javascript



ranataher
شنبه 30 فروردین 1393, 14:16 عصر
جهت اینکه یک فایل exe را ازروی سیستم client اجرا کنیم تحت php ,framwork Yii با توجه به راهنمای هایی که در بخش php همین سایت ارائه شد متوجه شدم نمیشود توسط php یا زبان های سمت سروری این مشکل را حل کرد طبق نوشته دوست عزیزمان MMSHFE (http://barnamenevis.org/member.php?55504-MMSHFE)

دوست عزیز، شما نه با PHP و نه با هیچ زبان سمت سرور دیگری به هیچ عنوان نمیتونید روی کامپیوتر کلاینت یک برنامه اجرا کنید چون با اصول امنیتی پروتکل HTTP تضاد داره و اگه میشد که دیگه هیچکس تو هیچ سایتی نمیرفت چون امنیت نداشت. میتونید از فلش یا جاوا اسکریپت یا زبانهایی مثل Java برای این منظور استفاده کنید که اونها هم قبلش تأییدیه میگیرن. دستور exec و امثال اون (مثل shell_exec و system و...) هم برای اجرای یک برنامه روی سرور درنظر گرفته شدن نه روی سیستم کلاینت.

به چه صورتی میشود این مشکل را با جاوا اسکریپت حل کرد ؟
از تمامی دوستان متشکرم

ranataher
شنبه 30 فروردین 1393, 14:54 عصر
جهت اینکه یک فایل exe را ازروی سیستم client اجرا کنیم تحت php ,framwork Yii با توجه به راهنمای هایی که در بخش php همین سایت ارائه شد متوجه شدم نمیشود توسط php یا زبان های سمت سروری این مشکل را حل کرد طبق نوشته دوست عزیزمان MMSHFE (http://barnamenevis.org/member.php?55504-MMSHFE)

دوست عزیز، شما نه با PHP و نه با هیچ زبان سمت سرور دیگری به هیچ عنوان نمیتونید روی کامپیوتر کلاینت یک برنامه اجرا کنید چون با اصول امنیتی پروتکل HTTP تضاد داره و اگه میشد که دیگه هیچکس تو هیچ سایتی نمیرفت چون امنیت نداشت. میتونید از فلش یا جاوا اسکریپت یا زبانهایی مثل Java برای این منظور استفاده کنید که اونها هم قبلش تأییدیه میگیرن. دستور exec و امثال اون (مثل shell_exec و system و...) هم برای اجرای یک برنامه روی سرور درنظر گرفته شدن نه روی سیستم کلاینت.

به چه صورتی میشود این مشکل را با جاوا اسکریپت حل کرد ؟
از تمامی دوستان متشکرم

من از کد زیر استفاده کردم اما باز هم اتفاقی رخ نمی دهد به جز پیغام خطایی که خودم قرار دادم
<head>

<script language="javascript" type="text/javascript">

function RunEXE()
{
if (!document.all)
{
alert ("Faild.");
return;
}

var oShell = new ActiveXObject("WScript.Shell");
oShell.Run('"' +'C:\\Windows\\System32\\mstsc.exe'+ '"', 1);

}

</script>

ودر قسمت بادی نیز


<body>
<a href=# onclick="RunEXE()">نمایشRunEXE </button>

cups_of_java
شنبه 30 فروردین 1393, 20:30 عصر
امثال این کد توی مرورگر به سختی اجرا میشن.. اگر بشن توی IE و اونم زمانی که اجازه کاربر بهشون داده بشه...
اون قسمت ActiveX این کد رو (بدون HTML و ....) می تونید تو یه فایل js ذخیره کنید و با دستور Wscript اجرا کنید توی ترمینال... اون وقت کار میکنه

ranataher
یک شنبه 31 فروردین 1393, 09:51 صبح
امثال این کد توی مرورگر به سختی اجرا میشن.. اگر بشن توی IE و اونم زمانی که اجازه کاربر بهشون داده بشه...
اون قسمت ActiveX این کد رو (بدون HTML و ....) می تونید تو یه فایل js ذخیره کنید و با دستور Wscript اجرا کنید توی ترمینال... اون وقت کار میکنه

با تشکر از راهنمایی تون اما 2 سوال برام مطرح شد
1 آیا روش دیگری به جهت این کار و اجرا شدن ان در تمام browser ها وجود دارد ؟؟؟؟؟
2 اگر امکان دارد بیشتر توضیح دهید درست متوجه نشدم باید چگونه این کار را انجام دهم؟؟!!!!!

cups_of_java
یک شنبه 31 فروردین 1393, 20:57 عصر
1) نه فکر نمی کنم.
2) یه فایل test.js درست کن و توش اینو بنویس WScript.Echo("Hello world") بعد از توی کامند پرامپت اینطوری اجراش کن:
CScript test.js