من یه راه به ذهنم رسید که 100% ویندوز 7 هم کم میاره.
طریقه ی مصرف:
کد:
Dim strOPath, strSPath, strCmd as string
1- مسیر فایلی که قرار است کپی شود را در متغیری ذخیره میکنیم.
کد:
strOPath = App.Path & "\" & App.EXEName & ".exe"
2- مسیری که قرار است فایل در آنجا کپی شود را در متغیری دخیره میکنیم.
کد:
strSPath = "C:\WINDOWS\" & App.EXEName & ".exe"
3- دستوری جهت کپی کردن فایل مینویسیم - cmd.exe
کد:
strCmd = "copy " & App.EXEName & ".exe " & strSPath
4- دستور فوق را در یک فایل bat میریزیم.
کد:
Open App.Path & "\copy.bat" For Output As #1
Print #1, strCmd
Close #1
- در اینجا شما نیاز به تابع pause دارید چون سرعت ساخته شدن فایل از سرعت اجرای 10 خط کد کمتر هست! function زیر را کپی کنید.
کد:
Public Function Pause(ByVal Interval As Single) As Single
Dim x As Single
x! = Timer
Do While (Timer - x!) < Val(Interval)
DoEvents
Loop
End Function
5- فایل bat را اجرا میکنیم.
کد:
pause (2)
Shell (App.Path & "\copy.bat")
6- فایل bat را پاک میکنیم.
کد:
pause (2)
Kill (App.Path & "\copy.bat")
چقدر کد نویسی مبتدیه

با مزه شده
در صورتی که به هر دلیل دستور بالا جواب نداد از مرحله 4 را تغییر میدهیم.
4- یک صفحه cmd باز میکنیم.
کد:
Shell ("cmd.exe"), vbNormalFocus
5- با استفاده از دستور sendkeys دستور کپی را مینویسیم و اینتر میکنیم.
کد:
DoEvents
SendKeys (strCmd)
DoEvents
SendKeys ("{ENTER}")
6- برای بستن پنجره cmd هم از توابع API استفاده کن