نصب فلش پلیر بطور مخفی در #c

swsehsan

Member
سلام
چجور میشه فلش پلیر بطور مخفی در سیستم کاربر نصب کرد بدون اینکه متوجه بشه flash_player_10_active_x
ممنون

 

borna008

Active Member
بله منم همین سئوال را داشتم
ممنون میشم اگه کسی اطلاع داره کمک کنه
 

swsehsan

Member
سلام
من برای اجرای یک فایل exe از این کد استفاده می کنم اما نصب مخفی بلد نیستم ممنون میشم کمک کنید
PHP:
System.Diagnostics.Process.Start("project.exe");
 

the_king

مدیرکل انجمن
سلام
چجور میشه فلش پلیر بطور مخفی در سیستم کاربر نصب کرد بدون اینکه متوجه بشه flash_player_10_active_x
ممنون


اگه مسیر فایل install_flash_player_10_active_x.exe صریحا مشخصه اینطوری :

کد:
            string path = @"C:\install_flash_player_10_active_x.exe";
            string arguments = "/install";
            System.Diagnostics.Process.Start(path,arguments);

اگه مسیر فایل install_flash_player_10_active_x.exe در همان پوشه کنار فایل exe پروژه شما خواهد بود،
اینطوری مسیر نسبی اش را مشخص کنید :

کد:
            string folder = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
            string path = System.IO.Path.Combine(folder, "install_flash_player_10_active_x.exe");
            string arguments = "/install";
            System.Diagnostics.Process.Start(path,arguments);
 

swsehsan

Member
خیلی ممنون
تست کردم اما نمایش داده شد یعنی flash_player_10_active_x
باز شد ونصب نشون داد
 

the_king

مدیرکل انجمن
خیلی ممنون
تست کردم اما نمایش داده شد یعنی flash_player_10_active_x
باز شد ونصب نشون داد

در نسخه 10.1 که من تست کردم سوئیچ نصب مخفیانه install/ یا install- است، اما در نسخه های قدیمی تر
بجایش سوئیچ های s/ و silent/ بکار می رفته. بهتره که بحای اون سطر
کد:
            string arguments = "/install";
این کد ها رو هم امتحان کنید :

کد:
            string arguments = "-install";

کد:
            string arguments = "/s";

کد:
            string arguments = "/silent";
 

swsehsan

Member
ممنون اقای علی سعید
با این
PHP:
   string arguments = "/s";
چک کردم درست شد
فقط دو سوال دیگه در ویندوز 7 در زمان اجرا چون قراره سی دی اتوران کنم Windows Action Center بهش گیر میده چون می خواد نصب مخفیانه انجام بده راهی هست که اون پیغام yes و no نپرسه

مسیر نصب فلش پلیر در رجیستری در ویندوزهای xp و 7 باهم متفاوت هست یا یه مسیر هستند چون می خوام چک کنم و در صورت نصب نبودن از اون راهی که اقای علی سعید فرمود نصب مخفیانه انجام بدم .
ممنون
 

the_king

مدیرکل انجمن
ممنون اقای علی سعید
با این
PHP:
   string arguments = "/s";
چک کردم درست شد
فقط دو سوال دیگه در ویندوز 7 در زمان اجرا چون قراره سی دی اتوران کنم Windows Action Center بهش گیر میده چون می خواد نصب مخفیانه انجام بده راهی هست که اون پیغام yes و no نپرسه

مسیر نصب فلش پلیر در رجیستری در ویندوزهای xp و 7 باهم متفاوت هست یا یه مسیر هستند چون می خوام چک کنم و در صورت نصب نبودن از اون راهی که اقای علی سعید فرمود نصب مخفیانه انجام بدم .
ممنون

به اینکه صرفا نصب بودن Flash Player بررسی بشه اکتفا نکنید، می بایستی نسخه نصب شده هم مناسب باشه.
فرضا ممکنه نسخه نصب شده خیلی قدیمی باشه و با فایل Flash ای که اجرا می کنید جور در نیاد.
ممکنه محل نصب شدن فایل ها متفاوت باشه، اما در هر صورت کلید های مشخص کننده کنترل ActiveX در Registry
همیشه ثابت اند.

کد زیر نسخه Shockwave Flash Object نصب شده رو بصورت یک عدد اعشاری اعلام می کنه (0 یعنی نصب نشده)
ابتدای کد های برنامه سطر های زیر رو برای using اضافه کنید :
کد:
using System.IO;
using System.Diagnostics;
using Microsoft.Win32;

کد:
        private double [B]GetFlashPlayerActiveXVersion[/B]()
        {
            double version = 0;
            string subkey = @"CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32";
            RegistryKey key;
            try
            {
                key = Registry.ClassesRoot.OpenSubKey(subkey, false);
                string path = key.GetValue("").ToString();
                if (File.Exists(path))
                {
                    FileVersionInfo info = FileVersionInfo.GetVersionInfo(path);
                    string ver = string.Format("{0}.{1}", info.ProductMajorPart, info.ProductMinorPart);
                    version = double.Parse(ver);
                }
                key.Close();
            }
            catch
            {
            }
            return version;
        }

مثلا :
کد:
            double version = [B]GetFlashPlayerActiveXVersion[/B]();
            MessageBox.Show(version.ToString());
 

the_king

مدیرکل انجمن
در ویندوز 7 در زمان اجرا چون قراره سی دی اتوران کنم Windows Action Center بهش گیر میده چون می خواد نصب مخفیانه انجام بده راهی هست که اون پیغام yes و no نپرسه

احتمالا مربوط به وضعیت User Account Control یا UAC در سیستم کاربر است.
کلا سیستم محافظتی Windows User Account Control طوری طراحی شده که موقع نصب شدن هر مورد مخفی
و غیر مخفی که ممکنه در اثرش به سیستم آسیبی وارد بشه کاربر رو مطلع کنه. اگه قرار بر این بود که این قابلیت
به سادگی غیر فعال بشه دیگه کلا وجودش فایده ای نداشت.

روش هایی هست که بشه UAC ویندوز رو با کد نویسی غیر فعال کرد، اما بی فایده است چون تا زمانی که ویندوز
رو Restart نکنید اون کد ها تاثیری در وضعیت فعلی نخواهند داشت، همانطور که در خود Conrtol Panel بعد از
تغییر دادن وضعیت UAC می بایستی ویندوز رو Restart کنید.
 

جدیدترین ارسال ها

بالا