• DİKKAT

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

Excel de oluşturulan bir sayfayı sadece izin verilen bilgisayarlarda kullanabilme

Katılım
19 Ocak 2006
Mesajlar
39
Arkadaşlar Exel de bir program yaptım. Ve bu programın sadece istediğim bilgisayarlarda çalışmasını istiyorum ... Yani kopyalarak çoğaltılmasını engellemek istiyorum ... Bunu yapabilirmiyim ... Şimdiden Teşekkürler ...
 
Kod arşivlerinde şöyle bir makro mevcut;

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub ComputerName()
Dim lngTemp As Long, strPCName As String
strPCName = Space(256)
lngTemp = GetComputerName(strPCName, Len(strPCName))
If strPCName <> "MYCOMPUTER" Then Exit Sub
End Sub

"MYCOMPUTER" benim kullanmış olduğum pc'nin adı. Siz kendi kullandığınız pc'ye göre ismi değiştirirseniz ve kodlarınızı;

If strPCName <> "MYCOMPUTER" Then Exit Sub

satırının altına kalacak şekilde yazarsanız başka pc'de çalışmaz. Tabi ki biraz kafası çalışan bir insan bunu çözecektir. Makrolarınızı şifrelemeniz halinde biraz daha yüksek güvenlik elde edebilirsiniz ancak elektronik ortamlarda hiç bir zaman % 100 güvenlik diye bir şey söz konusu olamaz.
 
Kod arşivlerinde şöyle bir makro mevcut;

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub ComputerName()
Dim lngTemp As Long, strPCName As String
strPCName = Space(256)
lngTemp = GetComputerName(strPCName, Len(strPCName))
If strPCName <> "MYCOMPUTER" Then Exit Sub
End Sub

"MYCOMPUTER" benim kullanmış olduğum pc'nin adı. Siz kendi kullandığınız pc'ye göre ismi değiştirirseniz ve kodlarınızı;

If strPCName <> "MYCOMPUTER" Then Exit Sub

satırının altına kalacak şekilde yazarsanız başka pc'de çalışmaz. Tabi ki biraz kafası çalışan bir insan bunu çözecektir. Makrolarınızı şifrelemeniz halinde biraz daha yüksek güvenlik elde edebilirsiniz ancak elektronik ortamlarda hiç bir zaman % 100 güvenlik diye bir şey söz konusu olamaz.

Üstad bu satırın altında kalacak şekilde derken ? neden bahsettiğini anlamadım ...
 
Yani kodlarınız;

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub ComputerName()
Dim lngTemp As Long, strPCName As String
strPCName = Space(256)
lngTemp = GetComputerName(strPCName, Len(strPCName))
If strPCName <> "MYCOMPUTER" Then Exit Sub

.... 'kodlarınız
.... 'kodlarınız

End Sub


şeklinde olmalı. Örnek bir dosya eklerseniz eminim ilgilenen bir çok kişi çıkacaktır.
 
Merhaba,

Aşağıdaki kodları ThisWorkbook'un kod bölümüne kopyalayıp gerekli değişikleri yaparak deneyiniz.

Değişecek yerler "ABC" diye başlayan yere kendi izin verdiğiniz bilgisayar adlarını yazınız.

Kod:
Private Sub Workbook_Open()
If Environ("ComputerName") = "ABC1" Then
ElseIf Environ("ComputerName") = "ABC2" Then
ElseIf Environ("ComputerName") = "ABC3" Then
Else
    MsgBox "Bu Dosya İzin Vermediğim Bilgisayarda Çalışmaz....."
    ThisWorkbook.Close SaveChanges:=False
End If
End Sub
 
Peki bu ComputerName kısmını çoğaltabilir miyiz? Burada şu isimli bilgisayarda çalışsın diyoruz.

Bunu artırıp birden fazla bilgisayar ismini yazıp sadece belirli bilgisayarlarda çalışmasını sağlayabilir miyiz? Yoksa hangi bilgisayarda çalışacaksa her bilgisayar için makroyu baştan mı yazmamız gerekir?
 
İyi Akşamlar

Teşekürler Necdet bey işe yaraması muhtemel.
 
Geri
Üst