PONER UN ICONO

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

PONER UN ICONO

Mensaje por yasmany »

HOLA A TODOS!
Como ago para poner icono a un boton, pero q no sea de un dll, q sea de un png o ico

Código: Seleccionar todo

GUICtrlCreateButton("mi botón de dibujo", 10, 20, 40, 40, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 22)
por si acaso como puedo obteber de un listado d mensajes donde me muestra las unidades disponibles en un como

Código: Seleccionar todo

$var = DriveGetDrive( "all" )
If NOT @error Then
    MsgBox(4096,"", "Encontrado " & $var[0] & " Unidades")
    For $i = 1 to $var[0]
        MsgBox(4096,"Unidad " & $i, $var[$i])
    Next
EndIf
y si se puede obtener ..digamos q ya lo obtengo en el combo ahora quisiera q cuando presiono un boton me diga ha seleccionado la unidad c

por ejemplo

[combo c:]seleccioné la c [boton mensaje] hago clic y me diga ha seleccionado la unidad c:

Si no es mucho pedir desde ya muchas gracias..y si lo es criticadme pero en buena forma
Salu2 a to2
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: PONER UN ICONO

Mensaje por Chefito »

Primero decirte que intentes colgar tus post en el subforo adecuado. Nos ahorras el tener que cambiarlo y logramos un foro más limpio y ordenado.
yasmany escribió:HOLA A TODOS!Como ago para poner icono a un boton, pero q no sea de un dll, q sea de un png o icoCódigo: Seleccionar todoGUICtrlCreateButton("mi botón de dibujo", 10, 20, 40, 40, $BS_ICON)    GUICtrlSetImage(-1, "shell32.dll", 22)
Debes de poner el path y nombre del archivo en vez de el de la dll de imágenes. Ejemplo: GUICtrlSetImage(-1, "c:\imagenes\miimagen.ico")
Que yo sepa no acepta formatos de imágenes png. Debes poner imágenes ico. Pero no hay ningún problema con eso, ya que hay multitud de programas para convertir las imágenes de un formato a otro.
yasmany escribió:por si acaso como puedo obteber de un listado d mensajes donde me muestra las unidades disponibles en un comoCódigo: Seleccionar todo$var = DriveGetDrive( "all" )If NOT @error Then    MsgBox(4096,"", "Encontrado " & $var[0] & " Unidades")    For $i = 1 to $var[0]        MsgBox(4096,"Unidad " & $i, $var[$i])    NextEndIfy si se puede obtener ..digamos q ya lo obtengo en el combo ahora quisiera q cuando presiono un boton me diga ha seleccionado la unidad cpor ejemplo[combo c:]seleccioné la c [boton mensaje] hago clic y me diga ha seleccionado la unidad c: Si no es mucho pedir desde ya muchas gracias..y si lo es criticadme pero en buena forma
Para introducir información en un combo (y casi cualquier otro control), utiliza la función GUICtrlSetData. Debes introducirla en el for....next, que coja la información de $var[$i] y listo. Mira en la ayuda.
Para que te detecte el click en un combo y recoja el item de ese combo, se hace como cualquier otro control. Dentro del bucle while 1.....wend, se recoge los mensajes de estos controles con GUIGetMsg(), y por ejemplo, con un switch, se mira que control ha enviado este mensaje para que, en tu caso, muestre un mensaje que te diga que has seleccionado una determinada unidad. Te recomiendo que para los mensajes mires por ejemplo, en la ayuda la función GUICtrlCreateButton. Con un combo se hace igual que cuando pulsas un botón. Y para recuperar el item seleccionado utiliza guictrlread.

Intenta hacer algo de código. No nos vale eso de pegar solamente los ejemplos de la ayuda (por lo menos a mí).
Espero que con estas indicaciones ya inicies algo.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
chekok
Hacker del Foro
Mensajes: 111
Registrado: 16 Sep 2011, 11:50
Ubicación: Valencia / España
Contactar:

Re: PONER UN ICONO

Mensaje por chekok »

Lo del icono está explicado en la ayuda perfectamente lo cual ni me molesto en comentar, con respecto a lo del combo con las unidades de disco ocurre lo mismo, está en la ayuda.

Yo te animo a que antes de preguntar por algo leas un poco, ya que lo que pides es algo básico que no requiere explicación ninguna.

De todas maneras, por si tu problema es que no tienes ni idea de como comenzar a programar con un lenguaje, está claro que además de la ayuda debes ver código fuente para poder entender mejor lo que se te explica.

El código sería este, ejecútalo y verás el resultado:

Código: Seleccionar todo

;Ejemplo de código. By Chekok.2011

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

$Form1 = GUICreate("Seleccionar unidad", 228, 130, 247, 181)
$Combo1 = GUICtrlCreateCombo("Seleccione una unidad", 16, 24, 193, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL,$CBS_UPPERCASE))
$Boton1 = GUICtrlCreateButton("Seleccionar", 72, 64, 75, 25)
GUISetState(@SW_SHOW)

_GUICtrlComboBox_AddDir($Combo1, "", $DDL_DRIVES, False)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Boton1
			Click_boton()
		EndSwitch
WEnd

Func Click_boton()
	$unidad = GUICtrlRead ($Combo1)
	If $unidad = "Seleccione una unidad" Then
		MsgBox(48,"Atención", " Debe de seleccionar una unidad por favor!")
	Else
		MsgBox(64,"Unidad seleccionada", "Usted ha seleccionado la unidad" & " " & $unidad)
	EndIf
EndFunc
Aunque insisto, lee más, estimulará tu inteligencia.
La vida es larga y dura.
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: PONER UN ICONO

Mensaje por yasmany »

HOLA A TODOS ! :smt006
Ximorro - Chefito - Basicos - Chekok y el resto de esta tribu
Espero q me sigan ayudando...
Bueno chefito como siempre hablandomE :smt017 PERO esta bien :smt001 creo q es algo insoportable de mi parte ggg agradesco tus respuestas pues me han ayudado un chance... bueno por lo q soy principiante...ya quisiera estar utilizando cosas avanzadas como vosotros dentro de autoit.
Me agrada de la forma q explicas..algo entiendo siquiera....ahora AYUDADME eso de ubicar en el subforo adecuado..es q casi no lo se, podés indicarme.

Ximorro tienes una buena forma de ayudar...(algo como q eres paciente si no me equivoco) te felicito aunque no los conosco os FELICITO a todos los q han tomado su preciado tiempo a responder mis basicas preguntas para vosotros esto es una tonteria ....pero bueno

Bassicos gracias por los aportes q me brindas aunq asido 1 o 2 pero vale

:smt026 CHEEEEEKOk MUCHAS GRACIAS has realizado lo q pensaba q nadie me iba apegar una manito...
bueno
Lo q quiero es mostrarles lo q he hecho...es sobre proteger carpetas digamos de una carpeta pasa a ser una papelera..pero viendo lo q dice Ximorro mejor hice q sea una carpeta normal ...OSEA q si la vas abrir esta no se Ba abrir debes quitar el camuflage.. CON EL MISMO PROGRAMA bueno aqui va el code

BIEN DETALLADO POR SI A ALGUIEN LE SIRVE (asi quisiera q me ayuden pero no :smt023 HACIENDOLO sinoque explicando q hace cada codiguito como lo indico)
entonces LOS Q VEAN YA DAN IDEA de como se hace Y LA IMAGINACION le vuela
lo q hace mi programa es
- Camufla la carpeta (por si no hay resultados luego de haber camuflado cambien de nombre de lo camuflado o agreguen una letra para observar)
- Evita ser eliminada
-Evita ser copiada

ha por cierto lo del icono hay le ponen cualquier icono YO UTILIZABA EL ICONO folder.ico de w7

Código: Seleccionar todo

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=folder.ico
#AutoIt3Wrapper_outfile=PrivateFolder.exe
#AutoIt3Wrapper_Res_Description=Private folder YASMANY CURIMILMA
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Yasmany Curimilma
#AutoIt3Wrapper_Res_Language=1034
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3> ;udf para permitir icono a un boton
GUICreate("Private folder", 450, 160)

;~ $btnsal = ("Salir", 280,80,80,30)
 $btnseleccionar = GUICtrlCreateButton("", 410,22, 37,37,$BS_ICON); para hacer esto se debe poner un udf
GUICtrlSetImage(-1, "shell32.dll", 23) ;ubico un icono tomado del shell32
  GUICtrlSetTip(-1, "Seleccionar carpeta")

$btnaplicar = GUICtrlCreateButton("Aplicar", 360,80, 80,30,$BS_ICON)
GUICtrlSetImage(-1, "shell32.dll", -145) ;ubico un icono tomado del shell32
GUICtrlSetTip(-1, "Proteger carpeta")

$btnquitar = GUICtrlCreateButton("Quitar", 280,80,80,30)
GUICtrlSetTip(-1, "Quitar proteccion")

$encabezado = GUICtrlCreateLabel("Ubique la direccion", 10, 10, 450, 21,0)
$desk="\Desktop.ini"
$texto_1=GUICtrlCreateInput("", 10, 30, 400,26,0)
$file = FileOpen("test.txt", 0)

$lbldireccion = GUICtrlCreateLabel("E-mail [email protected]", 5, 138, 270, 17)
;~ $lblLicencia = GUICtrlCreateLabel("E-mail [email protected]", 5, 120, 270, 17)
GUICtrlSetFont(-1, 8, 800, 0, "arial") ;tipo de letra
GUICtrlSetState(-1, $GUI_DISABLE) ; en forma desactivada

GUISetState(@SW_SHOW);Muestra una ventana previamente oculta (por defecto)
ControlFocus ("","",$texto_1); ubico el foco

While 1
  Switch GUIGetMsg()
      Case $btnseleccionar
         $var = FileSelectFolder("Seleccione una carpeta.","",1)


		 GUICtrlSetData($texto_1, $var) ; establesco el valor de FileSelectFolder en el  input ($texto_1)

		 Case $btnaplicar

$ubicacion =  GUICtrlRead($texto_1) ; leo el contenido del Input

If FileExists($ubicacion) Then ; si la direccion existe aplico los cambios


	; Demuestra la creación de una nueva sección usando una cadena como estrada.

		$valores = "CLSID={9DBD2C50-62AD-11D0-B806-00C04FD706EC}"& @LF & "LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-0000"
		IniWriteSection($ubicacion & $desk, ".ShellClassInfo", $valores)
		DirCreate("\\.\" & $ubicacion & "\nul")
		FileSetAttrib($ubicacion & $desk, "+rash") ;establesco el atributo al archivo ini
		FileSetAttrib($ubicacion, "+raS") ;establesco el atributo a la carpeta
        EnvUpdate(); refresca el entorno
		DirRemove("\\.\" & $ubicacion & "\nul")
		DirCreate("\\.\" & $ubicacion & "\nul")
		FileChangeDir(@WindowsDir)

Else
    MsgBox(48, "Aviso", "El directorio no existe o no es una carpeta",2) ;48=icono de exclamacion y 2 = 2segundos
EndIf



	Case $btnquitar
		$ubicacion =  GUICtrlRead($texto_1) ; leo denuevo el contenido del Input
		If FileExists($ubicacion) Then ; si la direccion existe aplico los cambios
				FileSetAttrib($ubicacion, "-ras") ;retiro el atributo a la carpeta
	    DirRemove("\\.\" & $ubicacion & "\nul")

Else
    MsgBox(48, "Aviso", "El directorio no existe o no es una carpeta",2);48=icono de exclamacion y 2 = 2segundos
EndIf

;~ Case $btnsal
;~ GUISetState(@exitCode)
	 Case $GUI_EVENT_CLOSE
         ExitLoop
   EndSwitch
WEnd
CHEEEKOK Y DEMAS CARNALES....podes ayudarme diciendo como es eso de funciones q muy agradecido estoy por vosotros
CHEKOK pegame otra ayudadita puedes explicar cada codiguito q pusiste en lo q te pedia... diciendome ¿el por q de las funciones ?
y para q sirve cada cosita...O ALGUIEN AYUDEME DE ESA FORMA

aaaa COMO HAGO ...DIGAMOS SIQUIERO COMPILAR CON UNOS 3 ARCHIVOS WAV ..osea q en el ejecutable ya contenga los wav
por cierto estoy desarrollando otro programita por eso es las consultas fuera de lo q les presento
TAMBIEN PIENSO PONERLE PARA UBICAR UNA CONTRASEÑA en la carpeta ya lo iré desarrollando luego
:smt039 NO SE OLVIDEN AYUDARME DE LA FORMA Q LES DIGO Y PODERME EXPLICAR EL CODIGO Q ME BRINDO CHEKOK
Zalu2 :smt023
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: PONER UN ICONO

Mensaje por Ximorro »

¿Ves como es mala idea poner títulos inadecuados a las entradas?
Estaba buscando este post donde ponías el código para ocultar carpetas, ¿y cómo se llama el post para ocultar carpetas? pues "Poner un icono" ¡Me ha costado lo mío encontrarlo!

chekok, eres más duro que yo con lo de la ayuda :smt003
Pero sí, hay que leer la ayuda, y la de AutoIT es muy buena ¡con ejemplos para todas las funciones!

De nada yasmany, y sí, seguiremos ayudando, pero recuerda que en este foro se ayuda a los que se ayudan, vaya, que hay que currárselo un poquito. :smt023

Ya me miraré el programa un poco, aunque me da miedo ejecutarlo. ¿Es seguro? ¿lo has testeado bien?
Así raro veo que abres un archivo Test.txt que no cierras ni usas, pero igual lo he visto mal.
Y lo que no entiendo es eso de "\\.\" que pones para manejar la carpeta ¿¿eso es una carpeta válida??
Si selecciono por ejemplo D:\temp, crea (y luego borra y vuelve a crear, otra cosa que no entiendo) la "carpeta" \\.\D:\temp\nul ¿eso funciona?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: PONER UN ICONO

Mensaje por yasmany »

hola carnales :smt006
CLARO Q FUNCA mi code y eso "\\.\" es para permitir crear carpetas q normalmente no se pueden crear............. LA CARPETA "NUL" Y OTRAS COMO "CON" jamas podras crear en windows solo mediante esas 3 lineas con el punto intermedio HABRA COMO utiliza mi code es 100% seguro COMO TE DECIA LO TENIA EN CMD Y me decidi pasarlo a AUTOIT

pROBADLO ES BUENO hare unas mejoras aumentaré opciones y otras cosas mas

OIGAN COMO AGO ESO DE PONER UN ICONO EN EL BOTON (eso ya lo se..pero con dll ) Y AL FRENTE DEL icono letras ayudadme Y SI TALVES SE PUEDE PONER IMAGENES PNG
HA POR CIERTO COMO HAGO PARA COMPILAR Y DENTRO DE ESTO CONTENGA LOS ARCHIVOS WAV Q QUIERO Q SE ESCUCHEN.

zalu2 :smt039
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: PONER UN ICONO

Mensaje por Ximorro »

Pero no lo entiendo ¿por qué creas un directorio para, después de cambiar los atributos, seguidamente borrarlo y VOLVER a crearlo?

Y además, CON y NUL no se pueden crear, son archivos especiales para el Shell DOS, el primero hace referencia a la consola y el segundo es un dispositivo nulo que acepta entrada pero no da salida... De la misma manera había archivos especiales para los puertos paralelos (impresoras) LPT, y los serie COM, estos últimos igual ya no son accesibles directamente desde Windows, no lo sé. Pero desde luego no tiene sentido crearlos, se usan redireccionando flujos de datos.

Si traduzco esas líneas a CMD, por ejemplo si he seleccionado D:\temp como carpeta haces:

Código: Seleccionar todo

md \\.\D:\temp\nul
attrib +R +A +S +H D:\temp\Desktop.ini
attrib +R +A +S D:\temp
rm \\.\D:\temp\nul   <-- ¿borras lo que acababas de crear?
md \\.\D:\temp\nul  <-- y lo vuelves a crear ¿para qué se hace esto?
Y no entiendo cómo funciona lo del "\\.\"
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: PONER UN ICONO

Mensaje por yasmany »

HOla de nuevo
Como te decia anteriormente sirve para crear carpetas q no permite el SO
\\.\d:\carpeta\nul
\\.\d:\carpeta\con
LAS CARPETAS q se acaban de crear evitan q eliminen o copien el contenido de la carpeta de donde se encuentra pero siempre y cuando hayas convertido a tu carpeta en especial COMO PAPELERA, EQUIPO, RED u cualquier otra cosa
o puedes crear esa carpeta dentro de una memoria Y ASI EVITARA Q TE LA FORMATEEN

HA POR CIERTO el code tengo aun q arreglarlo... aunque FUNCIONA :smt023 bien pero no he tenido tiempo estos ultimos dias

:smt039 OIGAN NO SE OLVIDEN DE AYUDARME EN LO Q DECIA ANTERIORMENTE
ZALU2
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Responder