سلام
1 - :
داخل عبارتی که جلوی Shell مینویسید Explorer رو نزارید چون خود فایل Exe رو دارید اجرا میکنید
2 - :
روش زیر رو امتحان کنید فقط قبلش از منوی Project گزینه References و سپس آیتم Microsoft Scripting Runtime رو تیک بزنید
Dim fn$, fso As New FileSystemObject, x As Drive
fn = "E:\G\ghoran\ghoran.exe"
ChDrive fso.GetDriveName(fn)
ChDir fso.GetParentFolderName(fn)
Shell fn, vbNormalFocus
دلیل این مشکل هم اینه که بعضی از برنامه ها موقع اجرا نیاز به فایلهایی دارند که اونها رو از مسیر جاری سیستم میخونن (در VB6 مسیر جاری با App.Path بدست میاد) ولی وقتی شما با برنامه دیگه ای قراره اون برنامه رو فراخوانی کنید ممکنه مسیر جاری سیستم مسیر همون برنامه نباشه مثلا شما قصد دارید از درون یک فایل exe که در درایو d قرار داره، فایل exe ای که در درایو e قرار داره رو اجرا کنید، در اینجا مسیر جاری \:D هست نه \:E و اگر فرضا برنامهای که در درایو E قرار داره و باید اجرا بشه، با VB6 نوشته شده باشه اونموقع App.Path مسیر \:D رو برمیگردونه نه \:E
اگر دقت کنید Shortcut هایی که ویندوز برای برنامه ها میزاره هم گزینه ای تحت عنوان Start in داره، روی icon یک فایل exe روی دسکتاپ کلیک راست کنید و سپس گزینه Properties رو بزنید تا این گزینه رو ببینید، اونهم کارش اینه که ابتدا مسیر جاری سیستم رو به مسیر اون برنامه تغییر میده و بعد برنامه رو اجرا میکنه