APIs

29/05/2007 - 04:43 por Orfao | Informe spam
Hola... Podria alguien indicarme donde conseguir informacion acerca de las
funciones API.. es decir... Un listado completo de todas las funciones y su
descripcion y/o uso (parametros, propiedades, etc) )para poder implementar
alguna de ellas en VBA excel.
Deseo crear una especie de biblioteca con esas funciones -para por ej.
buscar archivos, abrirlos, editarlos, eliminarlos, moverlos, crear
directorios, aplicar sonidos , identiificar disco duro, usuario, leer DVD,
CD, abrir calculadora, reloj, etc, etc, etc, y/o cualquier cosa que se pueda
hacer desde excel...
MUUUUchas GRACiAS...
Me alimento del conocimiento de todos

Preguntas similare

Leer las respuestas

#6 ST
02/06/2007 - 00:06 | Informe spam
On 1 jun, 02:32, "Héctor Miguel"
wrote:
hola, (...) ?

> navegando por los mares de la web obtuve en esta direccion:http://www.cpearson.com/excel/clipboard.htm
> [ejemplo al final]; el para vaciar el portapapeles de office, hasta ahi todo bien :-)
> al ejecutar el codigo me percato de que efectivamente ya no se puede pegar nada con Ctrl+v; ni con el boton 'pegar' de  excel.
> El problema. -si activo/muestro el portapapeles de Office ahi se puede ver lo que se ha copiado hasta 24 elementos
> mismos que se pueden volver a pegar :-(( y nulificar la macro que maneja las apis para vaciar el portapapeles.
> [ver el ejemplo al final del link citado arriba]
> Mi Intencion. -Eliminar/vaciar el contenido del Portapapeles de Office ya que aunque ejecute la macro para vaciar el portapapeles
> si lo muestro, bastaria con seleccionar cualquiera de los elementos disponibles para pegar nuevamente la informacion    [...]

1) toma en cuenta que estamos hablando de dos 'portapapeles' distintos...
    a) el portapapeles de windows [al que se hace referencia en -todas- las paginas que mencionas]
    b) el portapapeles de office
        b.1) aparece en la version 2000 como 'barra de herramientas'
        b.2) a partir de la version 2002, se 'mueve' al 'panel de tareas'

2) para 'limpiar' los portapapeles [el de windows y el de office]...

    a) el de windows: existen formas menos 'desgastantes' para limpiar su contenido que el uso de las API's    [p.e.]
        una macro con dos 'simples' instrucciones +/- como las siguientes:
          Cells.Find(Empty).Copy
          Application.CutCopyMode = False

    b) el de office, partiendo de la version 2000...

        b.1) siendo una barra de herramientas: -> Application.CommandBars("clipboard")
               - puedes ocultarla, des/re/habilitarla/... [etc. etc. etc.]
               - puedes administrar el control que vacia su contenido [p.e.]
                 -> CommandBars.FindControl(ID:634).Execute
               - puedes evitar que auto-aparezca modificando el registro de windows:
                 -> revisa el siguiente articulo:
                     "... evitar... Portapapeles de Office aparezca... en cualquier programa de Office 2000"
                     http://support.microsoft.com/kb/207438
        -> incluso, puedes intentar cambiando la secuencia del registro: \9.0\ correspondiente a la version 2000
            por otras versiones: \10.0\ [office 2002/xp]    \11.0\ [office 2003]    :))

        b.2) habiendose 'movido' el portapapeles al panel de tareas... no expone su modelo de objetos para VBA    :-((
               lo mas *cercano* que he visto para vaciar su contenido...
               es una propuesta [en frances] que puedes consultar de las siguientes conversaciones:
               -> conversacion 6 de Michael Pierron: ->http://tinyurl.com/2j8y4x

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Hola H.M:

1.-tengo Office 2003
2.-al estar integrado a la barra de tareas no encuentro la manera de
'administrar el 'control' que vacia su contenido
pues mediante codigo solo me arroja un control: MsgBox
Application.CommandBars("Task Pane").Controls.Count
3.-al intentar modificar el Registro de windows me percate que el
valor de tipo REG_DWORD con el nombre 'Acbcontrol', ya existia por lo
que probe cambiando a la inversa es decir en lugar de 1 a
'cero' ,pero nada :-((
4.-copie/pegue la mega-macro de Michael Pierron,ajuste algunas
cosillas por que me marcaba lineas en rojo,como colocar el signo
'igual' para que las variables tomaran su valor,pero a parte de
extensa,escapa amis conocimientos :-((
entre otros problemas se encuentra este trozo de codigo:

GoodVersion = Val(Application.Version) > 9
If Not GoodVersion Then GoTo 1
'Application.CommandBars(1).FindControl(ID:€9, Recursive:True).Execute
Application.CommandBars(1).FindControl(ID:=€9,
Recursive:=True).Execute
Exit Function
1: MsgBox "Votre version de Excel ne supporte pas cette méthode !", 64
End Function

en donde *€9* no esta definido su valor,pues al no ser un numero; VBA
lo toma como variable.

De momento opte por inhabilitar/ocultar el boton de Portapales de
Office,despues de usar tu mega-sencilla macro:
Cells.Find(Empty).Copy
Application.CutCopyMode = False

como dicen muchos 'foristas',culaquier 'cable' se agradece.
Salu2
Respuesta Responder a este mensaje
#7 Héctor Miguel
02/06/2007 - 02:39 | Informe spam
hola, (...) ?

al estar integrado a la barra de tareas no encuentro la manera de 'administrar el 'control' que vacia su contenido
pues mediante codigo solo me arroja un control: MsgBox Application.CommandBars("Task Pane").Controls.Count



1) esta parte esta comentada en el punto anterior, el que dice:
" b.2) habiendose 'movido' el portapapeles al panel de tareas... no expone su modelo de objetos para VBA :-(("

al intentar modificar el Registro de windows me percate que el valor de tipo REG_DWORD con el nombre 'Acbcontrol'
ya existia por lo que probe cambiando a la inversa es decir en lugar de 1 a 'cero' ,pero nada :-((



2) el valor *correcto* debe ser 1-uno [para evitar que se muestre el portapapeles de office de forma *automatica*]
PERO... [al parecer] despues de aplicar el SP2 a windows... ha dejado de funcionar para las versiones 2002 y 2003 :-((
aunque... sigue funcionando para la version 2000 :))

copie/pegue la mega-macro de Michael Pierron, ajuste algunas cosillas por que me marcaba lineas en rojo
como colocar el signo 'igual' para que las variables tomaran su valor, pero aparte de extensa, escapa a mis conocimientos :-((
[...]



3) segun parece, el codigo de MP es *sensible* al idioma Y a las may/min/usculas [o sea]...
habria que 'buscar' el texto EXACTO con que se indica/muestra/... en el boton para vaciar el contenido del portapapeles de office -?-

De momento opte por inhabilitar/ocultar el boton de Portapales de Office, despues de usar tu mega-sencilla macro:
Cells.Find(Empty).Copy
Application.CutCopyMode = False



4) otra alternativa [semi-solucion *momentanea*] pudiera ser +/- como la siguiente pieza de codigo:

Sub Ocultar_Portapapeles()
' cancelamos el portapapeles de windows '
Cells.Find(rmpty).Copy
Application.CutCopyMode = False
' ocultamos el panel de tareas '
Application.CommandBars("task pane").Visible = False
' inhabilitamos los controles que los muestran o alternan '
Application.CommandBars("edit").FindControl(ID:€9).Enabled = False
Application.CommandBars("view").FindControl(ID:W46).Enabled = False
' inhabilitamos tambien su atajo de teclado {Ctrl}+{F1} '
Application.OnKey "^{f1}", ""
End Sub

=> sobra mencionar/comentar/recomendar/sugerir/... que seria conveniente *restablecer* todo lo modificado anterior
[para evitarle contratiempor y *sustos* a otros usuarios, asumiendo que tu libro seria *transportable/compartido/...*] -?-
ADEMAS de que al no funcionar la edicion del registro [SP2] volveria a auto-aparecer [p.e.] al pulsar un doble {ctrl}+C :-((

otra -posible- alternativa ?... revisa la propuesta de keepITcool en la siguiente conversacion: -> http://tinyurl.com/26624e

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida