Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dear Anyone,
I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sub ShowDriveInfo()
drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dear Mr. Tom,
Thank you for your reply. I got other answers from other people, telling me to register or copyright it. I don't want to do that. But I am into computers from the days of DOS. That is why I thought of the hard disk serial number. We used to type in those days DIR in DOS and among other info it used to tell us the serial number of a hard disk which changed after formatting. So, this number is unique. In those days, I have prepared programs in plain BASIC language linked to this serial number. I used to fix a certain HD serial number in the program and then the program, while starting to run, would get the HD serial number and compare it to the one fixed in the program, then it would decide to work or not. I thought to use the same way for running these EXCEL files I have prepared. You sir, are the only one replying exactly to my issue. But the problem is, I don't know how to apply the given code. I know how to enter the MACROS and visual BASIC section, but what to do from there on so that the file while starting to run would check a serial number, is unknown to me. Will you please help me in that? Thank you very much. Hope to hear from you very soon. Best regards, Berj "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One way
Public WithEvents App As Application Private Sub App_WorkbookOpen(ByVal Wb As Workbook) If Wb.Path = "C:\foldername" Then If DiskVolumeId("C:") < "94CA-4370" Then Wb.Close savechanges:=False End If End If End Sub Private Sub Workbook_Open() Set App = Application End Sub 'This is workbook event code. 'To input this code, right click on the Excel icon on the worksheet '(or next to the File menu if you maximise your workbooks), 'select View Code from the menu, and paste the code but it is so easy to break as to be worth little. -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Berj" wrote in message ... Dear Mr. Tom, Thank you for your reply. I got other answers from other people, telling me to register or copyright it. I don't want to do that. But I am into computers from the days of DOS. That is why I thought of the hard disk serial number. We used to type in those days DIR in DOS and among other info it used to tell us the serial number of a hard disk which changed after formatting. So, this number is unique. In those days, I have prepared programs in plain BASIC language linked to this serial number. I used to fix a certain HD serial number in the program and then the program, while starting to run, would get the HD serial number and compare it to the one fixed in the program, then it would decide to work or not. I thought to use the same way for running these EXCEL files I have prepared. You sir, are the only one replying exactly to my issue. But the problem is, I don't know how to apply the given code. I know how to enter the MACROS and visual BASIC section, but what to do from there on so that the file while starting to run would check a serial number, is unknown to me. Will you please help me in that? Thank you very much. Hope to hear from you very soon. Best regards, Berj "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dear Mr. Bob.
First Thanks you for replying. I tried as you told me. I figured out I should replace the FOLDERNAME by the foldername in which my file is. Also I should replace the serial number provided with the serial number of my Hard disk. I did those. Did I do right? Something happened even before I made those changes. It gave me the following error: COMPILE ERROR: SUB OR FUNCTION NOT DEFINED and it highlighted: DiskVolumeId What to do next? Regards, Berj -------------------- "Bob Phillips" wrote: One way Public WithEvents App As Application Private Sub App_WorkbookOpen(ByVal Wb As Workbook) If Wb.Path = "C:\foldername" Then If DiskVolumeId("C:") < "94CA-4370" Then Wb.Close savechanges:=False End If End If End Sub Private Sub Workbook_Open() Set App = Application End Sub 'This is workbook event code. 'To input this code, right click on the Excel icon on the worksheet '(or next to the File menu if you maximise your workbooks), 'select View Code from the menu, and paste the code but it is so easy to break as to be worth little. -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Berj" wrote in message ... Dear Mr. Tom, Thank you for your reply. I got other answers from other people, telling me to register or copyright it. I don't want to do that. But I am into computers from the days of DOS. That is why I thought of the hard disk serial number. We used to type in those days DIR in DOS and among other info it used to tell us the serial number of a hard disk which changed after formatting. So, this number is unique. In those days, I have prepared programs in plain BASIC language linked to this serial number. I used to fix a certain HD serial number in the program and then the program, while starting to run, would get the HD serial number and compare it to the one fixed in the program, then it would decide to work or not. I thought to use the same way for running these EXCEL files I have prepared. You sir, are the only one replying exactly to my issue. But the problem is, I don't know how to apply the given code. I know how to enter the MACROS and visual BASIC section, but what to do from there on so that the file while starting to run would check a serial number, is unknown to me. Will you please help me in that? Thank you very much. Hope to hear from you very soon. Best regards, Berj "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On the changes, absolutely right.
DiskVolumId is a function that gets the user disk volume id, I assumed from your posting that you already had one of those. Id not, then '--------------------------------------------------------------- Function DiskVolumeId(Drive As String) As String '--------------------------------------------------------------- Dim sTemp As String Dim iPos As Long iPos = InStr(1, Drive, ":") Drive = IIf(iPos 0, Left(Drive, iPos), Drive & ":") sTemp = Hex(CreateObject("Scripting.FileSystemObject") _ .Drives.Item(CStr(Drive)).SerialNumber) DiskVolumeId = Left(sTemp, 4) & "-" & Right(sTemp, 4) End Function -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Berj" wrote in message ... Dear Mr. Bob. First Thanks you for replying. I tried as you told me. I figured out I should replace the FOLDERNAME by the foldername in which my file is. Also I should replace the serial number provided with the serial number of my Hard disk. I did those. Did I do right? Something happened even before I made those changes. It gave me the following error: COMPILE ERROR: SUB OR FUNCTION NOT DEFINED and it highlighted: DiskVolumeId What to do next? Regards, Berj -------------------- "Bob Phillips" wrote: One way Public WithEvents App As Application Private Sub App_WorkbookOpen(ByVal Wb As Workbook) If Wb.Path = "C:\foldername" Then If DiskVolumeId("C:") < "94CA-4370" Then Wb.Close savechanges:=False End If End If End Sub Private Sub Workbook_Open() Set App = Application End Sub 'This is workbook event code. 'To input this code, right click on the Excel icon on the worksheet '(or next to the File menu if you maximise your workbooks), 'select View Code from the menu, and paste the code but it is so easy to break as to be worth little. -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Berj" wrote in message ... Dear Mr. Tom, Thank you for your reply. I got other answers from other people, telling me to register or copyright it. I don't want to do that. But I am into computers from the days of DOS. That is why I thought of the hard disk serial number. We used to type in those days DIR in DOS and among other info it used to tell us the serial number of a hard disk which changed after formatting. So, this number is unique. In those days, I have prepared programs in plain BASIC language linked to this serial number. I used to fix a certain HD serial number in the program and then the program, while starting to run, would get the HD serial number and compare it to the one fixed in the program, then it would decide to work or not. I thought to use the same way for running these EXCEL files I have prepared. You sir, are the only one replying exactly to my issue. But the problem is, I don't know how to apply the given code. I know how to enter the MACROS and visual BASIC section, but what to do from there on so that the file while starting to run would check a serial number, is unknown to me. Will you please help me in that? Thank you very much. Hope to hear from you very soon. Best regards, Berj "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This is extremely cool Tom...........is there a way to also "change" the
serial number on the HD from a macro in Excel? Vaya con Dios, Chuck, CABGx3 "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I don't think you can but certainly wouldn't claim to be an expert.
-- Regards, Tom Ogilvy "CLR" wrote in message ... This is extremely cool Tom...........is there a way to also "change" the serial number on the HD from a macro in Excel? Vaya con Dios, Chuck, CABGx3 "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
LOL......maybe you wouldn't "claim" to be an expert, but you'll do for me
until one comes along........thanks Tom Vaya con Dios, Chuck, CABGx3 "Tom Ogilvy" wrote: I don't think you can but certainly wouldn't claim to be an expert. -- Regards, Tom Ogilvy "CLR" wrote in message ... This is extremely cool Tom...........is there a way to also "change" the serial number on the HD from a macro in Excel? Vaya con Dios, Chuck, CABGx3 "Tom Ogilvy" wrote: Sub ShowDriveInfo() drvpath = "C:" Dim fs,d,s Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName (fs.GetAbsolutePathName(drvpath))) s = "SN: " & d.SerialNumber MsgBox s End Sub -- Regards, Tom Ogilvy "Berj" wrote: Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Take a look at AppSentinel, http://www.thescarms.com/appsentinel/default.asp
-- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Berj" wrote in message ... Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
#11
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Berj,
Read the recent posts in this group on the same subject. If your process is really that special, Excel is the wrong basis. You can can make it difficult, but expect that it may be broken. If you cannot accept that, you need some compiled solution. NickHk "Berj" ... Dear Anyone, I have prepared a few excel files linked together and am planning to sell it to a company. But they may copy and give these files to other companies to use on their computer. I want to protect my work. Giving passwords to open the files is not a solution because the first company to whom I sold the files may also give the password with the copy it makes. So, I thought the only way to differentiate one computer from the other is the Hard Disk serial number. If I could only link the opening of the files (or the whole folder in which they are) to the Hard Disk serial number, the problem would be solved! In this way, a copied file or the whole folder) will not work on the other computer, unless, I intervene and link the files to the new Hard Disk serial number. Any Ideas of how to do this? Or any other way is welcome. Thanks whoever answers. Berj Boshnakian |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
merging single worksheet files into a single workbook | Excel Discussion (Misc queries) | |||
Limiting files to a single computer | Excel Discussion (Misc queries) | |||
How do I copy all Excel files from old computer to new computer? | Excel Discussion (Misc queries) | |||
restricting the drop lines to only a single series | Charts and Charting in Excel | |||
Restricting a workbook to a single computer | Excel Discussion (Misc queries) |