PDA

View Full Version : سوال: اجرای دستور (کامند) یا لانچ کردن برنامه توسط جاوا اسکریپت



Saeed.MD
چهارشنبه 04 دی 1392, 21:16 عصر
توی ران یا ترمینال وقتی مینویسیم مثلا gnome-terminal
اون برنامه مورد نظر ما اجرا میشه
چطوری میشه یه دستور مثل همونایی رو که توی ران مینویسیم رو توسط اسکریپت اجراکنیم ؟

بنده در حال توسعه یک افزونه برای فایرفاکس هستم منتها هیچ چیزی از اسکریپت نمیدونم
تغریبا همه کاراش تموم شده فقط مونده اون قسمت که باید دستور مورد نظر رو اجرا کنه ، دو تا نکته:
۱ سیستم لینوکس هست
۲ لازم نیست اطلاعات خروجی برنامه رو بگیریم فقط یه مسیر یک طرفه که برنامه رو لانچ کنه کافیه

a_mzadeh
پنج شنبه 05 دی 1392, 13:13 عصر
یک افزونه‌ای فایرفاکس داره که کارش همین هست، یعنی یک قسمت پروفایل داره و شما اونجا میگی مثلا من میخوام ماشین حساب رو از داخل بروزر اجرا کنم و اون هم هر اپلیکیشینی بهش بدی برات اجرا می‌کنه. میتونی سورسش رو بگیری (پسوند افزونه رو به zip تغییر بده و از حالت zip خارجش کن) و اون قسمت مربوط به اجرای اپلیکیشن رو تغییر بدی.

Saeed.MD
پنج شنبه 05 دی 1392, 14:46 عصر
مرسی بابت پاسخ و شرکت در تاپیک

افزونه ترمینال ران رو گرفتم و فایل terminalrun.js رو نگاه کردم
اما این فایل حدود ۱۳۰۰ خط و من اصلا نمیفهمم کدوم قسمت این کد اون کارو انجام میده !!!!
اینم لینکش :‌ https://addons.mozilla.org/en-US/firefox/files/browse/93779/file/chrome/chrome.jar/content/terminalrun.js#top

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++

ببینید این کد منه که تا اینجا درست کار میکنه یعنی اون کامند مورد نظر رو توی کنسولش چاپ میکنه:
حالا میخام جای چاپ کردن ، توسط سیستم اجرا کنه

var cm = require("sdk/context-menu");
var launch = "self.on('click', function (node, data) {" +
" console.log('gnome-terminal \"axel -n 8 -a ' + node.href + '\"');" +
"});";
exports.main = function() {
cm.Item({
label: "AXEL Download",
context: cm.SelectorContext("a"),
contentScript: launch
});

};

a_mzadeh
پنج شنبه 05 دی 1392, 20:43 عصر
راستش من برای کار خودم از این افزونه استفاده کردم:
https://addons.mozilla.org/en-us/firefox/addon/applauncher
کد خیلی پیچیده‌ای نداره. فقط لازم هست یک قسمت‌هایی از اون حذف و بقیه قسمت‌ها تغییر کنه.

موفق باشی

ravand
پنج شنبه 05 دی 1392, 21:05 عصر
ببخشید شما با چه زبانی برای فایرفاکس افزونه می نویسی؟ آیا در کنارش از نرم افزاری هم استفاده میکنی؟

a_mzadeh
پنج شنبه 05 دی 1392, 21:21 عصر
اگر طرف سوال شما من بودم، باید عرض کنم من خیلی تو این زمینه کار نکردم. فقط یک مورد خاص بوده و اون هم همونطور که تو پست‌های همین تاپیک گفتم بیشتر customize کردن یک افزونه دیگه برای انجام عملیات مورد نظر خودم بوده (این افزونه از چند پوشه و فایل شامل فایل‌های xml و js تشکیل شده بود). تو سایت خود فایرفاکس مستندات کاملی راجع به نحوه ساخت یک افزونه وجود داره.

Saeed.MD
جمعه 06 دی 1392, 01:20 صبح
ببخشید شما با چه زبانی برای فایرفاکس افزونه می نویسی؟ آیا در کنارش از نرم افزاری هم استفاده میکنی؟

ببینید قبلا نمیدونم چطوری افزونه مینوشتن ، یادمه اینقدر مشکلات داشت که منصرف شدم
اما دوباره بر طبق نیازم رفتم دوباره جستوجو کردم و دیدم که بعله ساختن افزونه مثل خوردن آب شده!!
یعنی موزیلا یک addon biulder ساخته که خیلی کارو آسون میکنه ، تست و دیباگ هم دیگه لازم به پک کردن اینا نیست با یک دکمه افزونه نصب و اجرا میشه
منتها این addon builder تحت وب هست https://builder.addons.mozilla.org/

و این که سورس همه پروژه های پابلیک رو میشه خیلی راحت دید و نیاز به دانلود و آنپک نیست

اینم یک عکس از محیط IDE (!)
http://8pic.ir/images/91174531408417649727.png