Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations biv343 on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Disallowing Non-Company Users of My Excel Tools

Status
Not open for further replies.

miwoodar

Technical User
Dec 4, 2006
34
US
I need advice on the best way to protect the Excel tools I create and maintain for my company. We have recently had problems with people getting trigger fingers and sending them to clients. The senders just can't say 'no' when a client asks. For this reason I don't think a password would help. It is not acceptable for our clients to receive fully functioning tools though.

Are there other options than using passwords? I was brainstorming the idea of checking the path name and locking books if the path name did not match our company's internal, predictable structure. Is this idea worth following up on? Has anyone ever tried this with good results?

Another idea, maybe I could ping our intranet in some fashion? I've never done anything like that so I don't really know where to start if I go that route.

____________________
Mike
 





Hi,

Is this just code or does it require some workbook functionality.

For instance, I publish a VBA Module that can be imported and used in a PERSONAL.xls or other workbook. You can either import the module or copy the code to any other module for it to work.

There are other applications that take a specific workbook configuration, like a source data sheet and a report sheet and the code does a transform from one to the other.

Which kind of situation is yours and can you explain?

Skip,

[glasses] To be safe on the [red]FOURTH[/red],
Don't take a [red]FIFTH[/red] on the [red]THIRD[/red]
Or you might not come [red]FORTH[/red] on the [red]FIFTH[/red]
[red][highlight blue]FORTH[/highlight][/red][white][highlight red]WITH[/highlight][/white] [tongue]
 
To be honest, it is VERY hard to lock down excel. All a user needs to do is disable macros to get past any code protection and passwords can be easily broken. My standard answer to this is to educate users on why they shouldn't send these tools out...

Rgds, Geoff

We could learn a lot from crayons. Some are sharp, some are pretty and some are dull. Some have weird names and all are different colours but they all live in the same box.

Please read FAQ222-2244 before you ask a question
 
Skip, I'm not entirely sure I understand your question. I was hoping to add this to fully functioning books. While the books were in house they would work fine but when they were out of house they would be broken.

Geoff, I know it's hard since Excel is not secure. Eductation has helped tremendously but some people just never seem to get it - they fold to client pressure even after I explain how important the issue is. They are interested in improving their individual client relationships, not protecting the company's tools. It's amazing, these individuals never even bother to mention to the client the fact that the tools need to be kept under wraps, they just zip the tools into an e-mail and hit send. Maybe I could hide the sheets when the workbook is closed then show them if the user has turned on the macros...? I'm banking on the idea that most Excel users are not savvy enough to realize how easy it is to crack.





____________________
Mike
 
If it the code to protect, I would try the following (the security is not perfect and depends on skills and access to the registry):
1. separate the code in the add-in,
2. create (external file) simple registry entry (SaveSetting), every time the add-in opens, it tests the entry, if fails - self-destruction,
3. the add-in creates menu item or toolbar to use the tool.

combo
 
You will be lucky to deter very determined hackers but most users of 'stolen' software will be easily detered by use of simple techniques; most will give up if it does not 'just work'; if they had the ability to 'crack' your code they would also have the ability to write similar code and would probably prefer to. Some of the more intelligent may be deterred when they discover you are making efforts to deter them (and make your software potentially unreliable for them).
Following on from Combo I suggest you just check for something unique to your systems such as a file stored in an obscure place on your network, a character or string present in all your computer network names, check against a table of valid computer/user names contained in a personal.xls etc.
 
Thanks, very helpful information. I'm hoping to stifle the crowd of users who expect it to 'just work'. I will give it a crack next week.

____________________
Mike
 
Migrate to office2007 and then no one outside will play with your tools ;-)
Sorry for the bad joke.
 
I have a set of excel tools I sell to companies using Macola software, you can see it on my website if interested. I use exactly the method combo outlined, and have had no problems so far.

Software Sales, Training, Implementation and Support for Macola, eSynergy, and Crystal Reports

"If you have a big enough dictionary, just about everything is a word"
--Dave Barry
 
I'm just getting back around to doing this project.

Someone in my office recommended we try Windows Rights Manager for this instead of the options listed above. Would anyone here on the board think the above options are still a better solution? I am more interested in protecting the actual spreadsheets than the VBA scripts at this point.

____________________
Mike
 
Im currently working on a project where the development is slightly back to front. so excuse the crudity of this code, Im just using it for testing, but it might give you somethign to build on


Code:
Option Explicit

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If (lngX > 0) Then
        fOSUserName = Left$(strUserName, lngLen - 1)
    Else
        fOSUserName = vbNullString
    End If
End Function


Function CanSeeAdvanced() As Boolean

    Select Case UCase(fOSUserName)
    
    Case "TESTMACHINE1"
        CanSeeAdvanced = False
    Case "TESTMACHINE2"
        CanSeeAdvanced = TRUE
    Case "TESTMACHINE3"
        CanSeeAdvanced = False

    End Select

End Function

Then on my Thisworkbook load I have a IF statement which looksomething like

Code:
If CanSeeAdvanced = True Then
    create toolbars for users...
end if

Its not perfect, but its an extra level that you can in.

Chance,

F, G + HH
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top