امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
صدا کردن یک فایل
نویسنده پیام
sayberiya آفلاین
در حال پیشرفت
***

ارسال‌ها: 256
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۶

تشکرها : 63
( 467 تشکر در 128 ارسال )
ارسال: #1
صدا کردن یک فایل
سلام دوستان
با چه دستوری میتونم در وی بی یه فایل Exe رو صدا کنم و اونو اجرا کنم و زیاد تابلو نباشه
آیا حتما باید از
Command Prompt استفاده منیم یا اینم میشه
مثلا من یه برنامه نوشتم . میخوام همراه با اون سرور یه تروجان هم مخفی اجرا بشه
آیا باید برنامه اول سرور منو تو سیستم طرف کپی کنه یا یک جا اجرا میکنه
۲۳-اردیبهشت-۱۳۸۷, ۱۷:۲۰:۴۵
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: صدا کردن یک فایل
میتونین از دستورwinexc با پارامتر hide استفاده کنین این دستور 2 پارامتر میگیره اولی ادرس فایل و دومی نوع نمایش
کد:
The WinExec function runs the specified application.

This function is provided for compatibility with earlier versions of Windows. For Win32-based applications, use the CreateProcess function.

UINT WinExec(

    LPCSTR lpCmdLine,    // address of command line
    UINT uCmdShow     // window style for new application
   );
یا
از دستور shellexecute اونم با پارامتر hide استفاده کنی
کد:
The ShellExecute function opens or prints a specified file. The file can be an executable file or a document file. See ShellExecuteEx also.

HINSTANCE ShellExecute(

    HWND hwnd,    // handle to parent window
    LPCTSTR lpOperation,    // pointer to string that specifies operation to perform
    LPCTSTR lpFile,    // pointer to filename or folder name string
    LPCTSTR lpParameters,    // pointer to string that specifies executable-file parameters
    LPCTSTR lpDirectory,    // pointer to string that specifies default directory
    INT nShowCmd     // whether file is shown when opened
   );
تابع APIي وجود دارد به نام WinExec. شكل كلي اين تابع از اين قرار است:


WinExec(lpCmdLine: PAnsiChar; uCmdShow: Cardinal);

كه lpCmdLine خط دستور مورد نظر شما براي اجراي فايل و uCmdShow بايد يكي از مقادير زير را داشته باشد:
SW_HIDE SW_MAXIMIZE SW_MINIMIZE
SW_RESTORE SW_SHOW SW_SHOWDEFAULT
SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE
SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL


براي توضيحات بيشتر راجع به هر كدام از اين ثابت ها به راهنماي Windows SDK دلفي يا MSDN مراجعه كنيد.

تابع WinExec تابع بسيار قديمي و محدودي است و ما قصد نداريم در اين مقاله بيشتر از اين راجع به اين تابع صحبت كنيم.

تابع ديگري وجود دارد به نام ShellExecute. اين تابع در يونيت ShellAPI تعريف شده است. بنابر اين لازم است يونيت ShellAPI را در ليست uses يونيت خود وارد كنيد. اين يكي از توابع بسيار قدرتمند براي اجراي فايل است.
نگاهي به شكل كلي اين تابع بياندازيد:



function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;



hWnd Handle پنجره اي كه اين دستور را فراخوانده است.
Operation نوع دستوري مورد نظر جهت اجرا
FileName نام فايل يا شاخه
Parameters پارامترهاي مورد نظر در هنگام اجراي فايل exe
Directory شاخه پيش فرض در هنگام اجراي فايل
ShowCmd مشخص كننده چگوني نمايش فايل در هنگام اجرا



پارامتر اول يك متغيير از نوع HWND است.
لازم است براي كساني كه با مفهوم Handle در ويندوز آشنا نيستند توضيحاتي راجع به Handle بدهم. هر پنجره يا آبجكتي در ويندوز داراي يك Handle است كه براي دسترسي به آن پنجره يا آبجكت شما بايد از اين Handle استفاده كنيد. در واقع يك Handle يك عدد در مبناي 16 است. Handle يك عدد unique يا همتا است كه ويندوز آن را مقداردهي مي كند. اگر از يك پنجره دو Instance اجرا شده باشد (مثلا يك برنامه دو بار اجرا شده باشد) هر كدام از اين Instanceها يك Handle جداگانه دارند.
با اين تفاصيل پارامتر اول Handle پنجره اي است كه اين دستور را صادر كرده است. شما براي اين پارامتر مي توانيد از Application.Handle استفاده كنيد و يا آن را برابر 0 قرار دهيد. به علاوه مي توانيد Handle يك برنامه ديگر را بدهيد.

در صورتي كه شما مي خواهيد پيغام هاي اخطار آن فايل را دريافت كنيد يا آن را كنترل نماييد و يا تا اجراي كامل آن اجراي برنامه را متوقف كنيد با Handle برنامه خود را با استفاده از Application.Handle به اين پارامتر بدهيد.

پارامتر دوم مشخص كننده وظيفه اي است كه قرار است انجام شود. اين پارامتر مقادير پيش فرضي ندارد و بستگي به خصوصيات فايل اجرايي دارد. روي يك فايل از نوع Text كليد سمت راست ماوس را بزنيد. احتمالا موارد بالاي ليست "open"، "Edit with ..." , "print" است. هر كدام از اين رشته هاي مي توانند يك عمليات يا Operation باشند. به عنوان مثال شما مي خواهيد يك فايل Text را چاپ كنيد. در اين صورت كافي است از عبارت print به عنوان operation استفاده كنيد. يا مي خواهيد يك فايل rar را با استفاده از WinRar باز كنيد. در اين صورت مي توانيد از "Extract files" استفاده كنيد. حتما تا به حال متوجه شده ايد كه دستور ShellExecute چه مقدار انعطاف پذير است. با استفاده از اين فرمان مي توانيد هر گونه دستور Shell را اجرا نماييد.

پارامتر سوم مشخص كننده نام فايل يا شاخه اي است كه شما مي خواهيد عمليات بر روي آن انجام شود.
پارامتر چهارم ليست پارامترهايي است كه تمايل داريد فايل exe با اين پارامترها اجرا شود. پارامترها پنجم نيز نام شاخه پيش فرض در هنگام اجراي فايل مورد نظر شماست. اگر شما فايل exe اي را اجرا كنيد و اين فايل exe بخواهد از شاخه جاري فايلهاي اضافه اي را استفاده كند ويندوز شاخه جاري را به اون مطابق با اين شاخه اطلاع خواهد داد. و اما آخرين پارامتر مشخص كننده شكل اجراي فايل است. مقدار اين پارامتر مي تواند يكي از ثابت هايي ليستي باشد كه در ابتداي اين مقاله عنوان شد. به عنوان مثال شما مي توانيد از SW_HIDE استفاده كنيد كه در اين صورت فايل اجراي شما مخفي خواهد بود و يا از SW_SHOWMINIMIZE استفاده كنيد كه در اين صورت برنامه شما Minimizeشده اجرا مي شود.

و حالا به يك نكته خيلي مهم توجه كنيد:
1- رشته هاي اين تابع از نوع PChar هستند بنابراين شما بايد رشته هاي string را به صورت PChar به اين تابع بدهيد. شما مي توانيد به طور عادي رشته مورد نظر خود را به اين تابع بدهيد و يا در صورتي كه رشته مورد نظر شما string است بايد با استفاده با استفاده از دستور PChar آن را Typecast كنيد. به عنوان مثال:


ShellExecute(0, 'open', PChar(ExtractFilePath(Application.ExeName) + 'test.exe') , '', '', SW_SHOWNORMAL);


در اين مثال با استفاده از تابع ExtractFilePath و Application.ExeName كه حاوي آدرس كامل فايل Exe است شاخه اي كه فايل exe در آن قرار دارد را پيدا كرده ايم و سپس فايل test.exe را كه در كنار فايل اصلي اجرايي وجود دارد را به آن اضافه كرده ايم. كل اين عبارت TypeCast شده است به PChar.
جهت اطلاع كساني كه نمي دانند TypeCast چيست. TypeCast فرآيندي است كه شما متغيير يا Objectي را از يك نوع به نوع ديگري تبديل ميكنيد. كد زير را نگاه كنيد و با نوع پيشرفته تري از TypeCast آشنا شويد:


procedure TForm1.Button1Click(Sender: TObject); begin TButton(Sender).Caption := 'Test'; end;

در اين مثال Sender را از نوع TObject است TypeCast كرده ايم به TButton. و پراپرتي Caption آنرا تغيير داده ايم. براي اطلاعات بيشتر راجع به TypeCast به كتب دلفي مراجعه كنيد.


و اجازه دهيد به چند مثال جالب نيز نگاهي بياندازيم:
edit كردن يك فايل HTML با Editor پيش فرض HTML:

ShellExecute(Handle, 'edit', 'test.htm', '', '', SW_SHOW);

نصب يك فايل INF

ShellExecute(Handle, 'install', 'divx.inf', '', '', SW_SHOW);

فشرده ساختن يك فايل با استفاده از winrar و ارسال آن به ايميل:

ShellExecute(Handle, 'compress and mail...', 'test.file', '', '', SW_SHOW);

ارسال ايميل به ghoghnoose.dana@gmail.comو با موضوع "Great Article":

ShellExecute(0, 'open', 'mailto:ghoghnoose.dana@gmail.com, '', '', SW_SHOWNORMAL);
۲۳-اردیبهشت-۱۳۸۷, ۲۰:۳۲:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Darg, HoseinVig, MSH_XXX
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #3
RE: صدا کردن یک فایل
استفاده از دستورات بالا كه مبين عزيز توضيح دادن در دلفي بسيار كارآمد هستند!!

اما در ويژوال بيسيك مي تونيد از دستور Shell به شكل زير استفاده كنيد:

Shell FilePath as string , RunMode as VB_Namandeyram!! 'fff

توضيح : بعد از دستور Shell آدرس فايل موردنظر رو داخل گيومه مي نويسي يا از متغيير استفاده مي كنيد و بعد از ويرگول بايد مشخص كنيد برنامه در چه حالتي اجرا شود . مثلا حالت نرمال، فوكوس شده، مي ني مايز يا حتي پنهان.

(آخرین ویرایش در این ارسال: ۲۳-اردیبهشت-۱۳۸۷, ۲۱:۴۶:۴۳، توسط Di Di.)
۲۳-اردیبهشت-۱۳۸۷, ۲۱:۴۵:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Darg, lord_viper, MSH_XXX
xsalamx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 205
موضوع‌ها: 31
تاریخ عضویت: بهمن ۱۳۸۶

تشکرها : 313
( 146 تشکر در 38 ارسال )
ارسال: #4
RE: صدا کردن یک فایل
سلام

بعد از یه مدت نه چندان دور مزاحمتون شدمClap به دوستانی هم که در غیاب من اومدن خوشامد می گمHeart
اما اصل مطلب:
جناب Di Di می شه یه مثال برای دستور شل بزنید چون من که نتونستیم باهاش کار کنیمSad

خدا حافظ
(آخرین ویرایش در این ارسال: ۲۷-اردیبهشت-۱۳۸۷, ۰۰:۰۹:۵۴، توسط xsalamx.)
۲۷-اردیبهشت-۱۳۸۷, ۰۰:۰۸:۰۷
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #5
RE: صدا کردن یک فایل
Shell "C:\Windows\Notepad.exe"

۲۷-اردیبهشت-۱۳۸۷, ۱۶:۳۴:۲۷
وب سایت ارسال‌ها
پاسخ
xsalamx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 205
موضوع‌ها: 31
تاریخ عضویت: بهمن ۱۳۸۶

تشکرها : 313
( 146 تشکر در 38 ارسال )
ارسال: #6
RE: صدا کردن یک فایل
سلام

دستت درد نکنه بازم مثل همیشه به مشکل برخوردم Shy اما مشکل:
دستور شما درسته اما اگه با دستور زیر توسط کامند دیالوگ بخوای برنامه های دیگه رو اجرا کنی اخطار می ده
Private Sub Command1_Click()
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
Shell "Text1.Text"
End Sub

خدا حافظ
۲۷-اردیبهشت-۱۳۸۷, ۲۱:۱۴:۳۰
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #7
RE: صدا کردن یک فایل
سلام
خوب معلومه که کار نمیکنه
دستور Shell فقط برای اجرا کردن فایل های اجرائی هست نه چیز دیگه!

۲۸-اردیبهشت-۱۳۸۷, ۰۱:۰۱:۰۵
وب سایت ارسال‌ها
پاسخ
xsalamx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 205
موضوع‌ها: 31
تاریخ عضویت: بهمن ۱۳۸۶

تشکرها : 313
( 146 تشکر در 38 ارسال )
ارسال: #8
RE: صدا کردن یک فایل
سلام

برای باز کردن پوشه ها(مثلا ادرس روبه رو:E:\filme\New Folder),مسیر مورد نظر یا حتی اجرای فایل ها باید از چه روشی استفاده کرد.

ممنون
۲۸-اردیبهشت-۱۳۸۷, ۰۱:۱۵:۰۲
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #9
RE: صدا کردن یک فایل
الان از آقا حامد ÷رشسیدم

Sell " Explorer E:\Filme\New Folder" ' fff

۲۸-اردیبهشت-۱۳۸۷, ۰۱:۱۹:۴۵
وب سایت ارسال‌ها
پاسخ
xsalamx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 205
موضوع‌ها: 31
تاریخ عضویت: بهمن ۱۳۸۶

تشکرها : 313
( 146 تشکر در 38 ارسال )
ارسال: #10
RE: صدا کردن یک فایل
سلام

دستت درد نکنهClap اما قسمت دوم(اجرای فایل با دادن آدرس اون فایل) سوال مونده اگه لطف کنی ما رو از جوابهایتان بهرمند کنید.Shy

خدا حافظ
۲۸-اردیبهشت-۱۳۸۷, ۱۶:۴۹:۰۹
ارسال‌ها
پاسخ
xsalamx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 205
موضوع‌ها: 31
تاریخ عضویت: بهمن ۱۳۸۶

تشکرها : 313
( 146 تشکر در 38 ارسال )
ارسال: #11
RE: صدا کردن یک فایل
سلام

من می خواستم با دادن آدرس داخل تکست باکس فایل های مختلف(نه فقط exe بلکه تماما)رو اجرا کنم حالا هر فایلی که می خواد باشه.مثل کاری که در محیط ویندز با دابل کلیک روی آیکون برنامه ها انجام می دیم.((فکر کنم واضحتر از این نمی شه توضیح داد))
پس خواشمند اگه بلدید جواب بدید.
خدا حافظ
(آخرین ویرایش در این ارسال: ۰۲-خرداد-۱۳۸۷, ۱۸:۵۱:۰۸، توسط xsalamx.)
۰۲-خرداد-۱۳۸۷, ۱۸:۴۹:۲۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Shy [فوری] خواندن فایل تکست و تبدیل آن به فایل اکسل توسط CommandButton ahmadelectron 1 3,530 ۰۵-خرداد-۱۳۹۴, ۱۶:۵۲:۲۷
آخرین ارسال: Ghoghnus
  پیدا کردن فایل ها با پسوند خاص و کپی آن ها در یک فولدر ppcsoft 5 8,156 ۰۹-بهمن-۱۳۹۱, ۱۹:۳۷:۲۶
آخرین ارسال: fararaz
  پیدا کردن یک فایل در کامپیوتر با ویژوال بیسیک silent718 11 11,632 ۱۱-مهر-۱۳۹۱, ۰۸:۱۰:۵۲
آخرین ارسال: loack
  ایجاد فایل فوق مخفی از فایل اجرایی برناممون RAMA2009 1 4,326 ۰۸-اردیبهشت-۱۳۹۱, ۱۰:۲۶:۱۷
آخرین ارسال: Ghoghnus
  اتوران کردن فایل ها در فلش مموری download69 10 28,308 ۲۷-فروردین-۱۳۹۱, ۲۰:۳۸:۲۷
آخرین ارسال: iman2025
  bind کردن برنامه vb با یه فایل دیگه RAMA2009 22 10,587 ۱۱-بهمن-۱۳۹۰, ۱۲:۱۳:۳۲
آخرین ارسال: Payman62
  پاک کردن یه فایل از رجستری _soda_ 7 6,930 ۲۸-دى-۱۳۹۰, ۱۱:۲۴:۲۸
آخرین ارسال: Payman62
  replace کردن یا delete کردن فایل سیستمی ویندوز ppcsoft 6 5,903 ۱۳-آذر-۱۳۹۰, ۲۲:۰۵:۰۶
آخرین ارسال: ppcsoft
Wink openwith کردن فایل مخصوص برنامه خودمون (خیلی خیلی مهم) naser13 6 8,088 ۰۷-شهریور-۱۳۹۰, ۱۲:۰۰:۴۲
آخرین ارسال: AbbasShVB
  [سوال] connectionString ها و مشکل در atach کردن فایل در VB one hacker alone 1 3,210 ۳۱-تير-۱۳۹۰, ۰۲:۰۵:۰۳
آخرین ارسال: Shayani

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS