Excel - excel y un poquito de prigramacion

 
Vista:

excel y un poquito de prigramacion

Publicado por 0_kool (4 intervenciones) el 07/06/2006 05:35:10
existe alguna forma por ejemplo que la hoja lea el serial del disco duro y lo almacene en algun lado de la misma hoja y si alguien lo saca de ahi (y lo lleva a otro pc)como lee el serial y no es el mismo del disco duro de origen simplemente no se ejecuta o manda un mensaje que el archivo solo se puede ejecutar en el pc de origen

la rutina basic es totalmente independiente de lo que realice la hoja(lo que no se son las instruciones en basic)

supingamos cualquier hoja que haga algunas operaciones , yo puedo proteger la hoja pero aun asi es portable

se trata de algo ejecutable en winxp (un simple archivo excel) que se pueda usar en el trabajo pero que no sea portable
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:excel y un poquito de prigramacion

Publicado por JuanC (792 intervenciones) el 07/06/2006 14:24:03
Private Declare Function GetVolumeInformation Lib "kernel32" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Private Sub SerialNo()
Dim SerialNo&
Dim Label As String * 256
Dim FileSys As String * 256
Dim i&, j&, r&
r = GetVolumeInformation("C:\",Label,256,SerialNo,i,j,FileSys,256)
End Sub

'Return Values
'If all the requested information is retrieved, the return value is nonzero.
'If not all the requested information is retrieved, the return value is zero. 'To get extended error information, call GetLastError.

El resto te lo dejo a vos...

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:excel y un poquito de prigramacion

Publicado por 0_kool (4 intervenciones) el 08/06/2006 17:17:19
si pero como meto esto en excel

como hago para que el serial del volumen se meta en la hoja y pueda producir una comparacion que me bloquee la hoja en caso de que saquen el programa del pc original
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:excel y un poquito de prigramacion

Publicado por JuanC (792 intervenciones) el 08/06/2006 23:00:37
... y bueno... si no podés hacerlo andá más despacio y hacé cosas más sencillas
supuse que sabias programar en vba... hay varias formas de hacer lo que queres, pero no se puede "explicar" en 20 palabras...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:excel y un poquito de prigramacion

Publicado por 0_kool (4 intervenciones) el 09/06/2006 07:09:54
algo se , pero al meterlo dentro de excel me complico (no se como va dentro de excel ) como macro o en algun modulo ???

si me das alguna idea te lo agradeceria

es bien simple lo que necesito

tengo una hoja con un programa que hace algunos calculos , pero me costo hacerla

quiero compartirla con mis colegas pero solo para que la utilicen no para que se la lleven a casa

si protejo la hoja , igual se la llevan

se me ocurrio que cuando formateas un disco duro ese asigna un numero de serie al volumen en mi caso es 848c-d508

la idea ademas de protejerla es hacer que la hoja leea trasparentemente este numero y lo almacene en la misma hoja en una ubicacion preiviamente definida
en un segundo intento la hoja lee vee que es el mismo y finciona la hoja pero si por comparacion no es el mismo cierra la hoja

si me ayudas a realizar esta rutina te lo agradeceria mucho , no te pido toso gratis dome lo que hay que hacer y yo lo voy haciendo y te voy diciendo

gracias de antemano

ahota que si me mandas el codigo para que no te moleste mas es cosa tuya

gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:excel y un poquito de prigramacion

Publicado por JuanC (792 intervenciones) el 10/06/2006 14:43:54
El código podría ser

Private Sub Workbook_Open() 'Cuando abre el libro comprueba el nº serie
If Load_NSerie = cNSERIE Then
MsgBox "Igual"
Else: MsgBox "Distinto"
End If
End Sub

En un módulo el siguiente código

Option Explicit
Option Private Module

Public Const cNSERIE = "848CD508" 'Tu nº de serie

Private Declare Function GetVolumeInformation Lib "kernel32" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Public Function Load_NSerie() As String
Dim lNSerial&
Dim szLabel As String * 256
Dim szFileSys As String * 256
Dim i&, j&, r&
On Error Resume Next
r = GetVolumeInformation("C:\", szLabel, 256, lNSerial, i, j, szFileSys, 256)
Load_NSerie = UCase(CStr(Hex(lNSerial)))
End Function

Breve y sencillo...

No te olvides de proteger el proyecto:
Herramientas>>Propiedades de VBAProject...

y ¡¡¡VAMOS ARGENTINA CARAJO!!!

JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:excel y un poquito de prigramacion

Publicado por 0_kool (4 intervenciones) el 11/06/2006 09:26:45
hola amigo

meti dodo dentro de un midulo pero me marca error en
"GetVolumeInformationA"

hay algo que no me quedo claro

esta parte donde va

Private Sub Workbook_Open() 'Cuando abre el libro comprueba el nº serie
If Load_NSerie = cNSERIE Then
MsgBox "Igual"
Else: MsgBox "Distinto"
End If
End Sub

lo que sigue me dices que lo ponga en un modulo pero no funciona

algo hago mal y no se lo que es , quisiera abusar de tu ayuda mis conocimientos estan un poco oxidados, he estado mucho rato tratando de que funcione pero no se que anda mal

me podrias mandar a mi correo un pequeño archivo excel que haga cualquier cosa pero con el codigo donde corresponde, gracias de antemando

ah y me alegro que tu pais ganara hoy saludos desde chile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar