• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

OCX dosyalarını istediğim klasöre kopyalama.

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
İçinde bulunduğu klasörden OCX dosyalarını C:\Deneme klasörü içersine kopyalamak istiyorum.
Döngüye girecek.Kaç tane OCX dosyası varsa kopyalayacak.
Sonuçtada kaç tane ocx dosyasının kopyalandığın mesajbox'la bildirecek.
Teşekkür ederim.
 
Selamlar,

Evren bey,

Aşağıdaki kodu denermisiniz.

Kod:
Sub OCX_KOPYALA()
    Dim Klasör As Object
    Dim Dosya As Object
    Dim FSO As Object
    Dim Dosya_Yolu As String
    Dosya_Yolu = "C:\DENEME"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Klasör = CreateObject("Scripting.FileSystemObject")
    Set Dosya = Klasör.GetFolder(Dosya_Yolu)
    
    If Not FSO.FolderExists(Dosya_Yolu) Then
    FSO.CreateFolder (Dosya_Yolu)
    End If
    
    Klasör.CopyFile "C:\WINDOWS\system32\*.OCX", "C:\DENEME"
    MsgBox "Kopyalanan *.ocx uzantılı dosya sayısı;" & Chr(10) & Chr(10) & Dosya.Files.Count
End Sub
 
Korhan bey 2nci satırda 16ncı karakterde hata veriyor.
Not:
Dosya vbs uzantılı dosya olacaktı.
 
.* uzantılı dosyalar istenilen klasöre

Sevgili hocam, bu sitede sizlerden öğrendiğim bilgiler doğrultusunda istediğiniz mantıkla bir dosya hazırlamaya çalıştım, umarım beğenirsiniz, Kolay gelsin

vba şifresi ve kaydetme şifresi 123
 
Sevgili hocam, bu sitede sizlerden öğrendiğim bilgiler doğrultusunda istediğiniz mantıkla bir dosya hazırlamaya çalıştım, umarım beğenirsiniz, Kolay gelsin

vba şifresi ve kaydetme şifresi 123
Sayın tahsinarat teşekkür ederim.
Yalnız ben VBScript kodu istemiştim.Dosya Uzantısı Vbs olacaktı.NotePad'de yazabiliyorsunuz.
Uzantısınıda farklı kaydetten xxx.vbs olarak kaydediyorsunuz.
 
Evren bey;

Birincisi; VBScript dilinde "Dim XXXX as YYYY" gibi değişken tanımlaması yapılmaz.. Dolayısıyle, o satırların hepsini silin.

İkincisi; VBScript dilinde kullandığınız değişken adlarında kesinlikleTürkçe karakter kullanmamaya dikkat edeceksiniz.

Üçüncüsü; VBScript ile hazırladığınız bir dosyada eğer prosedüre bir ad vermişseniz (Korhan bey'in kodundaki OCX_KOPYALA gibi....) o zaman bu prosedürü çalıştırmak için, prosedürü adıyla çağırmanız gerekir.

Yukarıdaki açıklamaların ışığında, Korhan bey'in VBA dilindeki kodunu VBS dosyası olarak kullanmak istediğinizde, yapılması gereken revizyon aşağıdaki gibidir;

Kod:
Sub OCX_KOPYALA()
    Dosya_Yolu = "C:\DENEME"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(Dosya_Yolu) Then
       FSO.CreateFolder (Dosya_Yolu)
    End If
 
    Set Klasor = CreateObject("Scripting.FileSystemObject")
    Set Dosya = Klasor.GetFolder(Dosya_Yolu)
      
    Klasor.CopyFile "C:\WINDOWS\system32\*.OCX", "C:\DENEME"
    MsgBox "Kopyalanan *.ocx uzantılı dosya sayısı;" & Chr(10) & Chr(10) & Dosya.Files.Count
End Sub
'
Call OCX_KOPYALA


.
 
Son düzenleme:
Hocam, dediğiniz dosya olduğunda eklermisiniz, merak ettim.
 
Hocam, dediğiniz dosya olduğunda eklermisiniz, merak ettim.

Pardon, bana mı dediniz?

Eğer bana diyorsanız, sözkonusu dosyanın içindeki kodlar (orjinali Korhan bey'e ait) yukarıdaki mesajımda.

Yeni bir Notepad dosyası oluşturun, dosyaya herhangibir isim verin, uzantısını vbs yapın, kaydedip, kapatın.

Daha sonra dosyanın üzerinde çift tıklayıp, çalıştırın...

.
 
Sn. Haluk hocam note pad "Not Defteri" aynı şeyler değilmi, not defteri ne kopyalarak dediğiniz gibi denemiştim, ama olmadı, bu açıdan sn.evren gizlen hocama dosyanın olmuş halini eklemesini rica etmiştim. şu an tekrar denedim. olmadı. İlginize teşekkürler.
 
Tahsin bey;

Sözkonusu VBS dosyası ektedir. (Not: Orjinal kodda gözüme çarpan bir-iki düzeltmeyi de yaptım.)

Çift tıklayıp çalıştırabilirsiniz.... Eğer yine de olmuyorsa, belki PC'de WSH aktif edilmemiş olabilir.


.
 
Sn. Haluk hocam gönderdiğiniz test dosyası oldu, şimdi yeni birşey daha öğrenmiş bulunmaktayım, Emeği geçen bütün hocalarıma teşekkür ederim. Saygılar.

Bu arada iki kod arasındaki farkı incelerken fark ettim, ben ilk denememde '
Call OCX_KOPYALA kısmını fazlalık diye düşündüğümden yazmamıştım, oysa önceki dosyada bu şekilde çalışıyormuş, olsun öğrenmeler bu şekilde olur zaten. Tekrar teşekkürler
 
Haluk hocam verdiğiniz birbirinden değerli bilgiler için ve Kodlar için teşekkür ederim.
Acaba şöyle bir şey istesem diyorum.
Kaynak yolu , vbs dosyasının içinde bulunduğu yol olarak belirtebilirmiyiz?
Vbs dosyası hangi klasörün içinde bulunuyorsa o klasörün içindeki ocx dosyaları C:\Deneme klasörü içersine kopyalansın.
Tekrardan teşekkür ederim.
 
Selamlar,

Haluk bey verdiğiniz değerli bilgiler için bende teşekkür ederim.
 
Ben de size teşekkür ederim beyler.


Acaba şöyle bir şey istesem diyorum.
Kaynak yolu , vbs dosyasının içinde bulunduğu yol olarak belirtebilirmiyiz?

Evren bey, ekli revizyon sanırım işinizi görecektir.

.
 
Merhaba.
Hocam şöyle bir durum oluştu.
Eğer buluduğu klasörde hiç ocx dosyası yoksa hata veriyor.
Eğer hiç ocx dosyası yoksa
xxxx klasöründe kopyalanacak ocx dosyası/dosyaları bulunamadı.!
Diye mesaj verbilirmi?
Teşekkür ederim.
 
Evren bey, buyrun;

Kod:
Sub OCX_KOPYALA()
    Dosya_Yolu = "C:\DENEME"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(Dosya_Yolu) Then
       FSO.CreateFolder (Dosya_Yolu)
    End If
 
    Set Klasor = CreateObject("Scripting.FileSystemObject")
    Set Dosya = Klasor.GetFolder(Dosya_Yolu)
    on error resume next      
    Klasor.CopyFile Replace(WScript.ScriptFullname,WScript.ScriptName,"") & "*.OCX", "C:\DENEME"
    
    if err then
       msgbox Replace(WScript.ScriptFullname,WScript.ScriptName,"") & chr(13) & "klasöründe kopyalanacak OCX dosyası bulunamadı..."
       exit sub
    end if
    MsgBox "Kopyalanan *.ocx uzantılı dosya sayısı;" & Chr(10) & Chr(10) & Dosya.Files.Count
End Sub
'
Call OCX_KOPYALA


.
 
Halu hocam teşekkür ederim.
 
Haluk hocam bu konu ile son bir soru ve bu konu bitiyor.Böylelikle küçük bir setup programı sayenizde yapmış olacağız.
Dosyaları klasöre kopyalarken ayni zamanda regsvr32 dosyası ilede windowsa tanıntsa.Kodları bu şekilde revize ederek yollarsanız çok memnun olurum.
Tekrar teşekkür ederim.
 
Selam,
Evren Bey aşağıdaki kodlamayı kulanabilirsiniz, işinizi yapar...

Kod:
Sub OCX_Copy_Run()
    On Error Resume Next
    Dim FSO
    Dim EVNShell
    Dim EVNDos
    Dim EVN1
    Dim EVN2
    Dim EVN3
    Yol = "C:\DENEME"
    Set FSO = CreateObject("Scripting.FileSystemObject")
       If Not FSO.FolderExists(Yol) Then
           FSO.CreateFolder (Yol)
       End If
    Set EVNDos = FSO.GetFolder(Yol)
        EVN1 = Replace(WScript.ScriptFullname, WScript.ScriptName, "") & "*.ocx"
            FSO.CopyFile EVN1, Yol
    If Err.Number = 53 Then
       MsgBox Replace(WScript.ScriptFullname, WScript.ScriptName, "") & vbcr & "klasöründe kopyalanacak OCX dosyası yok  ",16 , "Evren GİZLEN"
       Exit Sub
    End If
        MsgBox EVNDos.Files.Count &" adet ocx uzantılı dosya kopyalandı " ,64 , "Evren GİZLEN"
    Set EVNShell = CreateObject("WScript.Shell")
    Set EVN2 = EVNDos.Files
        For Each EVN3 In EVN2
            EVNShell.Run ("%SystemRoot%\system32\regsvr32 " & EVN3)
        Next
End Sub
Call OCX_Copy_Run
 
Geri
Üst