Programación General > Visual Basic 6.0 e inferiores
Re: Problema. URGENTE POR FAVOR
Jaume:
J.M. Disculpa si he dado la impresión de molestarme. De ningún modo me molesta que comenten mis respuestas o que las mejoren. Puede que haya sonado mal, puede por que lo estoy haciendo desde el trabajo y lo he escrito un poco deprisa.
Ya te he comentado que tu respuesta me parece correcta, es más, mis aplicaciones tienen un sistema parecido de usuario y password.
Solo he querido matizar nuestras visiones, para que ROBER.29 vea las diferencias entre nuestros puntos de vista.
Tu has propuesto uno más complejo, pero que en mi opinión, si no es que haces este último control de máquina que comentas en el último mensaje, acarrea el mismo problema que el mio, puesto que se podrá ejecutar el programa desde tantas máquinas como quieras sabiendo un nombre de usuario y una contraseña.
Solo pretendo mejorar las opiniones que vamos dando.
:good:
Salu2
JuanK:
Hola, asi como de novedad estoy por aca metiendo la cucharada.
Segun entendi tu pregunta y espero no entenderla mal lo que más te podria preocupar es que usen la liscencia en màs de 17 equipos.
Aca en donde trabajo tenemos una liscencia asi..y se se maneja como se muestra a continuacion:
Resulta que solo hay 30 liscencias del aplicativo, asi que el proveedor genero una tabla en la base de datos con 17 ids permitidos, cada id esta representado por la direccion ip de la maquina que tiene liscencia asi que nunca se puede utilizar una liscencia en una maquina que no tenga una ip registrada.
Claro que como dijo jaume esto genera mantenimientos pero en el caso de mi empresa esto se maneja asi:
Resulta que el proveedor nos da acceso a todas las bases de datos del software es decir usuarios, permisos, otras tablas etc... con exepcion de una base de datos de liscencias, de la cual solo tienen acceso ellos y logicamente el software, cada vez que hemos necesitado actualizar un registro, como por ejemplo que la maquina con liscencia cambie de IP, les hemos enviado la solicitud por e-mail, y a vuelta ellos nos envian un EXE que trae enbebido un script con las modificaciones pertinentes en esta tabla..este exe nunca pesa mas de 10k, y como son solo 17 liscencias, lo mas que hace el proveedor es hacer un query para modificar 17 registros... eso es siendo muy exagerado ya que por lo general solo se modifica 1 registro.
Creo que en tu caso esto seria muy optimo ya que nos comentas que solo son 30 liscencias, si fueran 3000 seria tenaz, pero no son 3000:P espero haberles servido de ayuda.
hasta pronto.
J.M.Movilla:
Este es un problema propio de los foros; en un chat no te ves la cara, pero al menos respondes en directo y no da tiempo a malas interpretaciones...
Porque yo en este caso he empezado diciéndote "sin acritú..." en plan de gracia, pero quizá tú lo hayas interpretado como que veo acritud en tu mensaje anterior, lo cual no es así.
En resumen, que los dos estamos de acuerdo, y que a Roberto se lo estamos complicando con nuestros temas y el nuevo de Juank... Va a tener que decidir lo que mejor le vaya.
Un afectuoso saludo
HurryCrack:
Hola Rober no se si esto te servira pero no he encontrado nada mas simple y facil de usar para IMPEDIR LA EJECUCION DE UN PROGRAMA EN USO. Solo debes convertirlo a 17 programas en uso, fale?
Entiendo ke sea un problema grabe, ya ke se estan aprobechando de algo ke no es suyo.
' Para que funcione el codigo debe estar compilado en .EXE
If App.PrevInstance = True Then
MsgBox "Este programa ya esta en ejecución !", vbCritical, "Error"
End
End if
Espero te sea de ayuda, sino es ke no se como detectas la ejecucion de tu programa sin utilizar API'S de windows.
Tambien supongo ke sera demasiado tarde para recomendarte ke ese tiop de programas deben hacerse en el formato CLIENTE/SERVIDOR lo cual te ahorraria muchos kebraderos de cabeza.
Por cierto no se como funciona eso de tener un programa en un servidor y crearle X accesos directos, no te da ningun tipo de conflicto? bueno ya te digo ke no lo veo. Si necesitais algo andare por aki, un saludo.:hippi:
ROBER.29:
Muchas gracias por vuestra ayuda. Al final lo he solucionado comprobando cuantas personas están conectadas a la base de datos.
En el form load del formulario conecto con la base de datos y luego compruebo cuantas personas hay conectadas con la siguiente función:
Private Sub control_licencias(ByVal conexion As String)
Dim Cn As New ADODB.Connection, Rs As New ADODB.Recordset
Dim cont As Integer
Const JET_SCHEMA_USERROSTER As String = "{947bb102-5d43-11d1-bdbf-00c04fb92675}"
Cn.Open conexion
Set Rs = Cn.OpenSchema(adSchemaProviderSpecific, , JET_SCHEMA_USERROSTER)
cont = 0
While Not Rs.EOF
If Rs!CONNECTED Then
cont = cont + 1
End If
Rs.MoveNext
Wend
If cont > 17 Then
FrmMensaje.ver_botones 1
FrmMensaje.lblInformacion.Caption = "No hay ninguna licencia libre."
FrmMensaje.Show
error = True
Unload FrmRecorder
End If
Rs.Close: Set Rs = Nothing
Cn.Close: Set Cn = Nothing
End Sub
En el caso de que haya más de 17 personas no le djo seguir ejecutando la aplicación.
Gracias a todos.
Saludos,
Roberto García
Navegación
[*] Página Anterior
Ir a la versión completa