سلام
لطفا به من در انجام عمل زير كمك كنيد
كپي شدن برنامه اجرا شده در مسير دلخواه به محض اجرا
يعني تا فايلexe اجرا ميشه يه كپي از اون در جايي كه ما قبلا تو برنامه مشخص كرديم ايجاد بشه.
يه جورايي همون مسير يابي فايل در حال اجرا.(فايل Exe)
با تشكر
Printable View
سلام
لطفا به من در انجام عمل زير كمك كنيد
كپي شدن برنامه اجرا شده در مسير دلخواه به محض اجرا
يعني تا فايلexe اجرا ميشه يه كپي از اون در جايي كه ما قبلا تو برنامه مشخص كرديم ايجاد بشه.
يه جورايي همون مسير يابي فايل در حال اجرا.(فايل Exe)
با تشكر
کد:Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Dim Address As String
Private Sub Form_Load()
Address = String$(128, Chr$(0))
Address = Left$(Address, GetModuleFileName(hInst, Address, Len(Address)))
End Sub
سلام
عزیز جان من قبلا گفتم شما دستور کپی پیست را بنویس .
و کد اصلی را در فورم لود بزار تا برنامه اجرا شد دستورات کپی اجر شود.
سلام
عزیز جان من قبلا گفتم شما دستور کپی پیست را بنویس .
و کد اصلی را در فورم لود بزار تا برنامه اجرا شد دستورات کپی اجر شود.
ممنون
آقا پيمان درباره كد ها يه توضيح مختصر بده.(مخصوصا نحوه تعيين آدرس)
تكنيك برتر شما پيغام خصوصي داريد.
ممنون
ببين اين كد آدرس فايل همراه اسم خود فايل رو ميريزه تو متغير Address
یعنی مثلا اگه فایل به اسم p.exe تو درایو c باشه محتویات Address میشه "C:\p.exe"کد:Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Dim Address As String
Private Sub Form_Load()
Address = String$(128, Chr$(0))
Address = Left$(Address, GetModuleFileName(hInst, Address, Len(Address)))
End Sub
بقیشم بلدی دیگه با filecopy تو مسیر جدید با اسم جدید کپی میشه
یه کپی از فایل اجراییت به اسم t.exe میره تو درایو Dکد:filecopy Address , "D:\t.exe"
اینم کل دستورات
کد:Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Dim Address As String
Private Sub Form_Load()
Address = String$(128, Chr$(0))
Address = Left$(Address, GetModuleFileName(hInst, Address, Len(Address)))
filecopy Address , "D:\t.exe"
End Sub
با تشکر از آقا پیمان بخاطر راهنماییشون،
کدی که ایشون گذاشتند کاملا درسته. فقط می خوام یه نکته رو یادآوری کنم؛ وقتی فایل exe برنامه رو برای بار اول اجرا کنیم، یک کپی از همون برنامه در مسیری که در دستور FileCopy مشخص کردیم، کپی می شه. حالا چون این دو فایل عینا مثل همه، پس اگه فایلی رو که جدیدا ایجاد شده(بدون تغییر نامش) اجرا کنیم، باز هم برنامه سعی می کنه فایلی به همون نام رو درون مسیر خودش ایجاد کنه، که این منجر به خطا می شه. با کمی تغییر می شه این خطا رو هندل کرد_من برای مشخص شدن مطلب یه MessageBox گذاشتم، در قسمت گرفتن خطا هر دستوری که دوست دارین می تونین بذارین_:
کد:Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Dim Address As String
Private Sub Form_Load()
Address = String$(128, Chr$(0))
Address = Left$(Address, GetModuleFileName(hInst, Address, Len(Address)))
On Error GoTo Handler
FileCopy Address, "c:\t.exe"
Exit Sub
Handler:
MsgBox "The File Existed!"
Err.Clear
End Sub
از همه شما عزيزان متشكرم.
واقعا استفاده كردم.
فقط دستور MsgBox "The File Existed!" رو به خاطر پيغام هاي مكرر حذف كردم.
البته اگه اشكالي نداره؟
سلام
ببينيد دوستان من ميخوام در دستور File copy از يه متغير به جاي آدرس استفاده كنم ولي نميشه.(يعني ترتيب اثر نميده.
با اين فرض كه Full_path از نوع String باشه.نقل قول:
Full_Path="c:\ppc.exe
FileCopy Address, Full_Path
روشت كه مشكلي نداره من حتي تست هم كردم و كپي شد شايد فايلت با همون اسم تو همون مسيره
filecopy اجرا میشه یا به error بر میخوره و ردش میکنه؟