Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   saber ruta al presionar Ctrl +C (https://www.clubdelphi.com/foros/showthread.php?t=81777)

DOS994 17-12-2012 00:17:06

saber ruta al presionar Ctrl +C
 
Hola a todos:

como es que se sabe la ruta al presionar Ctrl +C o Ctrl +V

Gracias de antemano

Casimiro Notevi 17-12-2012 00:24:15

¿La ruta?, ¿qué ruta? :confused:

DOS994 17-12-2012 01:01:39

Me refiero a que cuando se presiona Ctrl +c se guanda la direccion del archivo que acabas de copiar

ecfisa 17-12-2012 01:56:34

Cita:

Empezado por DOS994 (Mensaje 451932)
Me refiero a que cuando se presiona Ctrl +c se guanda la direccion del archivo que acabas de copiar

Hola.

Sigo sin entender lo que estas preguntando... Indudablemente no estas hablando del IDE clásico de Builder C++... [IDE Classic Keyboard Shortcuts]

¿ En donde se desarrolla esa acción de guardar la dirección del archivo ? ¿ Como y mediante qué se está guardando el archivo ? Es decir, ¿ En que parte utilizas esos shortcut (Ctrl+C, Ctrl+V) ?

Explayate todo lo que necesites para explicar claramente la situación, prácticamente no hay límite en el texto a publicar.

Saludos.

DOS994 17-12-2012 04:47:56

Cuando uno copia un archivo en windows presionamos Ctrl + C o le damos copiar. lo que quiero es saber la dirección del archivo al que acabo de darle copiar en mi sistema operativo.
No estoy muy seguro pero creo que debe de existir alguna API de windows para esto.

DOS994 22-12-2012 00:05:11

Como es que el SuperCopier sabe la direccion del archivo al cual se le acaba de dar copiar, esto es un ejemplo de lo que estoy buscando

Casimiro Notevi 22-12-2012 00:13:21

Es que no se entiende lo que quieres hacer. Creo que dices que cuando con windows, ¿con un programa determinado? le des a ctrl+c te devuelve la ruta del archivo.
Pero, ¿qué programa?, ¿qué entorno?, ¿qué condiciones?, ¿cómo va exactamente eso?, explica TODO exactamente porque no podemos leerte la mente.

DOS994 22-12-2012 00:31:15

Cuando se para arriba de un archivo en windows y le damos copiar, esta direccion se debe de almacenar en algun lado, quisiera saber como es que se que puede saber la direccion

Casimiro Notevi 22-12-2012 01:33:56

Cita:

Empezado por DOS994 (Mensaje 452323)
Cuando se para arriba de un archivo en windows y le damos copiar, esta direccion se debe de almacenar en algun lado, quisiera saber como es que se que puede saber la direccion

Sigo sin entender: "Cuando se para arriba de un archivo en windows", ¿arriba de qué? :confused:

Cita:

Empezado por DOS994 [U
esta direccion se debe de almacenar en algun lado

Claro, en el 'clipboard', haz una búsqueda con esa palabra, se ha tratado otras veces en los foros.

DOS994 23-12-2012 01:56:38

Este es un codigo que lo que hace es buscar la direccion al copiar pero esta en Delphi. Por favor como seria en C++.

Código Delphi [-]
procedure LeerArchivosPortapapeles( Lista: TListBox );
var
  HPortapapeles: THandle;  // Handle del portapapeles
  iNumArc, i: Integer;     // Nº de archivos
  Archivo: array [0..MAX_PATH - 1] of char;
begin
  if ClipBoard.HasFormat( CF_HDROP ) then
  begin
    HPortapapeles := ClipBoard.GetAsHandle( CF_HDROP );
    iNumArc := DragQueryFile( HPortapapeles, $FFFFFFFF, nil, 0);
    for i := 0 to iNumArc - 1 do
    begin
      DragQueryFile( HPortapapeles, i, @Archivo, MAX_PATH );
      Lista.Items.Add( Archivo );
    end;

beginner01 23-12-2012 04:32:45

Hola.

Prueba asi.

Código:

#include <Clipbrd.hpp>
Código:

//---------------------------------------------------------------------------
void _fastcall LeerArchivosPortapapeles(TListBox *Lista)
{
  //THandle HPortapapeles; // Handle del portapapeles
  HDROP HPortapapeles;

  int iNumArc; // Nº de archivos

  //: array [0..MAX_PATH - 1] of char;
  wchar_t Archivo[MAX_PATH];
  TClipboard *ClipB = Clipboard();


  if ( ClipB -> HasFormat( CF_HDROP ) )
  {
                  Lista->Clear(); /*Prueba*/

                HPortapapeles = (HDROP)ClipB -> GetAsHandle( CF_HDROP );

                iNumArc = DragQueryFile(HPortapapeles, 0xFFFFFFFF/*$FFFFFFFF*/, NULL, NULL);

                for (int i = 0 ;i < iNumArc; i++)
                {

                  DragQueryFile( HPortapapeles, i, Archivo/*@Archivo*/, MAX_PATH );
                  Lista->Items->Add( Archivo );
                }
  }
}


ecfisa 23-12-2012 22:55:49

Hola.

Otra opción similar pero prescindiendo de la VCL:
Código:

int FilesInClipboard(TListBox *LB)
{
  HDROP hDrop;
  int cch, i, iFile=0;
  char lpszFile[MAX_PATH];

  OpenClipboard(NULL);
  if ((hDrop = GetClipboardData(CF_HDROP))!= NULL) {
    iFile = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, NULL);
    for(i=0; i<iFile; i++) {
      DragQueryFile(hDrop, i, lpszFile, sizeof(lpszFile));
      LB->Items->Add(lpszFile);
    }
  }
  CloseClipboard();
  return iFile;
}

Saludos.


La franja horaria es GMT +2. Ahora son las 07:43:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi