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 - cassiani

#781
Citarlo he probado y me dice que hay un error, que no coinciden los tipos 'Environ'
Pues algo debes de estar haciendo mal, porque el code esta perfecto.

Edit: uhm... :rolleyes: Bueno... tal vez esto os de otra idea para lo que quieres hacer:
http://foro.noticias3d.com/vbulletin/showthread.php?t=206800

#782
¡Hola phantom! no se si ya habéis solucionado tu problema, de todas formas igual aporto algo que tal vez os ayude ahora o mas adelante: 

}while(letra!='E' || letra !='p' || letra!='C');
En esta línea de tu code tienes un error lógico debido a que le estas diciendo que se repita mientras se cumpla UNA de las tres condiciones y deberían ser las TRES para que sea efectivo, en ese sentido deberíais cambiar el '||' por '&&', además basta con usar un solo ciclo.

Tu code modificado quedaría así:
int main ()
{
char letra='o';
int repetir;
do
{
clrscr();
printf("introduzca la letra de identificador E-Empleado, C-Cliente, P-Producto\n");
scanf("%c",&letra);
}while(letra!='E' && letra !='P' && letra!='C');

printf("Letra --> %c",letra);
getch();
}


Acá otra forma de hacer lo mismo:
#include <stdio.h>
#include<conio.h>
char Letra;
int main()
{
Repetir:;
clrscr();
printf("introduzca la letra de identificador E-Empleado, C-Cliente, P-Producto\n");
scanf("%c",&Letra);
        if ((Letra!='P') && (Letra!='C') && (Letra!='E'))
{
printf("\n\n­lee antes de introducir el caracter! ­os dije C, P o E!");
getchar();getchar();
goto Repetir;//Repetir mientras no sea correcta la entrada
}
        clrscr();
printf("La letra de entrada es %c",Letra);
getchar();getchar();
}


Espero que aun os pueda servir, ¡S4lu2!
#783
 Postea el code y desde alli se vera en que se te puede ayudar...

¡S4lu2!
#784
Citarusando GetAsyncKeyState y kasperky detecta esto como un posible keylogger

Pero has probado usar el GetAsyncKeyState dentro de un timer, porque yo hago justamente eso e incluso otras funciones típicas de troyanos que habían sido detectadas en otras rutinas, una vez colocadas en un timer dejan de ser detectadas por algún AV. o por ejemplo, ¡en mi caso ha sido así!

¡S4lu2!
#785
Citaren este momento el problema que tengo es que me lo muestra todo como mensaje no me lo pone como titulo en el titulo mensaje en el mensaje i tipo en el tipo de mensaje

uhm... ¿pero leístes lo que te postie anteriormente? menuda...

Te explicare un poco mejor:

Código (vb) [Seleccionar]
MsgBox Text1.text & " ," & Text3.text & "," & Text2.text
Esto no sirve para lo que quered, ¿recuerdas lo que os dije sobre esto?
CitarLe estas pasando el tipo al MsgBox como cadena, esto el vb no lo entiende
¡Básicamente es eso! "NO le estas pasando el tipo al MsgBox, ni como cadena, ni como nada"sino que estas concatenando el mensaje...

Concatenación: Es la operación por la cual dos caracteres se unen para formar una cadena de caracteres (o string). También se puede concatenar dos cadenas de caracteres o un carácter con una cadena para formar una cadena de mayor tamaño.

Eso es lo que estas haciendo, en este sentido nunca pasaras el "tipo de mensaje" con la forma que usas.

Como te dije en el mensaje anterior, puedes seguir enviando el tipo de mensaje como lo haces 
Código (vb) [Seleccionar]
msg & "eltipodemensaje"
Eso esta bien, pero cuando llegue a tu servidor, debes separar lo que llegue en dos y almacenarlo en variables diferentes, para luego filtrarlo y la pases al MsgBox.

Podes hacerlo como te dijo BlaKore_Alpha, en su último mensaje o usar (recomendado)
el ejemplo de Select Case que te deje anteriormente...

Pd: De todas, te tocara separar la cadena en dos (2), porque el ejemplo que te dejo BlaKore_Alpha no servirá por si solo, ya que envias el tipo como una cadena "por concatenación" Form1.ws.SendData ("msgc" & sign & " + " & lol)
   
Edito: ¡Claro! te digo que la separes en dos, porque ya la habias separado previamente de "msgc" antes de enviarla al Text2 de tu servidor (eso es lo que haces).

¡S4lu2! espero haber sido un poco mas claro, sino, podes preguntar nuevamente...


#786
Cita de: Chefito en 22 Enero 2008, 20:20 PM
Jajajaja....como sigamos asi, veo que hacemos el programa entero  :P

Ja, ja, parece que si... ¡que locura!  :xD
#787
 ¡Sin dejar escapar algo!  :rolleyes: tratando imprevistos...

Private Sub CmdGuardar_Click()
On Error Resume Next
Dim Resp As String
    With CommonDialog1
        .CancelError = True 'Esto hará que VB devuelva un error al pulsar Cancelar
        .FileName = "Nuevo Imagen de mapa de bits"
        .Filter = "Archivos BMP|*.bmp|Archivos JPG|*.bmp|Todos|*.*"
        .ShowSave
        'Si no se ha producido ningún error, es que NO se ha pulsado Cancelar
        If Err.Number = 0 Then
            If .FileName <> "" Then
                If ExisteArchivo(.FileName) Then
                    If MsgBox("El archivo ya existe," & vbCrLf & _
                    "¿desea sobreescribirlo?" _
                    , vbQuestion + vbYesNo) = vbYes Then _
                    SavePicture Picture1.Image, .FileName
                Else
                    SavePicture Picture1.Image, .FileName
                End If
            End If
        End If
    End With
    '-------------------------->> Control de Errores <<------------------------------
    'Es buena costumbre volver a ponerlo a cero... así dejamos de detectar errores
    Err = 0 'cancelamos el error/ 0 es que no hay error
    On Local Error GoTo 0 'sirve si queremos dejar de detectar errores
End Sub

Public Function ExisteArchivo(Archivo As String) As Boolean
On Error Resume Next
    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
End Function


¡S4lu2!
#788
Cita de: Chefito en 21 Enero 2008, 23:22 PM
Un pequeño aporte para cuando canceles o cierres el cuadro de dialogo no se grabe la imagen:
Private Sub CmdGuardar_Click()
    With CommonDialog1
         .DialogTitle = "Guardar el archivo"
         .Filter = "Archivos BMP|*.bmp|Archivos JPG|*.bmp|Todos|*.*"
         .ShowSave
         If .FileName = "" Then
            MsgBox "No se especificó ningún nombre", vbCritical
         End If
         If not(.CancelError) then SavePicture Picture1.Image, .FileName
    End With
End Sub

Private Sub Form_Load()
    Picture1.AutoRedraw = True
End Sub

En ese sentido, para que sea completamente correcto seria necesario agregarle:
.CancelError = True
porque de la manera actual, entra en el siguiente bloque, canceles o no...
If not(.CancelError) then SavePicture Picture1.Image, .FileName

Por otro lado:
Citarah y como se si ese pixel ya tiene algun color...
Aunque ya la respondieron correctamente, os dejo un ejemplo sencillo, podes trabajarlo con los valores hexadecimales que devuelve:
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Ejemplo... ;-]
    Me.Cls
    Me.BackColor = Picture1.Point(X, Y)
    Me.Caption = "Valor hexadecimal del color: " & Hex(Me.BackColor)
End Sub


Creo que eso es todo... ¡S4lu2! y suerte en lo que haces... :o

#789
CitarC@ss¡@n¡... la programa q yo me referia es otro...

¡Ups! en ese caso mirad esto:

Private Sub CmdGuardar_Click()
    With CommonDialog1
         .DialogTitle = "Guardar el archivo"
         .Filter = "Archivos BMP|*.bmp|Archivos JPG|*.bmp|Todos|*.*"
         .ShowSave
         If .FileName = "" Then
            MsgBox "No se especificó ningún nombre", vbCritical
         End If
         Picture1.Picture = Picture1.Image
         SavePicture Picture1, .FileName
    End With
End Sub

Private Sub Form_Load()
    Picture1.AutoRedraw = True
End Sub


Implementa eso a tu proyecto y seguro que funciona, no olvides el AutoRedraw del PictureBox a True es fundamental.

Bueno... ¡S4lu2!
#790
 Nunca he trabajado con algo así pero viéndolo por encima ¿porque no capturarlo como hicisteis en el evento load y actualizarlo?
Private Sub menuGuardar_Click()
    foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
    foto.Quality = 100
    foto.SampleScreen
    If ExisteArchivo("c:\Salvado.jpg") = True Then _
    Kill "c:\Salvado.jpg" 'Necesario eliminarlo, sino no salva :-[
    foto.SaveFile ("c:\Salvado.jpg")
    'Lo vuelvo a cargar, para verificar que guardo, ¡pero no es necesario!
    Picture1.Picture = LoadPicture("c:\salvado.jpg")
End Sub

Private Sub menuSalir_Click()
    Unload Me
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 2 Then 'Si se presiono el boton derecho del mouse
        PopupMenu Menu
       
        'Esquema del menu
        '---------------------------
        'Menu --> Menu
            'Guardar --> menuGuardar
            'Salir --> menuSalir
        '---------------------------
    End If
End Sub

'Esta es la función más sencilla para detectar la existencia de un archivo
Public Function ExisteArchivo(Archivo As String) As Boolean
    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
    'Devolverá false, si Dir$ no encuentra el archivo especificado
End Function


Con un PopupMenu con las opciones guardar y salir, lo demás es... ¡claro! se podria ahorrar código creando una rutina para la captura de pantalla, y así llamarla cada vez que se necesite, en el load y en guardar como es este el caso ¡por ejemplo!. Por el momento no os puedo seguir ayudando por falta de tiempo, después pruebo lo demás y si lo deseáis os sigo ayudando.

Pd: tambien seria necesario usar commondialog para guardar, y así no sustituir siempre la captura anterior.

¡S4lu2!