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 - Eleкtro

#5221
Cita de: @synthesize en  7 Mayo 2015, 04:33 AMMucho indeseable por aquí. No me suele importar, pero ...

Un respeto a los indeseables.




Cita de: kub0x en  7 Mayo 2015, 14:55 PMCuando vuelvas te creamos un post sobre reptilianos para que te quedes agusto y descargues :D

Un respeto a los reptilianos.




Cita de: El_Andaluz en  7 Mayo 2015, 15:27 PMespero que te vaya bien y te veamos pronto comentando por algunos de los post de extraterrestre que tanto te gustan

Un respeto a los extraterrestres.



.
..
...
RESPECTO.

(Lección que aprender pa cuando vuelvas dentro de unos meses ...pa faltar a aliens o reptilianos e indeseables hay que lavarse la boca xD, no, ahora en serio, ¡hasta pronto!)
#5222
Scripting / Re: SCHTASKS no ejecuta .vbs
7 Mayo 2015, 08:36 AM
Por regla general todo argumento puede ser encerrado/delimintado entre comillas dobles, de hecho, hacerlo es sinónimo de buenas prácticas de programación.

Dos comillas dobles por cada subargumento (por llamarlo así): "ruta de archivo.exe" "ruta de script.vbs",
esto evita conflictos ya que por regla general los argumentos se delimitan por espacios a menos que se encierren entre comillas dobles,
si le pasaramos este argumento a un proceso, se tomaría cómo una única ruta: "ruta de archivo.exe ruta de script.vbs",
si le pasaramos este argumento a un proceso, se tomaría cómo 6 argumentos por error ruta de archivo.exe ruta de script.vbs.

Otras dos comillas dobles para delimitar el argumento principal, es decir, el parámetro /TR del proceso SCHTASKS.exe: ""

Combinamos los argumentos, ""ruta de archivo.exe" "ruta de script.vbs"", y por último se deben escapar los subargumentos ya que hay comillas dobles de más que entrarían en conflicto: "\"ruta de archivo.exe\" \"ruta de script.vbs\""
(esto no es una regla general, la sintaxis de escape puede variar dependiendo de cómo haya sido programado el programa en cuestión)




Lo que sucede es que no encuentra el archivo Hide.vbs por que no lo tienes en el directorio de trabajo actual del proceso WScript.exe

Lee bien el comentario que hice:
Citarlo que debes hacer es ejecutar WScript.exe (o CScript.exe dependiendo de tus necesidades) y a éste le pasas la ruta absoluta del script.vbs cómo parámetro:

Debes especificar la ruta del archivo 'hide.vbs', o añadirlo al directorio System32 para que te funcione del modo en que escribiste esto:
CitarSCHTASKS /create /SC MINUTE /MO 1 /tn start /TR "\"%SystemRoot%\System32\WScript.exe\" \"hide.vbs\""

Hazlo así:
SCHTASKS.exe /Create /SC "MINUTE" /MO "1" /TN "start" /TR "\"%SystemRoot%\System32\WScript.exe\" \"ruta del script.vbs\""

Saludos
#5223
Scripting / Re: SCHTASKS no ejecuta .vbs
7 Mayo 2015, 07:17 AM
Cómo ya te han explicado, no puedes ejecutar directamente ese tipo de archivo, lo que debes hacer es ejecutar WScript.exe (o CScript.exe dependiendo de tus necesidades) y a éste le pasas la ruta absoluta del script.vbs cómo parámetro:

"%SystemRoot%\System32\WScript.exe" "Archivo.vbs"

Por ende:
.../TR "\"%SystemRoot%\System32\WScript.exe\" \"Archivo.vbs\""

PD: Recuerda encerrar el string que asignes al parámetro "/TR" utilizando comillas dobles cómo has visto en este ejemplo.

Saludos!
#5224
Gracias a todos por los comentarios

Por el momento empezaré por ir renovándome el pasaporte que lo tenia tengo dos años caducado xD, si algún día decido finalmente trasladarme a japón será una experiencia inolvidable para bien o para mal.

Saludos
#5225
Dudas Generales / Re: diferencia movil pc
6 Mayo 2015, 19:47 PM
Tenía pensado elaborar una detallada respuesta sobre las obvias limitaciones impuestas en la tecnología móvil (término que de por si ya lo explica todo), pero pensándolo mejor prefiero no alimentar a un Troll.

Tus preguntas no pueden ser reales, lo digo por todas las preguntas que has ido haciendo a la que se suma esta, admítelo.

Saludos!
#5226
Scripting / Re: Ayuda en batch
6 Mayo 2015, 18:52 PM
Citarif EXIST (H:\ goto A)else( goto B)

Trata de RESPETAR la sintaxis del lenguaje, esa condicional es completamente erronea, nunca se va a evaluar correctamente.

Utiliza debidamente las agrupaciones, y el margen necesairo de espacios en blanco entre agrupaciones:
If Exist "H:\" (GoTo :A) Else (GoTo :B)




Citarxcopy C:\Users\user\...

Los argumentos debes encerrarlos usando comillas dobles, de lo contrario te dará error de sintaxis si encontrase espacios en blanco (por ejemplo si el nombre de usuario contuviese espacios).

XCopy.exe "...\Origen\" "...\Destino\"




Citarend

El comando "end" no existe en Batch, te dará un error de sintaxis por lo que terminará la ejecución del script en ese preciso momento devolviendo un código de salida inesperado.

En su lugar, utiliza el comando Exit:
Exit /B 0




CitarComo hago para que al pegar un archivo con el comando
xcopy C:\Users\Usuario\Pictures H:\Imagenes /A /E /K
y no aparezca si deseo reemplazar los archivos existentes, digo no se podrá hacer un if exist que haga un excepción de los archivos en conflicto existentes?

Supriimir el aviso de sobreescritura es muy sencillo, solo tienes que añadir un parámetro, lee la ayuda del comando, en consola:
XCopy.exe /?

Saludos!
#5227
¿Llevas poco tiempo programando en .Net, verdad?.

Cuando tengas un error de ese tipo y no sepas cómo solucionarlo, busca el miembro en la documentación oficial online, la MSDN:
EventHandler Delegate

Fíjate donde pone "Namespace" y ahí encontrarás la solución ("espacio de nombres" en Castellano, aunque no te aconsejo que sigas programando con la IDE de VS en Castellano).

Puedes hacer dos cosas, importarlo/referenciarlo:
Código (csharp) [Seleccionar]
using System;
(puedes asignarle un alias también)

O escribirlo directamente:
Código (csharp) [Seleccionar]
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);

Saludos.
#5229
En el código que has añadido en la edición de tu comentario, no liberas el objeto 'escritor', aparte de eso ...alguna otra cosa de menor importancia es que deberías aprovechar la declaración Using, y seguir las buenas prácticas de convenciones de nomenclatura en C# por que 'setAutentificacion' es incorrecto, el Camel-Casing se utiliza al declarar variables (y depende del tipo de visibilidad con la que la declares), los nombres de método se escriben utilizando Word-Casing.

Esto no soluciona el problema que tengas, pero por el momento el código queda más simplificado:
Código (csharp) [Seleccionar]
public bool SetAutentificacion(string certificado)
{
   int index = 0;
   string contenido = null;
   System.Text.Encoding encoding = System.Text.Encoding.Default;

   using (StreamWriter escritor = new StreamWriter(path: escritura, append: false, encoding: encoding))
   {

       using (StreamReader lector = new StreamReader(path: lectura, encoding: encoding))
       {
           contenido = lector.ReadToEnd();
       }

       index = contenido.IndexOf(vector(0));

       if ((index != -1))
       {
           contenido = contenido.Insert(contenido.IndexOf(vector(0)), certificado);
           int entrada = contenido.LastIndexOf(vector(0) + certificado);
           int salida = contenido.IndexOf(vector(1));
           contenido.Remove(entrada, salida - entrada);
           escritor.Write(contenido);
       }
   }
   return (index != -1);
}


PD: Omito la extensión '.ToString' por que doy por hecho que estás utilizando una colección de Strings, y sino, deberías hacerlo. Especifica que tipo de objeto es "vector".




Cita de: Kaxperday en  6 Mayo 2015, 11:56 AMPor cierto, no entiendo porque esto:

Código (csharp) [Seleccionar]
contenido.LastIndexOf(vector[0].ToString())

Vale cero cuando la cadena contenido contiene:

Creo que estás confundiendo la utilización de la función 'LastIndexOf', ¿que valor esperas obtener al llamar a contenido.LastIndexOf?, te está devolviendo el valor correcto, '0' es la posición del primer caracter de la última coindidencia del string que estás buscando.

Si lo que pretendes es obtener la posición del último caracter de la última coincidencia del string que buscas, entonces debes añadirle la longitud ese se string:
Código (vbnet) [Seleccionar]
Dim str As String = "Hello World"
Dim find As String = "Hello"
Dim index As Integer

index = str.LastIndexOf(find) + find.Length ' Resultado: 5


O si pretendes obtener la posición del último caracter de la primera coincidencia del string que buscas, sería así:
Código (vbnet) [Seleccionar]
index = str.IndexOf(find) + find.Length ' Resultado: 5

En este ejemplo ambos resultados son el mismo por que solo se puede encontrar una coincidencia de la palabra "Hello" en el string "Hello World". ¿entiendes?.

Saludos
#5230
Cita de: Kaxperday en  6 Mayo 2015, 11:56 AMno se si se podrá hacer para variables string muy largas, tengo pensado meter links de temas de foros en esas variables y pueden ser cientos de lineas incluso quizas miles.

El límite teórico de longitud para un String es el equivalente a 'Int32.MaxValue', es decir, 2.147,483,647 de caracteres, pero ya que por defecto .Net utiliza 2 bytes por caracter, el límite sería 1.073,741,823 de caracteres.

Mientras esas variables no superen el límite de longitud, o no superen los 2GB de asignación memoria, entonces no te preocupes ...hay potencia de sobra xD.




Cita de: Kaxperday en  6 Mayo 2015, 11:56 AMpueden ser cientos de lineas incluso quizas miles.

Por lo que comentas tienes un String que tiene una url por cada linea ...y son miles de lineas,
está claro que irás añadiendo urls a ese String, lo que no tengo claro es si también necesitas manipular constantemente ese string para buscar, eliminar o modificar alguna url, pero si llegas a necesitar eso entonces, ¿has pensado en utilizar una colección genérica de tipo List? (List<T>):

La Class List expone varios miembros que te facilitarían todas esas tareas y más (Add, AddRange, Remove, RemoveRange, RemoveAt, RemoveAll, Insert, IndexOf, Find, FindAll, FindIndex, etc...), me parece mucho más productivo que estar partiendo el String para buscar, eliminar o modificar urls, aunque siempre puedes hacerlo también bonito usando LINQ xD.




Cita de: Kaxperday en  6 Mayo 2015, 11:56 AMla idea mia tambien era que si lo hago todo en un archivo encriptarlo todo.

Perfecto, mi ejemplo entonces no ha sido en vano xD por que la serialización binaria le daría una seguridad adicional de ingeniería inversa, ten en cuenta que siempre puedes cifrar el string antes de serializarlo, y desenctriptarlo al deserializar. (al igual que si prefieres usar las settings).

Ah, y también puedes utilizar otro tipo de serializaciones para estructurar el archivo de otra manera, por ejemplo la serialización XML, eso ya depende de tus preferencias:
XmlSerializer Class - MSDN

Ejemplo del archivo "app.dat" usando serialización Binaria:
0001 0000 00ff ffff ff01 0000 0000 0000
000c 0200 0000 4a57 696e 646f 7773 4170
706c 6963 6174 696f 6e31 2c20 5665 7273
696f 6e3d 312e 302e 302e 302c 2043 756c
7475 7265 3d6e 6575 7472 616c 2c20 5075
626c 6963 4b65 7954 6f6b 656e 3d6e 756c
6c05 0100 0000 2057 696e 646f 7773 4170
706c 6963 6174 696f 6e31 2e43 6f6e 6669
6753 7472 7563 7407 0000 0004 4175 7468
044c 6f67 6904 4361 6c63 0448 6f6c 6104
4d65 6e73 0445 6e74 7204 5061 7261 0101
0101 0101 0102 0000 0006 0300 0000 0a41
7574 6820 7661 6c75 6506 0400 0000 0a4c
6f67 6920 7661 756c 6506 0500 0000 0a43
616c 6320 7661 756c 6506 0600 0000 0a48
6f6c 6120 7661 756c 6506 0700 0000 0a4d
656e 7320 7661 756c 6506 0800 0000 0a45
6172 6120 7661 756c 650b


Ejemplo del archivo "app.dat" usando serialización XML:
Código (xml) [Seleccionar]
<?xml version="1.0"?>
<ConfigStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Auth>Auth value</Auth>
 <Logi>Logi vaule</Logi>
 <Calc>Calc vaule</Calc>
 <Hola>Hola vaule</Hola>
 <Mens>Mens vaule</Mens>
 <Entr>Entr vaule</Entr>
 <Para>Para vaule</Para>
</ConfigStruct>


Por cierto, ahora que reviso el código que te mostré en el primer post, me he dado cuenta de que cometí un fallo de escritura en la documentación XML este método:
Citar
Código (csharp,1) [Seleccionar]
/// <param name="filepath">The filepath to save the obstore the serialized data.</param>
public static void Serialize<T>(T @object, string filepath)
...

Quise escribir esto:
Código (csharp,1) [Seleccionar]
/// <param name="filepath">The filepath to store the serialized data.</param>
public static void Serialize<T>(T @object, string filepath)
...


Saludos