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ú

Temas - neo_from_cs_matrix

#1
estoy haciendo un ui en csharp y estoi tratando de poner un barra mas personalizada de titulo. quisiera saber si puedo mover el grupo de botones del sistema, minimizar maximizar y cerrrar, si pueden ser movidos a otra parte del form. como puede hacerse , ya que lo que quiero es hacer una barra personalizada.
#2


estoy trtando de hacer andar una funcion de apagado de pc pero por alguna razon no funciona, lo quiero hacer en vb6 , lo depure con msg box porque no se todavia como depurar con vb (empece hace unos dias XD) y necesito hacer andar esta funcion. se trta de reiniciar la pc cuando apreto un button
mi depuracion me dijo que  el la ejecucion cae en el primer message que dice "UNO" y sale, pero por que si en c anda bien esto?

agradeceria que me solucionen el funcionamiento de esto chicos


Private Sub Command2_Click()

Dim MsgRet As Integer
MsgRet = MsgBox("Desea apagar su pc?", 36, MB_OK)

If MsgRet = 6 Then

    Dim OsInfo As OSVERSIONINFO
    OsInfo.dwOSVersionInfoSize = Len(OSVERSIONINFO)

    If OsInfo.dwPlatformId = VER_PLATFORM_WIN32_NT Then

        Dim hToken As Long
        Dim tkp As TOKEN_PRIVILEGES
       
        If Not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, VarPtr(hToken)) Then
           
            Call MsgBox("UNO", 36, MB_OK)
       
            End
        End If
       
        'Call MsgBox("DOS", 36, MB_OK)
       
       
        Dim tmpLuid As LUID
        Call LookupPrivilegeValue(0, SE_SHUTDOWN_NAME, tmpLuid)
     
        tkp.Privileges(0).vLuid = tmpLuid
        tkp.PrivilegeCount = 1
        tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
       
        Call AdjustTokenPrivileges(hToken, 0, tkp, 0, ByVal 0&, ByVal 0&)

        If Not GetLastError() = ERROR_SUCCESS Then
            End
        End If
       
        'Call MsgBox("TRES", 36, MB_OK)
       
        If ExitWindowsEx(EWX_POWEROFF Or EWX_FORCE, 0) = 0 Then
        End If
    End If
    End
End If

End Sub


#3

en c esto es

AdjustTokenPrivileges(hToken, 0, tkp, 0, (TOKEN_PRIVILEGES) 0, 0)

necesito en vb como hacerlo, osea esta linea es el problema con el parametro 5
Call AdjustTokenPrivileges(hToken, 0, tkp, 0, 0, 0)

:/
#4
este codigo da la edad aproximada, quisiera si me pueden ayudar a hacer qeu este codigo sea perfecto

agradezco su interes


bool esbisiesto(int a)
{
bool bisiesto=false;
    if(a%4==0)
       bisiesto=true;
    if((a%100==0) && (a%400!=0))
        bisiesto=false;
return bisiesto;
}

unsigned int CalcularEdad(Fecha birthdate)
{
int AnioActual, AA, MesActual, MM, DiaActual, DD;
int año, Mes, Dia;

int MonthDays[2][12]  = {
//{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
            //{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 28, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
            {31, 29, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
};
SYSTEMTIME time;
GetLocalTime(&time);
AA=birthdate.getAnyo();
MM=birthdate.getMes();
DD=birthdate.getDya();
AnioActual=time.wYear;
MesActual=time.wMonth;
DiaActual=time.wDay;
año = AA-AnioActual;
if( MesActual <= MM )
{
Mes = MM - MesActual;
}
else
{
Mes = MM+12-MesActual;
año = año -1;
}
if( DiaActual <= DD )
{
Dia = DD - DiaActual;
}
else
{
Dia=DD+MonthDays[esbisiesto(AA)][MM-1]-DiaActual;
Mes = Mes -1;
}
if( Mes < 0 )
{
año = año - 1;
Mes = 12 + Mes;
}
unsigned int Arreglo=año*-1;
//Result = Format('Años: %.0f, Meses: %.0f, Dias: %.0f', [año, Mes, Dia]);
return Arreglo;
}


el codigo fue sacado de u n codigo de visual basic en google y lo modifique pero necesito hacerlo andar bien :|
#5
un programa bascico de una matriz quiero hacer por ejemplo de 5x5 pero no con notasion de indice sino con notasion de puntero,

void f_matriz(int m[][5])
{
}

int main()
{
     int m[5][5];
     f_matriz(m);

    return 0;
}


esa funcion de matriz deberia cargar 5 numeros y mostrarlos pero usando no la de indices, como puedo hacer porque nunca probe esta notasion con matrices
#6
quiero hacer una macro asi, pero no se como hacerla realmente  :-[

#define FOPEN(a,b)

            if(a==1) b=fopen("asd1.dat","ab"); /
            else if(a==2) b=fopen(""asd2.dat,"ab");


el problema es que no se bien las reglas para crear macros asi complejas

necesitaria ayuda  :laugh:

#7
Programación C/C++ / ingreso de texto en GLUT
11 Septiembre 2011, 20:14 PM
hola estoy haciendo un programa de loguin pero ahora he decicido pasarlo a GLUT, usando esta libreria de opengl. el primer problema que encontre es el ingreso de texto, porque cuando lo hago desde modo consola uso obviamente cin.getline para el ingreso de nombre de usuario y constraseña, pero en glut solo se como hacer salidas de texto, pero no entradas, es decir como puedo hacer ... muestro algo de lo que tengo hasta ahora es solo ejemplos de codigo de glut, pero lo que necesito no lo tengo, osea el ingreso de texto.
http://www.daniweb.com/software-development/cpp/threads/366395


void output(int x, int y, char *string)
{
 int len, i;

 glRasterPos2f(x, y);
 len = (int) strlen(string);
 for (i = 0; i < len; i++) {
   glutBitmapCharacter(font, string[i]);
 }
}




MAX_LEN = 20;
#include <conio.h>
void display(void)
{
 glClear(GL_COLOR_BUFFER_BIT);
 output(0, 24, "Welcome to MyProgram");
 output(100, 100, message);
 output(50, 145, "Ingrese nombre de usuario");

 char password[20];
 int count;
 count = 0;
 do
 {
unsigned char input = getch();
unsigned char* ptr;
if(input == 13)
{
break;
}

output(50, 175, "*");

ptr = &input;
password[count] = *ptr;
count++;

 }while(count < MAX_LEN);

 output(50, 200, "Ingrese contrasenia");
 glutSwapBuffers();
}


como se ve luego de que pide el ingreso del nombre, yo trate de hacer que los caracteres ingresados, se pasen a '*' como son los sistemas de loguin.
pero esto colapsa el programa. alguna idea ?



#8
yo se que este tema fue discutido pero todavia no entiendo porque esto que compilamdo bien, no funciona. no se porque el compilador no reconoce mi declaracion


char **mVector = (char**)malloc(sizeof(char)*(filas*columnas));


como si fuera una matriz, mas bien lo reconoce como un vector de vectores,
pero como creo entonces una matriz de  char dinamicamente?


int main(int argc, char *argv[])
{
int filas=7;
int columnas=16;
char **mVector = (char**)malloc(sizeof(char)*(filas*columnas));

      //memset(mVector, 0, sizeof(char)*(filas*columnas));
      for(int r=0;r<7;r++)
for(int s=0; s<16;s++)
mVector[r][s]=0;

for(int rr=0;rr<7;rr++)
for(int ss=0; ss<16;ss++)
cout << mVector[rr][ss]<<endl;//ERROR al leer!!!!!!!!


free(mVector);


       system("pause");
return 0;
}



http://foro.elhacker.net/programacion_cc/martiz_de_char_doble_puntero-t333527.0.html
en mi anterior tema me dijeron que debia reservar memoria primero para los vectores supongamos que son 7 en mi caso, y despues sus longitudes osea 16,
pero me confunde esta forma de hacerlo, no hay una mas directa asi como en el codigo mostrado ?


>>

esto fue solucionado asi pero como ya digo, no se porque debe hacerse asi por partes y no todo junto (osea multiplicando filas por columas lo cual da la dimension).
...  :¬¬



void main()
{
       int filas=7;
int columnas=16;
//char** mVector = (char**)malloc(sizeof(char)*(filas*columnas));
char** mVector = (char**)malloc(sizeof(char*)*(filas*columnas));
for(int read=0;read<filas;read++){
mVector[read] = (char*)malloc(sizeof(char)*columnas);
}

//memset(mVector, 0, sizeof(char)*(filas*columnas));
for(int r=0;r<7;r++)
for(int s=0; s<16;s++)
mVector[r][s]='X';

for(int rr=0;rr<7;rr++)
for(int ss=0; ss<16;ss++)
cout << rr << ":" << ss << "  " << mVector[rr][ss]<<endl;

free(mVector);
system("pause");
}


si alguien fuera amable de decirme porque  :rolleyes:
o por deduccion contraria, que es lo que ahce esto entonces  :huh:


char** mVector = (char**)malloc(sizeof(char)*(filas*columnas));


porque ami forma de apreciarlo esto calcula la dimension total ...

#9
ASM / getch propia para no usar getch de conio
22 Agosto 2011, 01:30 AM
este es un requerimiento, necesito esta funcion getch andando por favor, la parte principal esta en este lenguage que no entiendo, y encima lo debo estudiar ironicamente para mi uni, parecen 3 lineas pero no se que hacen y no anda, me tira error cuando la trato de usar. alguno puede arreglar esta funcion se lo agracederia


unsigned char GETCH(void)
{
unsigned char key;

_asm
{

start:
mov ah,0
int 0x16
cmp al,0
je start ; don't process special keys
mov key,al
}

return key;
}


#10
hola q tal, este ejemplo lo saque de google, es sobre algo que estaba haciendo, estaba tratando de ocultar el ingreso de una clave por medio de convertir lo que se teclea en * (osea hasteriscos)
no compila en codeblocks, pero compila en visual studio. lo que necesito que me ayuden es en la parte de _asm porque es una forma de evitar el uso de getch de conio y usar esamblador  :xD
sino corresponde diganme que muevo el tema a el foro de ASM
lo que pasa que tira error en esa parte


#include <windows.h>
#include <stdio.h>

typedef unsigned char tiny;

tiny GETCH(void);

int main(void)
{
tiny input;
tiny *ptr;
char password[20];
int count;
system("cls"); // too lazy not to cheat here
count = 0;
printf("enter your password: ");
do
{
input = GETCH();
if(input == '\xD') break; // enter pressed?
putc('*', stdout);
ptr = &input;
password[count] = *ptr;
count++;
}while(count < 20);

password[count++] = '\0'; // terminate the string
printf("\nyour password: %s\n", password);

return 0;
}

tiny GETCH(void)
{
tiny key;

_asm
{

start:
mov ah,0
int 0x16
cmp al,0
je start ; don't process special keys
mov key,al
}

return key;
}


#11
estoy en un programa de consola, necesito ingresar usuario y clave, pero quiero que la clave sea con hasteriscos asi *****
no se me ocurre mucho, manipular el cin? eso se me habia ocurrido si pero no se bien como hacerlo, me pueden ayudar a hacerlo .. solo necesito esa parte de la conversion a *, lo del ingreso eso no me referia  :xD
#12
tengo asi:

char** descircion;

dentro de la clase, y en el constructor necesito asignarle las dimensiones a esta matriz charesca. iba a hacerlo con malloc que es coo yo se hacerlo pero me dijeron que sea hecho con new y delete, pero para vector de int sabia como usarlo pero para este caso no. ocea necesitaria un new y un delete para esa matriz de char, si alguno sabe  :rolleyes:
#13
el programa es un ejercicio, se deben dar dos cadenas y se debe comparar y testear cuantas ocurrencias de la segunda cadena dentro de la primera. usando emu8086, que segun tengo entendido es lo msimo que el flat assembler, pero usando ese emu8086. creo un nuevo .com pero lo que necesito saber es mas que nada las interrupciones, entiendo que debo usar la 21 para mostrar en pantalla la cantidad de ocurrencias, pero si necesito detectar entradas de teclado necesitaria int 9, pero en ese punto ya no se com hacerlo, haria un loop de todas los valores posibles o como lo puedo hacer?. no me importaria si no me pueden dar el codigo completo pero mas que nada cuales son las interrucpciones necesarias y como usarlas. es una practica que me dieron pero no se casi naa del tema. solo lo basico osea mov y loops pero no todos, de interruciones eso del vector de teclas me amto  :-\

#14
amigos quisiera saber si este procedimiento es correcto

dado un struct cualquiera

struct fecha
{
   int dia,mes,anyo;
};

void modificar_registro(struct fecha reg, int pos)
{
  FILE* p=fopen("fechas.dat","rb+")
   
  fseek(p, sizeof reg * pos, 0);

  fwrite( &reg, sizeof reg, 1, p);

  fclose(p);
}



int main()
{
      struct fecha vFechas[10];

      // vFechas = X; // se inicialisa de alguna forma, no importa

      // le paso la posicion 5 que es un registro dentro del vector.
      // el registro 5 es el que se supone que se quiera modificar
      modificar_registro(vFechas[5], 5);

     return 0;
}



lo que quiero saber es si la funcion de modificar_registro funcionaria de esa manera?, si esta mal quisiera saber como seria esto

     ;)

#15

estatica
int main()
{
      char mchar[5][30];

      return 0;
}



dinamica
int main()
{
     int filas = 5;
     int columnas = 30;

     char **mchar = (char**)malloc(sizeof(char)*(filas*columnas));

     free(mchar);

      return 0;
}


la matriz de char creada de la s dos formas, pero me dijeron que esta mal la forma dinamica no se hace asi como esta escrito. se hace con malloc pero no asi coom lo expuce. la intension es declarar una mtriz de char pero no sabiendo sus dimensiones, y usando doble puntero y malloc. agredezco la colaboracion



#16

quisiera saber como hacer para poner una matris en cero, pero esta matris se pasa como doble puntero. gracias


void matrizEnCero_int(int **mat, int filas, int columnas)
{
    /*    como se hace    */
}


int matris[2][4];

int main()
{

     matrizEnCero_int((int**)matris, 2, 4);

    for(int f=0;f<2;f++)
for(int g=0;g<4;g++)
cout<<matris[f][g] <<endl;

return 0;
}




#17
Programación C/C++ / se queda colgado el cin
8 Julio 2011, 20:09 PM
estos son los vectores y matrizes que uso, para cada libro debo cargar los datos en la funcion cargarlibro(). el problema es que se queda colgado en un cin que no puedo saber cual de todos. probablemente los que usan char. pero agradeceria la ayuda de alguien que me dijera como hacer la funcion cargarlibro() correctamente para cargar lso datos en los vectores y matrizes correspondientes

const int max_libros = 10;
int libros_ids[max_libros]={-1};
int stock_por_libro[max_libros]={-1};
char titulo_de_libro[max_libros][30]={{"nada"}};
int precio_por_libro[max_libros]={0};
char categoria_de_libro[max_libros][2]={{"X"}};



void CargarLibro()
{
for(int i=0;i<max_libros;i++)
{
               cout << "ingrese id de libro" << endl;

if(libros_ids[i]==-1){

fflush(stdin);
cin.ignore();
cin>>libros_ids[i];//break;

               }

if(strcmpi(titulo_de_libro[i],"nada")==0){

fflush(stdin);
cin.ignore();
cin.getline(titulo_de_libro[i],30,'\n');//break;
               }

if(stock_por_libro[i]==-1){
 
fflush(stdin);
cin.ignore();
cin>>stock_por_libro[i];//break;
               }

if(precio_por_libro[i]==0){

fflush(stdin);
cin.ignore();
cin>>precio_por_libro[i];//break;
               }

if(strcmp(categoria_de_libro[i],"X")==0){

fflush(stdin);
cin.ignore();
cin.getline(categoria_de_libro[i],1,'\n');//break;
               }

               i=99;
}
}