|
82
|
Programación / Scripting / Re: [VBS] ¿Existe alguna api?
|
en: 13 Mayo 2011, 00:23 am
|
Si está buenísima, pero me refería a algo más completo, he visto gente que instancia objetos un poko raros en vbs, y quería saber si existía algo así como una lista de todos los objetos posibles a instanciar junto con sus métodos, el uso da lo mismo eso se puede deducir Xd. De antemano gracias Saludos
|
|
|
84
|
Programación / Scripting / Re: [BATCH-VBS]Pasar datos desde Batch A VBS.
|
en: 14 Abril 2011, 23:09 pm
|
tendrías que concatenar eso linea por linea en tu batch y tener un script (vbs )como este: select case wscript.arguments(0) case "/?" call help case else call selmsg end select sub selmsg dim c c=0 for each var in wscript.arguments c = c + 1 next select case c case 1 call msg1 case 2 call msg2 case 3 call msg3 end select end sub sub msg1 msgbox wscript.arguments(0) end sub sub msg2 dim icon icon = 0 select case wscript.arguments(1) case 0 icon = 0 case 1 icon = vbcritical case 2 icon = vbinformation case 3 icon = 48 case 4 icon = vbquestion end select msgbox wscript.arguments(0), icon end sub sub msg3 dim icon icon = 0 select case wscript.arguments(1) case 0 icon = 0 case 1 icon = vbcritical case 2 icon = vbinformation case 3 icon = 48 case 4 icon = vbquestion end select msgbox wscript.arguments(0), icon, wscript.arguments(2) end sub sub help wscript.echo "Uso:" wscript.echo "Cscript /nologo msg.vbs [Mensaje] [Tipo] [Titulo]" wscript.echo "[Mensaje]: Prompt para el cuadro de dialogo" wscript.echo "[Tipo]: Tipo de icono " wscript.echo "0 - Sin icono" wscript.echo "1 - Error" wscript.echo "2 - Informacion" wscript.echo "3 - Advertencia" wscript.echo "4 - Pregunta" wscript.echo "Para pasar un argumento, el argumento anterior debe ser declarado," wscript.echo "por ejemplo, si se pone un icono y se omite el Mensaje" wscript.echo "el mensaje sera la opcion ingresada para el icono" wscript.echo "" end sub
Luego lo llamas así en tu batch o si kieres desde la cmd: cscript /nologo <ruta_del_archivo>.vbs <argumento_1> <argumento_2> <argumento_3>
Concatenas la variable en batch o cmd como dije anteriormente y se lo pasas como el segundo argumento al script.vbs Ahora ¿como concatenar saltos de línea en batch? ni idea , pero algo es algo Saludos PD1: Puedes consular el uso con cscript /nologo script.vbs /? PD2: Este tipo de cosas (y muchas más) aprendes con el manual de vbs de novlucker.
|
|
|
87
|
Informática / Software / [Pedido] Vbsedit portable
|
en: 13 Abril 2011, 22:18 pm
|
Hola, he estado buscando y no he podido encontrar este programa, al menos no en su forma portable, si alguien me puede dar un link le estaría muy agradecido, sino es posible vbsedit cualquier "IDE" para vbs portable me sirve. De antemano gracias Saludos
|
|
|
88
|
Programación / Java / Re: [Arreglos] "Array required but int found"
|
en: 13 Abril 2011, 22:10 pm
|
Nop, el resto no da problemas, pero ya me dijeron en otro foro, loque pasa es que dentro del método inicié una variable local de tipo int llamada "c", entonces se blokea el scope del array global del mismo nombre, XD, bueno, gracias de todos modos. Saludos
|
|
|
89
|
Programación / Java / [Arreglos] "Array required but int found" [RESUELTO]
|
en: 12 Abril 2011, 22:59 pm
|
Hola, tengo un problema con lo siguiente: Instancié tres arreglos de la siguiente forma: int[] a = new int[9]; int[] b = new int[9]; int[] c = new int[9]; creé tres índices para los arreglos de la siguiente forma: int ia = 0, ib = 0, ic = 0; El problema es que si en c[ic] guardo un valor el compilador me suelta "Array required but int found " , no se que estoy haciendo mal, les dejo el código, de antemano gracias por sus respuestas Saludos import javax.swing.*; public class clase{ boolean ctp; int[][] vec = new int[3][3]; int[] a = new int[9]; int[] b = new int[9]; int[] c = new int[9]; int ia = 0, ib = 0, ic = 0; public clase(int ctrl){ switch(ctrl){ case 1: sub_principal(); break; case 2: sub_numeros(); break; case 3: sub_arreglos(); break; case 4: break; } } public static void Main (String[] args ){ } void sub_principal(){ ctp=true; while(ctp){ int m = Integer. parseInt(JOptionPane. showInputDialog(null, "1- Ingresar una frase para contar sus caracteres \n\n 2- Ingresar un Nombre para mostrar en minúsculas o mayúsculas \n\n 3- Volver \n\n 4- Salir")); switch(m){ case 1: JOptionPane. showMessageDialog(null, "La frase tiene " + frase. length() + " caracteres"); break; case 2: JOptionPane. showMessageDialog(null, nombre. toUpperCase()); break; case 3: ctp=false; break; case 4: new clase(4); break; } new clase(1); } } void sub_numeros(){ ctp=true; while(ctp){ int s = Integer. parseInt(JOptionPane. showInputDialog(null, "1- Ver si el numero es primo \n\n 2- Ver si el numero es perfecto \n\n 3- Calcular MCM entre dos numeros \n\n 4- Volver 5- Salir")); switch(s){ case 1: if (esPrimo(op)){ }else{ JOptionPane. showMessageDialog(null, s + "No es primo"); } break; case 2: if (esPerfecto(s)){ JOptionPane. showMessageDialog(null, s + "Es perfecto"); }else{ JOptionPane. showMessageDialog(null, s + "No es perfecto"); } break; case 3: JOptionPane. showMessageDialog(null, "Aun no implementada XD"); break; case 4: ctp=false; break; case 5: new clase(4); break; } new clase(1); } } void sub_arreglos(){ ctp=true; while(ctp){ int in = Integer. parseInt(JOptionPane. showInputDialog(null, "1- Ingresar numeros para la matriz \n\n 2- Volver \n\n 3-Salir")); switch (in){ case 1: int c=1; for (int x=0;x<3;x++){ for (int y=0;y<3;y++){ c++; if(vec[x][y]%2==0){ a[ia] = vec[x][y]; ia++; }else if (vec[x][y]%2!=0){ b[ib] = vec[x][y]; ib++; } if (vec[x][y]<0){ c[ic] = vec[x][y]; ic++; } } } for (int valor:a){ pares += "[" + Integer. toString(valor ) + "]"; } JOptionPane. showMessageDialog(null, "Los numeros pares son \n\n" + pares ); for (int valor:a){ impares += "[" + Integer. toString(valor ) + "]"; } JOptionPane. showMessageDialog(null, "Los numeros impares son \n\n" + impares ); for (int valor:a){ negativos += "[" + Integer. toString(valor ) + "]"; } JOptionPane. showMessageDialog(null, "Los numeros negativos son \n\n" + negativos ); break; case 2: ctp = false; break; case 3: new clase(4); break; } } new clase(1); } boolean esPrimo(int p){ int c; for (int x=p;x>0;x--){ if (p%x==0){ c++; } } if (c==2){ return true; }else{ return false; } } boolean esPerfecto(int p){ int res=0; for(int y=1;y<=p/2;y++){ if (p%y==0){ res = res + y; } } if (res == p) { return true; }else{ return false; } } }
|
|
|
90
|
Programación / Scripting / [VBS] Duda con Excel.application (WXP=W7?)
|
en: 7 Abril 2011, 22:39 pm
|
Hola, tengo el siguiente script, en windows xP me funka bien, en windows 7 se vuelve loko , básicamente crea una planilla de excel para un ciber café, usa excel.application para crear la primera parte de la planilla, y luego copio el resto con wscript.shell.sendkeys, uso tiempos entre las pulsaciones de teclas para que no se me caiga el script (y de paso excel, porque me ha pasado), bueno les dejo el script: set exc=createobject("excel.application") set wss=createobject("wscript.shell") exc.visible = true ' preparando el archivo set ambiente = exc.workbooks.add() wss.sendkeys "+({f11})" wscript.sleep 200 wss.sendkeys "+({f11})" wscript.sleep 200 wss.sendkeys "+({f11})" wscript.sleep 200 wss.sendkeys "+({f11})" wscript.sleep 200 'preparando la hoja PCs set fecha1 = exc.range("B2") fecha1.interior.colorindex = 28 fecha1.formula = "Ingrese fecha" fecha1.borders.colorindex = 1 set fecha2 = exc.range("C2") fecha2.interior.colorindex = 28 fecha2.borders.colorindex = 1 fecha2.formula = "01-01-2012" fecha2.select wss.sendkeys "{f2}" wss.sendkeys "{enter}" set fecha3 = exc.range("C8") fecha3.interior.colorindex = 28 fecha3.borders.colorindex = 1 fecha3.formula = "=C2+1" fecha3.select wss.sendkeys "{f2}" wss.sendkeys "{enter}" set rango1 = exc.range("C10:H10") rango1.interior.colorindex = 1 rango1.font.colorindex = 4 rango1.font.bold = true exc.range("c10").formula = "PC 1" exc.range("d10").formula = "PC 2" exc.range("e10").formula = "PC 3" exc.range("f10").formula = "PC 4" exc.range("g10").formula = "PC 5" exc.range("h10").formula = "PC 6" set rango2 = exc.range("C11:h19") rango2.interior.colorindex = 15 rango2.borders.colorindex = 1 set rangof = exc.range("C20:H20") rangof.interior.colorindex = 28 rangof.borders.colorindex = 1 rangof.select set f1 = exc.range("C20") f1.formula = "=suma(C11:C19)" f1.select wss.sendkeys "{f2}" wss.sendkeys "{enter}" wscript.sleep 666 wss.sendkeys "{up}" wss.sendkeys "^(c)" wss.sendkeys "+({right})" wss.sendkeys "+({right})" wss.sendkeys "+({right})" wss.sendkeys "+({right})" wss.sendkeys "+({right})" wss.sendkeys "{enter}" wscript.sleep 200 set total = exc.range("H22") total.formula = "=suma(C11:H19)" total.select wss.sendkeys "{f2}" wss.sendkeys "{enter}" ' ------------------------- 'copiando el cuadro al resto de la hoja set stotal = exc.range("G22") stotal.formula = "Total" set rango3 = exc.range("C8:H22") rango3.select wss.sendkeys "^(c)" dim control control=1 ' bajar 16 y pegar do for i=1 to 20 step 1 wss.sendkeys "{down}" if control = 32 then exit do end if next wss.sendkeys "^(v)" wscript.sleep 200 control = control + 1 loop exc.columns("B").entirecolumn.autofit ' eso, el resto está listo para pasar a la siguiente hoja for x=8 to 628 step 20 if x>8 then resta= x-20 exc.cells(x, 3).formula = "=C"&resta&"+1" exc.cells(x, 3).select wss.sendkeys "{f2}" wss.sendkeys "{enter}" wscript.sleep 200 end if fecha2.formula = "" next exc.range("C8").formula = "=C2" exc.range("c8").select wss.sendkeys "{f2}" wss.sendkeys "{enter}" '***************************************** '***************************************** ' SEGUNDA HOJA '***************************************** '***************************************** wss.sendkeys "^{pgdn}"
De antemano gracias por sus respuestas Saludos
|
|
|
|
|
|
|