elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Ingeniería Inversa / ¿Cómo abordo esto...? en: 2 Octubre 2012, 20:10 pm
 Espero no estar en el lugar equivocado del foro...

Tengo un juego (Tierras del Sur, Argentum Online), el cual posee una interface gráfica que deseo editar. Al parecer (Muy obvio), está en un archivo (denominado interface.TDS). ¿Cómo empiezo a editarlo? Es decir, ¿cómo se que tipo de archivo es? Básicamente, quiero modificar el aspecto gráfico nada mas. ¿Alguna pista?

EDIT: Nada mas necesito una mínima orientación de como saber "qué es" ese archivo, no pido mas que eso :P Mientras sigo averiguando por otro laditos.
2  Programación / Programación General / Duda sobre íconos... -.-" en: 3 Julio 2012, 00:41 am
 Estoy relojeando MSDN,  y me propuse hacer un cambiador de íconos (Utilizo Python, pero no viene al caso).  Realmente no sé por dónde comenzar a buscar. Es decir, ¿Cómo se cambia el ícono de un archivo cualquiera? ¿Existe alguna API para eso? ¿En qué temas me tengo que informar? No vengo a pedir códigos ni nada (A menos que sea necesario), sólo un poco de orientación para poder ubicarme y comenzar a investigar.
(Estoy en Windows XP, por si interesa)

 Muchas gracias de antemano, y un cordial saludo.
3  Programación / Programación C/C++ / ¿Está bien hecho? (Primer programa) en: 28 Junio 2012, 03:12 am
 Buenas noches. Intenté hacer un pequeeño e inútil programa, el cuál se le da un numero, un rango, un valor de incremento y un valor de decremento, y el dá un resultado. Por ejemplo:

Numero: 10
Rango: 7
Valor decremento: 0.7
Valor incremento: 3

Es decir, mostrará 7 valores anteriores descontando de a 0.7 y 7 valores posteriores incrementando de a 3:

9.3 8.6 7.9 7.2 6.5 5.8 5.1 ... Y por otro lado mostrará 13 16 19 22 25 28 31

 El programa funciona, pero quisiera saber si cometí algún error, o algún detalles, alguna sugerencia o lo que fuere :) Muchas gracias de antemano!

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. using namespace std;
  6. //Prototipos
  7. int Menu_Principal();
  8. //MAIN
  9. int main() {
  10.    Menu_Principal();
  11.    getch();
  12. return 0;
  13. }
  14. //Principal
  15. int Menu_Principal() {
  16.  double Numero, decVal, incVal;
  17.  int Rango, Contador, Opcion;
  18.  Contador = 1;
  19.    cout << "Numero: "; cin >> Numero;
  20.    cout << "Rango: "; cin >> Rango;
  21.    cout << "Decrementar en: "; cin >> decVal;
  22.    cout << "Incrementar en: "; cin >> incVal;
  23.    cout << endl;
  24.        //////////////////////////
  25.        //Anteriores             /
  26.        //////////////////////////
  27.        cout << "ANTERIORES A " << Numero << endl;
  28.        while (Contador <= Rango) {
  29.            cout << Numero - (Contador * decVal) << " ";
  30.            Contador += 1;
  31.        }
  32.        //////////////////////////
  33.        //Posteriores            /
  34.        //////////////////////////
  35.        cout << endl << endl << "POSTERIORES A " << Numero << endl;
  36.        Contador = 1;
  37.        while (Contador <= Rango) {
  38.            cout << Numero + (Contador * incVal) << " ";
  39.            Contador += 1;
  40.        }
  41.    cout << endl << endl;
  42.    cout << "1- Salir" << endl;
  43.    cout << "2- Otro numero" << endl;
  44.    cin >> Opcion;
  45.    if (Opcion == 1) exit(0);
  46.    else Menu_Principal();
  47. return 0;
  48. }
  49.  
4  Programación / Programación C/C++ / El VT de C++ (En un link) - Para agregar al TH... en: 26 Junio 2012, 03:43 am
 Ya lo puse en el posteo del Videotutorial de C++, la cuestión es que a partir del enlace 12 inclusive no funcionan, acá encontré un link de 900mb aprox con todos los capítulos, pero como muchos no van a leer lo que comenté en el otro post, me gustaría pedir si algún mod o algo agregue este enlace o algo. Perdonen que arme un tema para esto, pasa que quizás otros necesitan el VT.

NO SUBÍ YO EL ENLACE, solo lo encontré y tiene todos los caps (Y funciona):

http://www.4shared.com/get/J0bkzFQM/videotutorial_de_c_por_shevche.html;jsessionid=D730E7069290D4E44251E217E65FBFD7.dc323

Mis disculpas de nuevo por la molestia n_n
5  Programación / Scripting / [Python]¿Ejecutar instrucciones al mismo tiempo? en: 1 Octubre 2011, 21:27 pm
 Es posible poder ejecutar diversas instrucciones "al mismo tiempo" en Python? Es decir, tengo programado un "intento de reloj" para consola, y ahora estoy entre 2 cosas:
-Que mientras el usuario vaya ingresando el número de opción,  el reloj siga corriendo a un costado.
 Creo que se llama ejecutar algo en background :P o tengo mal entendido las cosas. :P Es posible hacer esto? :P
6  Programación / Scripting / Verificar argumentos de función[Python] en: 20 Septiembre 2011, 01:46 am
 Tengo una enorme duda, yo tengo el siguiente código:

Código
  1. class Control:
  2.       def __init__(self, *Extra):
  3. [...]
  4.  

¿Cómo se verifica si se le pasó parámetros extra? Yo lo que quiero hacer dentro es que, si se le pasaron parámetros, en base a esos parámetros se hagan algunas cosas, pero para eso necesito verificar si hay algo en la tupla "Extra". Cómo hago eso? u.u Es con "not"? No logro hacerlo :S
7  Programación / Programación General / No entiendo como funciona un cambiador de íconos u.u en: 17 Septiembre 2011, 01:38 am
 Estoy intentando entender como diantres funciona un programa para cambiar los íconos de cualquier archivo jeje. Busqué un source para ver como funciona, y sólo encontré uno en VB (Lenguaje que no manejo), y no logro entender qué es lo que hace. Como que lee un ejecutable o algo así. Realmente no entiendo. ¿Qué debería leer para entenderlo? Porque no se qué "cosa" buscar para leer acerca de esto. O sea, ¿Cómo busco documentación en la que explique como funciona esto? u.u Porque quiero entender como funciona, así me hago mi cambiador de íconos en Python n.n (con las APIs obvio, que tampoco las encuentro xD)

 Gracias de antemano n.n
8  Programación / Scripting / [Python]Mi módulo newbie n.n en: 15 Septiembre 2011, 00:14 am
 [edit] ¿Cómo le pongo color al código?
 Bueno, edito el mismo post. Ya solucioné mis dudas, leí, entendí y estoy haciendo mi módulo (ya hace unos días) con varias funciones raras :P Pienso ponerle muchas cosas, hasta ahora tiene:
-Armado de menúes (Ahora estoy trabando en el armado de menúes con contexto)
-Armado de cajas de texto (con recuadros ASCII Extendidos)
-Marquesina de textos (Textos en movimiento, los cuáles voy a mejorar)
-Manejo de color en consola: Obtener atributs de texto, cambiarlos, etc.
-Obtención de valores: Se puede pasra una lista de cadenas, y devuelve la de menor y mayor longitud, o se puede pasar números y da el mayor y el menor, en una tupla.
-Tiene otros "dos print", ilprint para mostrar un mensaje con otro color, sin cambiar el color de la consola, es decir, cambia solopara mostrar el texto y vuelve a la normalidad y "olprint" que es lo mismo, solo que muestra el texto seguido (equivalente a sys.stdout.write)
-Invertir cadenas
-Muestra mensajes con beepeo :P
Y estoy trabajando en:
Barra de progreso
Inputboxes (Con recuadros ascii)
Animaciones ascii :P
Relojes (TAmbién en ASCII, toda la onda)
Y estoy modificando un programa mío para resolver cosas de matemática, y poderlo aplicar :P
Es una newbiada, y tiene cosas que están de mas, pero es porque forman parte de lo que estoy agregando :P
 tiene un par de variables definidas, como líneas, y cosas así :P Véanlo en el código, después voy a hacer un texto sobre como usarlo :P Es una newbiada total, y espero que algunos sabiondos puedan corregirme n.n Hay cosas que repito ESTÁN DE MAS pero porque van a formar parte de otra cosa que estoy armando :P
Y también puse de dónde aprendí eso :P

Código
  1. # -*- coding: cp1252 -*-
  2. #--------------------------------------------
  3. #Autor: GeSeM (S3KH)   Grisolía Emilio.
  4. # Se permite la modificación, y edición de jazzer. Dejando a la moral de cada uno el hecho de mantener o no los créditos.
  5. #Prohibido distribuirlo compilado SIN el fichero de texto, puesto que es código abierto.
  6. #Programado en Python 2.7.
  7. #--
  8. #Versión 2.0
  9. # Espero, pueda servirles un poco...!
  10. #                                    Septiembre, 2011. Argentina.
  11. #--------------------------------------------
  12.  
  13. print 'Cargando Jazzer...'
  14. print 'Cargando datos... 100%'
  15. ERROR01 = 'Error (Argumento invalido): '
  16. ERROR02 = 'Error (Función inexistente): '
  17. ERROR03 = 'Error (Dato/s invalido/s): '
  18. VAR     = 'VAR'
  19. n       = '-n'
  20. endl    = 'endl'
  21.  
  22.  
  23.  
  24. print 'Cargando (modulos)... 100%'
  25.  
  26.  
  27. #--- MÓDULOS IMPORTADOS ---#
  28.  
  29. import os, time, math, cmath, sys
  30. print 'Cargando ctypes... 100%'
  31. from ctypes import *
  32.  
  33. #-- El uso de ctypes brinda la posibilidad de poder usar las APIs de Windows, entre demás prestaciones de C
  34.  
  35. #------------CONSTANTES (WIN32API)------------------------#
  36.  
  37. print 'Cargando jazzer (GENERIC_READ)... 100%'
  38. #GENERIC_READ
  39.  
  40. STD_INPUT_HANDLE     = -10
  41. STD_OUTPUT_HANDLE    = -11
  42. STD_ERROR_HANDLE     = -12
  43.  
  44. #-- Tipos de dato C
  45. print 'Cargando datos C... 100%'
  46. Short                = c_short
  47. uShort               = c_ushort
  48. Long                 = c_long
  49.  
  50. #-- HWND (GetStdHandle)
  51. print 'Cargando HWND_STD(IO)... 100%'
  52. HWND_StdOut          = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
  53. HWND_StdIn           = windll.kernel32.GetStdHandle(STD_INPUT_HANDLE)
  54.  
  55.  
  56. #------------CONSTANTES (COLORES)--------------------------#
  57. # Dados en formato hexadecimal                             #
  58. #----------------------------------------------------------#
  59. print 'Cargando colores... 100%'
  60. FOREGROUND_BLACK     = 0x0000
  61. FOREGROUND_BLUE      = 0x0001
  62. FOREGROUND_GREEN     = 0x0002
  63. FOREGROUND_CYAN      = 0x0003
  64. FOREGROUND_RED       = 0x0004
  65. FOREGROUND_MAGENTA   = 0x0005
  66. FOREGROUND_YELLOW    = 0x0006
  67. FOREGROUND_GREY      = 0x0007
  68. FOREGROUND_INTENSITY = 0x0008 # Color de texto intensificado
  69. BACKGROUND_BLACK     = 0x0000
  70. BACKGROUND_BLUE      = 0x0010
  71. BACKGROUND_GREEN     = 0x0020
  72. BACKGROUND_CYAN      = 0x0030
  73. BACKGROUND_RED       = 0x0040
  74. BACKGROUND_MAGENTA   = 0x0050
  75. BACKGROUND_YELLOW    = 0x0060
  76. BACKGROUND_GREY      = 0x0070
  77. BACKGROUND_INTENSITY = 0x0080 # Fondo de texto intensificado
  78.  
  79. #-------------------------------------------------------------#
  80.  
  81. #-------- Carácter de emisión de sonido
  82. beep                 = chr(7)
  83.  
  84.  
  85.  
  86.  
  87. #----- CONSTANTES (Gráficas) ----------------------------------#
  88.  
  89. print 'Constantes graficas... 100%'
  90. #----- LÍNEAS (ASCII EXTENDIDO) -----#
  91.  
  92. # Usadas para la construccion de menúes
  93.  
  94. # formato de constante:
  95. # Las constantes de las líneas se componen de un prefijo "l", seguido de una S o una D
  96. # para indicar si es simple(S) o doble(D). Finalmente, un juego de 3 letras indica cuál caracter es:
  97.  
  98. #-- ES(I/D) = Esquina Superior (Izquierda o Derecha)
  99. #-- EI(I/D) = Esquina Inferior (Izquierda o Derecha)
  100. #-- HOR     = HORizontal
  101. #-- VER     = VERtical
  102. #-- CRZ     = CRuZ
  103. #-- T(DI/ID)= "T" (Derecha>Izquierda / Derecha<Izquierda) (Línea "T" que apunta hacia un lado)
  104. #-- LT(B/A) = Línea T (Baja / Alta) (De abajo hacia arriba / De arriba hacia abajo)
  105.  
  106. #----------LÍNEAS DOBLES---------------------------#
  107. lDESI    = chr(201) #-- Esquina superior izquierda
  108. lDESD    = chr(187) #-- Esquina superior derecha
  109. lDEID    = chr(188) #-- Esquina inferior derecha
  110. lDEII    = chr(200) #-- Esquina inferior izquierda
  111.  
  112. lDVER    = chr(186) #-- Línea doble vertical
  113. lDHOR    = chr(205) #-- Linea doble horizontal
  114.  
  115. lDLTA    = chr(203) #-- Línea "T" (Arriba)
  116. lDLTB    = chr(202) #-- Línea "T" (Abajo)
  117. lDTID    = chr(185) #-- Línea "T" (Izquierda>Derecha)
  118. lDTDI    = chr(204) #-- Línea "T" (Derecha>Izquierda)
  119.  
  120. lDCRZ    = chr(206) #-- Linea doble "cruz"
  121.  
  122. #----------LÍNEAS SIMPLES---------------------------#
  123. lSEII    = chr(192) #-- Esquina inferior izquierda
  124. lSESI    = chr(218) #-- Esquina superior izquierda
  125. lSESD    = chr(191) #-- Esquina superior derecha
  126. lSEID    = chr(217) #-- Esquina inferior derecha
  127.  
  128. lSVER    = chr(179) #-- Línea vertical
  129. lSHOR    = chr(196) #-- Línea horizontal
  130.  
  131. lSTID    = chr(195) #-- Línea "T" (Izquierda>Derecha)
  132. lSLTB    = chr(193) #-- Línea "T" (abajo)
  133. lSLTA    = chr(194) #-- Línea "T" (arriba)
  134. lSTDI    = chr(180) #-- Linea "T" (Derecha>Izquierda)
  135.  
  136. lSCRZ    = chr(197) #-- Línea "cruz"
  137.  
  138.  
  139. #----------------GRÁFICOS---------------------------#
  140. # Carácteres que son usados para rellenar espacios
  141. # o gráficos, animaciones, etc
  142. #----------------------------------------------------#
  143.  
  144. fill_1           = chr(176) #-- Menos saturado
  145. fill_2           = chr(177)
  146. fill_3           = chr(178)
  147. fill_4           = chr(219) #-- Mas saturado
  148. #--
  149. fill_5           = chr(220)
  150. fill_6           = chr(221)
  151. fill_7           = chr(222)
  152. fill_8           = chr(223)
  153. blank            = ' '
  154. P                = '.'
  155. D1, D2           = '<', '>'
  156. line             = chr(10)
  157.  
  158. print 'Secuencias (animaciones)... 100%'
  159. #---------SECUENCIAS--------------------------------#
  160. # Las animaciones son secuencias de carácteres
  161. # que mostrados (respetando dicha secuencia)
  162. # generan "imágenes" en movimiento.
  163. # Se almacenan en listas, para ser impresas
  164. # siguiendo el orden en ellas.
  165. #----------------------------------------------------#
  166.  
  167. ANIM01           = [P, P*2, P*3]                    #Secuencia de 3 puntos suspensivos
  168. ANIM02           = [D1, D1*2, D1*3]                 #Secuencia con los direccionales (<)
  169. ANIM03           = [D2, D2*2, D2*3]                 #Secuencia con los direccionales (>)
  170. ANIM04           = [fill_1, fill_2, fill_3, fill_4] #Secuencia con carácteres de relleno
  171. ANIM05           = ['\\', lSVER*2, '/', lSHOR*2]    #Secuencia de barra giratoria
  172. ANIM06           = [blank, D1]                      #Prompt titilante
  173.  
  174.  
  175.  
  176. print 'Cargando controles... 100%'
  177. #----------CONSTANTES DE CONTROLES------------------#
  178. # Hay disponibles los siguientes "controles":
  179. # Cajas de aviso
  180. # Cajas de ingreso de datos
  181. # Relojes (Numeración romana, occidenta (Analógica / Digital)
  182. # Barras separadoras
  183. #---------------------------------------------------#
  184. # Próximamente (Barras de progreso, animaciones ASCII)
  185. # Y mas...!
  186.  
  187.  
  188. #--CAJAS DE TEXTO (Marco doble) (Argumentos)
  189.  
  190. DBox  = 'DBox'
  191. DDBox = 'DDBox'
  192. DIBox = 'DIBox'
  193. D1Box = 'D1Box'
  194. D2Box = 'D2Box'
  195.  
  196.  
  197. #--CAJAS DE TEXTO (Marco simple) (Argumentos)
  198.  
  199. SBox  = 'SBox'
  200. SDBox = 'SDBox'
  201. SIBox = 'SIBox'
  202. S1Box = 'S1Box'
  203. S2Box = 'S2Box'
  204.  
  205. #Lista de cajas
  206.  
  207. Boxes = [DBox, DDBox, DIBox, D1Box, D2Box, SBox, SDBox, SIBox, S1Box, S2Box]
  208.  
  209. #------------- Relojes ----------------------#
  210. CLOCK_OCC   = 'CLOCK_OCC'
  211. CLOCK_ROM   = 'CLOCK_ROM'
  212.  
  213. DIGITAL   = 'DIGITAL'
  214. ANALOGIC = 'ANALOGIC'
  215.  
  216. FORM12    = 'FORM12'    #Formato de 12horas
  217. FORM24    = 'FORM24'    #Formato de 24horas
  218.  
  219. sContext = 'sRecuadro' #Sin recuadro
  220. Context1 = 'Recuadro1' #Recuadro rectangular o cuadrado
  221. Context2 = 'Recuadro2' #Recuadro circular o redondeado
  222.  
  223. NUM_OCC12 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
  224. NUM_OCC24 = NUM_OCC12
  225. iN = 13
  226. while (iN <= 24):
  227.    NUM_OCC24.append(iN)
  228.    iN += 1
  229.  
  230.  
  231. NUM_ROM  = {1:'I',
  232.            2:'II',
  233.            3:'III',
  234.            4:'IV',
  235.            5:'V',
  236.            6:'VI',
  237.            7:'VII',
  238.            8:'VIII',
  239.            9:'IX',
  240.            10:'X',
  241.            11:'XI',
  242.            12:'XII'
  243.            }
  244.  
  245.  
  246.  
  247. #---------------------------------------------#
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254. print 'Cargando estructuras C... 100%'
  255. #-------------------------------------------------------------------------------------#
  256.  
  257. #--ESTRUCTURAS C------------------------------#
  258. # Las estructuras C son utilizadas
  259. # junto con ctypes para poder invocar funciones
  260. # del sistema operativo, que necesiten apuntar
  261. # a estructuras de datos
  262. #-----------------------------------
  263. # Visitar MSDN y documentación de Python para mas información.
  264.  
  265. #----------------------Console (ScreenBufferInfo)
  266.  
  267. class COORD(Structure):           #-- Estructura para coordenadas.
  268.        _fields_ =[
  269.                ('X', Short),
  270.                ('Y', Short)
  271.                  ]
  272.  
  273. class SMALL_RECT(Structure):       #-- Estructura para posiciones.
  274.        _fields_ =[
  275.                ('Left', Short),
  276.                ('Top', Short),
  277.                ('Right', Short),
  278.                ('Bottom',Short)
  279.                  ]
  280.  
  281. class CONSOLE_SCREEN_BUFFER_INFO(Structure):
  282.        _fields_ =[
  283.                ('dwSize', COORD),
  284.                ('dwCursorPosition', COORD),
  285.                ('wAttributes', uShort),
  286.                ('srWindow', SMALL_RECT),
  287.                ('dwMaximumWindowSize', COORD)
  288.                  ]
  289.  
  290.  
  291. print 'Cargando funciones... (Misc)'
  292. #--- Reversión de una cadena
  293. #--- (Argumento = Cadena)
  294. def strReverse(String):
  295.        reversedString = ''
  296.        reverseIndex  = -1
  297.        abs_maxCount  = abs(len(String))
  298.        while (abs(reverseIndex) <= abs_maxCount):
  299.            reversedString = reversedString + String[reverseIndex]
  300.            reverseIndex -= 1
  301.        return reversedString
  302.  
  303. #--- Obtención de cadena de mayor y menor longitud, o número mas grande y mas chico
  304. #--- Devuelve una tupla, siendo elemento 0 el mayor y 1 el menor.
  305. #--- Los arugmentos son: 'str', 'num', para indicar si se trabaja con una cadena o números.
  306. #--- Traspasar cualquier cantidad de cadenas/números
  307. def GetValues(valueType, *Values):
  308.        valTypes = ('str', 'num');
  309.        if not (valueType in valTypes): return ERROR01+valueType;  
  310.        if (valueType==valTypes[0]):
  311.                maxStr, minStr = '', '';
  312.                lenValues      = len(Values);
  313.                Count          = 0;
  314.                maxCount       = (lenValues - 1);
  315.                while (Count < maxCount):
  316.                        if (len(Values[Count]) > len(Values[Count+1])):
  317.                                maxStr=Values[Count];
  318.                                minStr=Values[Count+1];
  319.                        elif (len(Values[Count]) < len(Values[Count+1])):
  320.                                maxStr=Values[Count+1];
  321.                                minStr=Values[Count];
  322.                        Count += 1;
  323.                return maxStr, minStr;
  324.        elif (valueType==valTypes[1]):
  325.                tmpMenor = 0
  326.                tmpMayor = 0
  327.                longitudValores    =len(Valores)
  328.                Contador           = 0
  329.                maxContador        = (longitudValores-1)
  330.                while (Contador < maxContador):
  331.                        if (Valores[Contador] >= Valores[Contador+1]):
  332.                                tmpMayor = Valores[Contador]
  333.                                tmpMenor = Valores[Contador+1]    
  334.                        elif (Valores[Contador] <= Valores[Contador+1]):
  335.                                tmpMayor = Valores[Contador+1]
  336.                                tmpMenor = Valores[Contador]
  337.                        Contador += 1
  338.                return tmpMayor, tmpMenor
  339.  
  340.  
  341. print 'Cargando funciones (WINAPI32)...100%'
  342. #------------------------------FUNCIONES---------------------------------#
  343.  
  344. #--- Manejo de consola (Color e información)
  345. #--- No necesita argumentos, devuelve el color de consola.
  346. def GetConsoleColor():
  347.        GConsoleScreenBufferInfo = CONSOLE_SCREEN_BUFFER_INFO()
  348.        windll.kernel32.GetConsoleScreenBufferInfo(HWND_StdOut, byref(GConsoleScreenBufferInfo))
  349.        return hex(GConsoleScreenBufferInfo.wAttributes)
  350. #--- Argumento = Color
  351. def SetConsoleColor(Color):
  352.        bool = windll.kernel32.SetConsoleTextAttribute(HWND_StdOut, Color)
  353.        return bool
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360. #-------------------------------------------------------------------------#
  361.  
  362.  
  363. print 'Cargando funciones de cálculo lineal... 100%'
  364. class Lineal:
  365. # Cálculo líneal
  366.    def __init__(self, a, b, c):
  367.        self.a = a
  368.        self.b = b
  369.        self.c = c
  370. # Obtención de discriminante
  371.    def Discriminante(self):
  372.        Discriminante = self.b*self.b -4*self.a*self.c
  373.        return Discriminante
  374. # Obtención de raices (Soporte para raices en campo complejo)  
  375.    def raices(self):
  376.        Discriminante = self.b*self.b -4*self.a*self.c
  377.        if (Discriminante < 0):
  378.                real = -self.b/(2*self.a)
  379.                imag = math.sqrt (-Discriminante)/(2*self.a)
  380.                return 'Im', 'X1', real, imag, 'X2', real, imag
  381.        elif (Discriminante > 0):
  382.                X1 = (-self.b + math.sqrt (Discriminante))/(2*self.a)
  383.                X2 = (-self.b - math.sqrt (Discriminante))/(2*self.a)
  384.                return '2', X1, X2
  385.        elif (Discriminante == 0):
  386.                X = -self.b/(2*self.a)
  387.                return '1', X
  388.  
  389.  
  390. #-----------Draws--------------------------------------------------------#
  391. def pchar(char): sys.stdout.write(char);
  392.  
  393. def iprint(Color, jline, *iText):
  394.        def tpchar(Text):
  395.            for item in Text: pchar(str(item));
  396.        if (Color != n):
  397.            prevColor = hex(GetConsoleColor());
  398.            SetConsoleColor(Color);
  399.        Count     = 0;
  400.        fText     = [];
  401.        for item in iText:fText.append(str(item));
  402.        for item in fText:tpchar(str(item));
  403.        if (Color != n):
  404.            SetConsoleColor(prevColor);
  405.        if (jline == endl):
  406.            print line
  407.  
  408. class Draw:
  409.        def __init__(self, *Args):
  410.            self.Args = Args   #-- En construcción
  411.  
  412. #----------CONTROLES------------------------------------------------------#
  413.  
  414.  
  415. print 'Cargando controles... 100%'
  416.  
  417.  
  418.  
  419.  
  420. class Control:
  421.        def __init__(self, *Options):
  422.                if not (Options):
  423.                    pass;
  424.  
  425.                lnOptions = len(Options)
  426.                #-- En construcción
  427.  
  428.  
  429.  
  430.  
  431.  
  432.        def Box(self, Color, Sound, Stop, Text, box):
  433.                if not (box in Boxes):
  434.                        x = Control()
  435.                        Control.sbox(x, 0xC, 0, 1, 'Error <box inválido>', DBox)
  436.                lenLDH  = lDHOR*len(Text)
  437.                txtLn   = lDVER+Text+lDVER
  438.                prevColor = GetColor()
  439.                SetConsoleColor(Color)
  440.                #-- Verificación argumento caja --#
  441.                if (box == DBox):
  442.                        print lDESI+lenLDH+lDESD+line+txtLn+line+lDEII+lenLDH+lDEID
  443.                        SetConsoleColor(prevColor)
  444.                        if (Sound == 1): sys.stdout.write(chr(7))
  445.                        if (Stop == 1): raw_input()
  446.                elif (box == DDBox):
  447.                        print lDESI+lenLDH+lDLTA+line+txtLn+line+lDEII+lenLDH+lDLTB
  448.                        SetConsoleColor(prevColor)
  449.                        if (Sound == 1): sys.stdout.write(chr(7))
  450.                        if (Stop == 1): raw_input()
  451.                elif (box == DIBox):
  452.                        print lDLTA+lenLDH+lDESD+line+txtLn+line+lDLTB+lenLDH+lDEID
  453.                        SetConsoleColor(prevColor)
  454.                        if (Sound == 1): sys.stdout.write(chr(7))
  455.                        if (Stop == 1): raw_input()
  456.                elif (box == D1Box):
  457.                        print lDHOR+lenLDH+lDHOR+line+Texto+line+lDHOR+lenLDH+lDHOR
  458.                        SetConsoleColor(prevColor)
  459.                        if (Sound == 1): sys.stdout.write(chr(7))
  460.                        if (Stop == 1): raw_input()
  461.                elif (box == D2Box):
  462.                        print lDVER+(blank*len(Texto))+lDVER+line+lDVER+Texto+lDVER+line+lDVER+(blank*len(Texto))+lDVER;
  463.                        SetConsoleColor(prevColor);
  464.                        if (Sound == 1): sys.stdout.write(chr(7));
  465.                        if (Stop == 1): raw_input();
  466.  
9  Sistemas Operativos / Windows / Duda con APIs en: 12 Septiembre 2011, 21:31 pm
 Qué tal gente? Espero me puedan ayudar, lo agradecería de corazón.

 ¿Existe alguna función de Windows que me permita obtener los atributos de consola, como el color de texto y fondo? Se de "SetConsoleTextAttributes", y otras para obtener atributos de fuente, pero no da el color.
 
 Desde ya, agradecería mucho cualquiera ayuda :)

Un abrazo.
10  Programación / Programación General / Función para conseguir los atributos de texto de consola? (Windows) :( en: 12 Septiembre 2011, 15:10 pm
 Gente, programando en Python estoy usando las APIs para hacer un par de cosilias, y me veo con la necesidad de guardar los atributos del texto de la consola (Color y fondo). Usé SetConsoleTextAttribute para cambiar el color, pero yo desearía saber si hay alguna función que me devuelva esos atributos, para poder restaurarlos luego. La razón por la cuál no lo pongo en scripting es que esto es mas general, porque necesito saber una función que se ocupe de esto. Pensé que habría algo como GetConsoleTextAttribute, pero no :P No hay :P Si alguien me pudiera aunque sea decir el nombre, yo lo demás lo puedo buscar u.u Un abrazo gente, y gracias de antemano u.u

No es de Python la duda. Sólo busco la función (Lo cuál sería válido hasta para C, ASM etc)
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines