PDA

View Full Version : اجرای فایل exe بدون نمایش فایل با دستور shell



Nemesis_0131
شنبه 03 فروردین 1392, 09:10 صبح
شلام دوستان من با دستور shell در برنامه یک برنامه رو اجرا میکنم و این برنامه که خودش به صورت اتوماتیک میره تو tray

حالا سوال من اینه که راهی هست که اصلا برنامه نمایش داده نشه فقط پرسس باشه و در Tray و ویندوز نمایش داده نشه؟

فقط عملیات خودشو انجام بده

mehran901
شنبه 03 فروردین 1392, 12:56 عصر
لینک زیر میتونه بهتون کمک کنه ، کلیه آیکون های tray مخفی میشن
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=35025&lngWId=1

setroyd
شنبه 03 فروردین 1392, 14:39 عصر
اره به صورت hidden اجرا کنش و برای نشون ندادن در پروسس شما باید از listview task manager حذف کنیدش .

Nemesis_0131
یک شنبه 04 فروردین 1392, 09:52 صبح
اره به صورت hidden اجرا کنش و برای نشون ندادن در پروسس شما باید از listview task manager حذف کنیدش .

سلام دوست من
من مشکل با پروسس ندارم ولی خود برنامه هم در حالت hidden شل میکنم باز نمایش میدخ
این دستورمه ببینید اشتباست؟
Dim RetValst
RetValst = Shell(App.Path + "\bin\myfile.exe", Hidden)

amin32
یک شنبه 04 فروردین 1392, 19:27 عصر
البته به جای Hidden باید از vbHide استفاده بشه. ولی فکر میکنم این روش بیشتر برای برنامه های داخل system32 جواب بده.

Nemesis_0131
دوشنبه 05 فروردین 1392, 08:39 صبح
البته به جای Hidden باید از vbHide استفاده بشه. ولی فکر میکنم این روش بیشتر برای برنامه های داخل system32 جواب بده.

از vbhidden هم استفاده کردم ولی متاسفانه جواب نداد آیا راه دیگه ای نیست برای مثال کاژول خواصی که اینطوری شل کنه برنامه رو؟

amin32
دوشنبه 05 فروردین 1392, 11:22 صبح
از vbhidden هم استفاده کردم ولی متاسفانه جواب نداد آیا راه دیگه ای نیست برای مثال کاژول خواصی که اینطوری شل کنه برنامه رو؟

تنها راهی که به ذهنم میرسه پنهان کردن پنجره بعد از اجرا هست . ولی باز برای آیکن system tray نمیتونه کاری انجام بده و اون پنهان نمیشه.
برای مثال:


Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Shell "C:\Program Files\Internet Download Manager\IDMan.exe"
Sleep 2000
h = FindWindow(vbNullString, "Internet Download Manager 6.15")
ShowWindow h, 0
End Sub


البته مقدار 2000 (دو ثانیه) بستگی به زمان ظاهر شدن پنجره داره. به جای "Internet Download Manager 6.15" هم باید کپشن دقیق پنجره رو قرار بدید.