Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

#2201
Mi opinión (personal), sobre el tema...

Es que no vale la pena. El coste energético, cada vez es más caro, los equipos necesarios también. Así que minar por tu cuenta, para que sea rentable exige una inversión grande, que al final no queda claro si vas a recuperar, dada la fluctuación constante del valor del bitcoin, supone además un elevado riesgo.

La otra forma, es la que propones... pero no exactamente así.
- Un modelo donde tu pones tu equipo y te dan una mínima parte (que encaja con lo que expones), es una tontería, al final estás 'trabajando' para dar el beneficio a otro/s...
- Una alianza para compartir, donde todos dividen a partes iguales (proporcional al cálculo que cada uno aporta, no a la cantidad de equipos que pone), me parece sensato... aunque todavía queda el asunto del rendimiento económico... requiere hacer cuentas, para demostrar si el costo energético actual, frente al cálculo que ofrece tu equipo y el valor del bitcoin (al menos al día de hoy), sale favorable y en que cuantía.... ganar 5 euros al mes minando, ni siquiera es ganacia, porque por 60 euros al año, estás machacando un equipo que luego te costará cientos de euros una nueva adquisición.

...pero en fin, es decisión de cada uno.
#2202
Cita de: rigorvzla en 25 Agosto 2018, 05:14 AM
...lo que realmento quiero ejecutar en el boton creado del menu contextual es un metodo que tengo en el mismo proyecto , NO es un archivo, es cierta cantidada de lineas de codigos.
...
Otra forma de explicarlo seria, que al crear el boton en el menu contextual pueda hacer click y me muestre una ventana con un mensaje, osea un metodo, aclaro es un ejemplo simple, lo que realmente quiero es llamar un metodo que ya tengo en el proyecto.
...pero es que ya se te ha explicado... Al final no te sales del registro, por lo que todo lo dicho con anterioridad se aplica.

Lo único que te falta es que tú trates en tu programa la línea de comando que recibe el programa cuando se arranca... para hacer exactamente lo que quieres... me resulta muy vago eso de 'un método', 'muchas líneas'... sea lo que sea tendrá un nombre (verbo), que lo defina con claridad.

Si la línea de comando está vacía, es porque el programa se ha iniciado vía doble click (por ejemplo, etc..) por parte del usuario o invocada por otra aplicación...
Si la línea de comando no está vacía, entonces debes procesar los parámetros que recibes para hacer lo que necesites, acorde a la acción solicitada (puede haber sido invocada desde la shell del sistema o desde un *.bat, por ejemplo o incluso desde otro programa...

A la tarde te pongo un ejemplo sencillo, en VB... registrando unas acciones con un fichero reg (el como edites el registro es lo de menos, de cara a explicar el resto, pués debemos suponer que tras todo lo hablado, al menos ya sabes manipular el trozo de código que pusiste para registrar lo que necesites), y luego investigando los parámetros cuando el programa arranca hasta cumplir 2 o 3 sencillas tareas distintas... y a partir de ahí, no debiera quedarte dudas.



De todos modos, tienes que pensarte seriamente en ponerte a leer más libros/manuales, para rellenar todas esas lagunas que tienes... Te resulta difícil entender cosas elementales, precisamente por esas lagunas que presentas, cuando con 4 explicaciones imprecisas debieran ser suficientes.
#2203
No tengo Facebook... ni twitter, ni... no me gusta perder el tiempo con tonterías.
#2204
Dudas Generales / Re: keylogger en android
25 Agosto 2018, 04:02 AM
Me ha hecho gracia eso de "ejecutarlo en mi móvil"...

Citar...o manera de fabricar uno...
Bah, creo que es un farol, lo segundo (esa cita) no encaja con preguntar lo primero.

De todos modos, la forma más fácil, es diseñar tu propio teclado (software), vamos una app que sea precisamente un teclado... los teclados con la excusa de usar el contenido introducido para caché de asistencia en la predicción de escritura, guardan estadísticas y texto, y como nadie controla qué exactamente guarda ni cómo ni para qué, quien sabe si guardan más cosas y acaso envían a sus servidores luego esos mismos ficheros (con la misma excusa, mejorar la predicción de escritura y del uso del teclado).

Eso sí, ten presente que en Android, ahora en las últimas versiones, puedes rechazar permisos específicos que tenga una aplicación (viene bien para aquellos que aprueban todo sin fijarse en nada pero luego alguien puede ayudarles en el tema y revisarlo... resultan obstinados para eliminar una aplicación, pormás que les aconsejes que no vale la pena y que hay otras que no exigen tales permisos, pero es lo que tiene la ignorancia y el deseo de permanecer en tal ignorancia técnica).

Si creas un teclado y envía datos por la red, posiblemente habrá quien deniegue dicho permiso (yo sin ir más lejos, basándome en que la predicción de texto, ya se conoce desde hace décadas y en que puede hacerse estadísticas, sin más que hacerlo sobre libros en tal o cual idioma, y las del usuario, pueden definirse de foma local, sin necesidad de enviarse a parte alguna...

Si en verdad necesitas guardar con tu móvil alguna entrada, si puedes activar la grabadora de voz... al mismo tiempo puedes activar el 'ok google', para introducción de datos por voz, que junto con lo primero tienes lo que precisas 'ejecutar en tu móvil'... eso sí, ocupara más espacio que un fichero de texto, pero si de verdad precisas algo así, para alguna ocasión, no importa que ocupe cierto tamaño... además, no solo grabaría tu voz, también la de alguien más que participare en alguna conversación.
#2205
Programación C/C++ / Re: Ver perfiles de red
25 Agosto 2018, 03:43 AM
Abre tu interfaz de conexiones de red, ingresa el nombre de una red en la que tengas perfil... y dime si te muestra la contraseña...
#2206
...ya, pero es que me queda claro que no haces bien, en cambio no tanto que es lo que realmente pretendes hacer...

Si te explicas con claridad diciendo que tratas de hacer (sin vincularlo al registro, durante la explicación), ya veré yo si lo que reclamas se puede hacer con el registro (o si hay algo más directo y efectivo), y en cuyo caso te señalaría cómo...
#2207
Cita de: Machacador en 23 Agosto 2018, 21:33 PM
Grrrrrrrrrrr... yo estaba listo para salir a cobrar mi pensión de 1.800BsS (mil ochocientos bolívares soberanos) hoy Jueves 23, pero resulta que suspendieron el pago y ahora se cobrará fraccionado 450BsS el Sábado 1º de Setiembre, 450BsS el 7 y 900BsS el 15...

De aquí a que llegue el pago los precios se habrán triplicado... si acaso pagan de verdad...
Pués seguro que sí... incluso hasta es probable que ya sobre otro 'cero'... manipular las fechas en que se debe cobrar, es lo mismo que decirte que te han bajado la pensión a 600bolívares... pero así suena peor y podría haber un levantamiento (quién no culparía así a Maduro de haberle reducida a 1/3 su pensión), pero... dejándolo al aire, al paso del tiempo, ya Maduro puede culpar a cualquiera (menos a Rajoy que ya no está). Y los tontos, todavía se lo creerán...

En fin taparse los ojos para no ver la realidad, es al fin y al cabo dejarse timar, por un gobierno que ha sido es y será una estafa (nada nuevo bajo el Sol, pués al fin y al cabo todos lo son, la diferencia es que éste asfixia a su pueblo, no lo deja respirar), solo por mantenerse en el poder...

La silla del poder debiera ser diseñada de tal manera que produzca dolor (real), al que sobre ella se sienta, tanto más fuerte, cuanto más tiempo esté... sería la única manera de asegurarse que el que se sentara sobre ella, tuviere firme intención de solucionar problemas e irse cuanto antes, para dejar el puesto a otro... pero tal como está diseñado, parece que se la quieren soldar al culo de por vida y si pudiera ser hasta se la llevarían a la tumba una vez muertos... no solucionan nada realmente importante, se pìerden en menudeces sin importancia...
#2208
Java / Re: Sistema de control vacacional en JAVA
24 Agosto 2018, 21:39 PM
Hay varias cosas que decir...

0 - La primera: es que cuando usas un objeto, es importante que la instancia de ese objeto de alguna manera contenta una abreviatura de dicho objeto, para así reconocer de un simple vistazo una variable sin tener que revisar donde está declarada (se gana mucho tiempo con ello, especialmente cuando se lee código ajeno).

Entonces si el objeto es un Scanner, declara la instancia mejor así (o similar):
Código (java) [Seleccionar]
Scanner scanDatos = new Scanner (System.in);

1 - Tu problema: Es que no entiendes en su totalidad la clase Scanner. Te lo explico un poco por encima.
Cuando escribes un texto por teclado, imagina "Hola, me llamo Tutankamón y tengo 2500 años"
Scanner divide la entrada en tokens, cada token es separado por defecto por un espacio en blanco. Para tomar una línea completa se usa como bien pones nextLine, sin embargo previamente había ya un escaner en marcha para la petición del departamento, que era un valor numérico...
Tomaste el valor numérico... e... inevitablemente cada vez que el usuario pulsa intro, para enviar los datos, se añade a la entrada el salto de línea (\n), luego de tomar el nextInt, queda en el Scanner el "\n", que es lo que está recibiéndose como 'nombre'.
Es decir tras la petición del token nextInt, una petición por nextLine, devuelve lo que resta del token hasta final de la entrada, pero si resulta que ya no queda nada 'visible', lo que devuelve es justo el salto de línea "\n".

La solución pasa por tanto por liberar el estado del scanner (limpiar el buffer) cada vez que se pretende tomar como entrada un string... y previamente no era otro string, exige limpiarlo, y eso se hace justamente leyendo... es deicr la primera vez, lee el salto de línea "\n" que se transforma en un texto vacío, y ya la siguiente vez estando el buffer vacío, reclama la entrada...

Hubiera ido bien si la entrada previa hubiera sido algo como esto: "2500 años tengo y me llamo Tutankamón", ya que nextInt hubiera devuelto 2500, y nextLine el resto...

Luego detrás de esto:
Código (java) [Seleccionar]
opcion = in.nextInt();
añade esta línea a tu código...
Código (java) [Seleccionar]
nombre = in.nextLine(); // limpia el buffer para luego poder leer un string solicitando entrada por teclado.

2 - Por último: tu código se puede optimizar un poquito...
Si lo miras bien las 4 primeras líneas de cada caso, son idénticas luego puedes modificar el código para que aparezcan una única vez, y esto solo cuando los casos sean 1,2 ó 3.
Igualmente al final haces una salida, en los mismos tres casos, igualmente podrías alamcenar un texto como 'salida' y tras esos casos, hacer un único...
Código (java) [Seleccionar]
System.out.println(nombre + salida);
#2209
A ver... creo que no acabas de entenderlo del todo.

Estás en el registro en la rama Classes... esa rama en específico, de lo que versa es de definir que PROGRAMAS, manejan qué extensiones y qué acciones contiene cada extensión de fichero (así de modo muy resumido, pero espero que suficientemente claro).

Es decir, al indicarle una ruta hacia un .exe, lo que le estamos diciendo, es que es ese programa (el de la ruta) quien será el encargado de hacer las acciones (verbo) que correspondan al fichero/s recibido ( %1).  Además también te he explicado que el programa puede recibir parámetros adicionales predefinidos, más allá de solo la ruta.

...por tanto, en la ruta no puede haber un *.pdf, porque ese fichero no es un ejecutable, ese fichero es un fichero de datos.

Por defecto, la acción "Open", lo que hace es abrir con el programa asociado (.exe), una determinada extensión...
Por ejemplo los ficheros ".pdf" se abrirán (si no se ha cambiado la asociación), con el programa "acrobat reader" de Adobe...
Si tu programa va a remplazar la acción de abrir un pdf, tu programa.exe podría sobrescribir la acción "Open", en cambio si vas a realizar una acción muy distinta de abrirlo (imagina que pretendes buscar si dentro del pdf, existe determinado texto, pero no muestras el contenido al usuario, solo te limitas a decir " 'éste pdf', contiene x veces el texto buscado", entonces si no vas a mostrar el contenido del pdf, la acción no debiera sobrescribir "Open", si no añadir una acción "Buscar x texto", y uno de los parámetros podría ser el texto que se busca...

En resumen: la ruta el ajecutable, lo que le dice es qué programa hará el trabajo deseado, por tanto, sí o sí, tiene que ser un ejecutable (.exe, .bat, .dll pero las librerías tienen otro proceso de registro diferente (shellex de "shell EXtension")) pero la ruta del fichero seleccionado que recibe el shell se recoje en el parámetro "%1", y éste se considera un dato... vamos que por algo es un parámetro, incluso aunque el fichero sea una extensión .exe...

Un ejemplo, un programa que calcula un hash (da igual que tipo de hash) a un fichero recibido... el programa que calcula el hash debe ser un ejecutablem, si o sí... pero el fichero al que calcula el hash, puede ser cualquiera, incluso un .exe, un pdf, etc... así la línea de comandos que el shell debe enviar al programa y el programa al que se debe enviar, viene declarado en la línea de "command"
"c:\program files\Hash\Hash.exe %1 /T:md5"
Así explicando la línea... existe un programa en la ruta: c:\program files\Hash\
que se llama: Hash.exe
y que al parecer es capaz de calcular diferentes tipos de hashes, si se invoca esa línea en concreto, estaría reclamando calcular el MD5 (se supone esa es la idea del parámetro T:md5
Y lo calcula al fichero (sea el que sea), que figura en la ruta: %1, que es el fichero que el usuario ha pinchado, para abrir el menú contextual.

Y ese simple ejemplo, es trtasladable a cualquier otra acción.

Si tú no tienes nada que hacer con ningún fichero, entonces no tiene sentido que guardes en el registro acciones sobre ficheros... si tu por ejemplo simplemente quieres que un programa diga hola... debes crear ese programa, y que el programa cuando arranque diga "Hola", en el registro, tu acción podría ser "Saludar" (y ese podría ser el texto a mostrar en el menú contextual, y la línea de comando podría ser tal que así:
"c:\program files\Miprogramasaludador\Saludos.exe"
como no hace nada sobre ningún fichero, ni siquiera es preciso ponerle el %1. El usuario simplemente usará un fichero cualquiera (si registras la acción bajo HKEY...classes\*\... ), para que aparezca el menú contextual y muestre ahí la opción "Saludar"
Si no existe el fichero Saludos.exe el registro intentará ver si hay otro programa adicional asociado, si tu programa luego no hace lo que dice la acción "Print", pero no imprime nada, es problema de tu programa o estás engañando al usuario ó si no hay impresora el programa que trata de imprimir, verificará que no hay n¡instalada una impresora o que no está lista y avisará o gebnerará un error.
Si la ruta ni siquiera deriva a un ejecutable... pués cantará el error que te canta. Eso es un error de no saber que estás haciendo, y que espera el registro que introduzcas.

El registro después de todo, es simplemente una base de datos, con una jerarquía específica y la shell completa, es esa misma base de datos con librerías que permiten manipularla... cuenta con algunas librerías para poder manipular la base de datos, y una interfaz de usuario (el emnú contextual en sí mismo), pero por sí mismo, el registro no ejecuta nada, simplemente almacena datos (como cualquier otras base de datos), y el sistema lo que hace es permitir al programador guardar datos, leer datos, borrar datos, modificar datos, pero bajo una funcionalidad apiñada en algunas librerías en vez de manipularla a través de SQL, u otro sistema y al usuario le permite seleccionar objetos mostrar opciones y enviar la opción pulsada...

...en definitiva... ¿entiendes que es tu programa, el que al final tiene que hacer la acción que quieras llevar a cabo, y que el menú contextual, sólo es un vehículo/intermediario/facilitador/vínculo para dirigir una acción del usuario (auspiciando una simple interfaz de usuario en modo de lista de menús) hacia tu programa?.

Dicho de otro modo (aunque es lo mismo, por tercera o quinta vez). El menú contextual, solo provee al usuario de opciones entre las que elegir, que se toman del registro en función del tipo de fichero seleccionado y las acciones registradas para ese tipo de fichero (incluso virtual (enlaces simbólicos), como explicaba Elektro al diferenciar "Folder" de "Directory") y las redirige al programa/librería que tiene asociado la acción elegida por el usuario.... y es ese programa quién hará lo que tenga que hacer,
por ejemplo un programa de imagen registrará extensiones de imagen y pondrá verbos como Open, Print, Edit, Send To, etc... para visualizar, imprimir, alterar la imagen enviarla por correro, etc...

#2210
Java / Re: Alguien me puede decir que esta mal.
23 Agosto 2018, 18:24 PM
El que prenteda ser programador, debe esmerarse en saber un mínimo de inglés... y mientras eso no sea así, al menos tener un traductor online como "amigo íntimo".

Cuando un programa 'canta' un error, hay que leer detenidamente el mensaje de error, porque no se limita a decir que hay un error ya ya está...  si no que además (el propio compilador) señala dónde está y en qué consiste, entonces huelga preguntar cuál es el problema, qué falla cuando el propio compilador YA PROPORCIONA dicha información...

Si leyeras los mensajes de error, podrías ver que una y otra vez te dice lo mismo:
el símbolo 'entrada' no está definido por ninguna parte en tu programa...
Se llama símbolo, mientras no se proporciones info específica que permita determinar si es una variable, una función interna o incluso función importada o cualquiera de lo anterior pero que aparece en un módulo no adjuntado al proyecto.

Entonces la línea: opc=Entrada.entero(); el compilador "no puede con ella", lo mismo pasa con otras líneas donde aparece el mismo símbolo:

opc=Entrada.entero();
dorsal=Entrada.entero();
part[numc][M0]=Entrada.entero();
part[numc][M1]=Entrada.entero();
part[numc][M2]=Entrada.entero();

...por supuesto si entrada no está definido, tampoco cualquier miembro que contenga o derive de él.
(que no esté definido quiere decir que en la tabla de símbolos no aparece y por tanto no hay ninguna dirección de memoria a la que referirse y donde obtener, escribir datos, etc...)


...además los números de línea corresponden al número de línea que contiene el error en tu editor (si hubieras añadido etiquetas geshi para java, también aquí se habría enumerado aunque si el copy-paste, no coincide con lo que aparece en tu editor, aquí los números de línea podrían ser distintos):