| |
Mostrar Temas
|
|
Páginas: 1 2 [3] 4 5
|
|
21
|
Programación / Programación C/C++ / [Source] Listando directorios y archivos en C/C++
|
en: 30 Mayo 2007, 15:09 pm
|
Bueno, pues como veo que hay dudas respecto a esto en el foro (y yo necesitaba hacerlo tambien  ) me e decidido a compartir con vosotros un sencillo codigo que lista directorios y carpetas con las apis FindFirstFile y FindNextFile. Espero que os sea util  ACTUALIZADO Y MEJORADO: ////////////////////////////// // Listando directorios y // // carpetas de una ruta // // By E0N // ////////////////////////////// #include <iostream> #include <windows.h> using namespace std; void listarDirectorio(char* dir) { WIN32_FIND_DATA findFileData; HANDLE hFind; strcat (dir,"\\*"); hFind = FindFirstFile(dir, &findFileData); if (hFind == INVALID_HANDLE_VALUE) std::cout << "Ruta incorrecta"; else { std::cout << findFileData.cFileName << '\n'; //El primer fichero // Listamos todos los ficheros restantes while (FindNextFile(hFind, &findFileData) != 0) std::cout << findFileData.cFileName << '\n'; } } void main() { char* dir = new char[MAX_PATH]; cout << "Introduzca el nombre de la ruta a explorar: "; cin >> dir; cout << "\n\n"; listarDirectorio(dir); delete(dir); }
Código viejo: #include <stdio.h> #include <iostream> #include <windows.h>
#define BUFSIZE MAX_PATH
void main() { WIN32_FIND_DATA FindFileData; HANDLE hFind = INVALID_HANDLE_VALUE; LPSTR Dir; Dir = (LPSTR) malloc (BUFSIZE);
std::cout << "Introduzca el nombre de la ruta a explorar: "; std::cin >> Dir; strcat (Dir,"\\*"); //Le añadimos un \* al final de la ruta para que pueda listar los direcrorios bien
hFind = FindFirstFile(Dir, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE) { std::cout << "Ruta incorrecta" << '\a'; } else { std::cout << FindFileData.cFileName << '\n'; //El primer fichero // Listamos todos los ficheros del directorio while (FindNextFile(hFind, &FindFileData) != 0) //Mientras q la funcion q lista el siguiente fichero, es decir //FindNextFile, no nos devuelva nulo... { std::cout << FindFileData.cFileName << '\n'; //...listamos el resto de ficheros y directorios } } free(Dir); }1S4ludo
|
|
|
|
|
23
|
Programación / Programación Visual Basic / Control de los mensajes de Windows
|
en: 27 Abril 2007, 18:12 pm
|
Hola wenas Llevo algun tiempo preguntandome una cosa. Todos conocemos esos programas q controlan remotamente el winamp o ocultan procesos del task mediante el envio de mensajes, y si habeis programado alguna vez una ventana aunke sea en C++ sabreis q windows manda mensajes a nuestra ventanita al hacer click por ej y nosotros podemos usar esto para, por ejemplo maximizar ventanas ajenas a la nuestra, pero, como podemos conocer estos mensajes?? No me refiero a como minimizar una ventana "remotamente" si no a saber q mensaje manda windows al apagarse para cerrar todos los procesos por ejemplo o para cualkier otra cosa??? Alguien lo sabe  1S4ludo
|
|
|
|
|
24
|
Programación / Programación Visual Basic / Bajar scroll text box
|
en: 18 Abril 2007, 17:39 pm
|
Hola Alguien sabe como bajar el scroll (la barra de la derecha) abajo del todo en un text box multiline?? es q si le voy añadiendo cosas al textbox solo se ve la parte de arriba, por eso keria q fuera bajando el scroll segun añado texto.. Alguien sabe? Gracias 
|
|
|
|
|
26
|
Programación / Programación Visual Basic / Subir archivo a ftp sin ocx, duda
|
en: 3 Abril 2007, 01:07 am
|
Hola, buscando por el foro me encontre con este codigo q permite subir y bajar archivos a un ftp sin ocx de NYlOn: EN UN MODULO:Declare Function GetProcessHeap Lib "kernel32" () As Long Declare Function HeapAlloc Lib "kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long Declare Function HeapFree Lib "kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long Public Const HEAP_ZERO_MEMORY = &H8 Public Const HEAP_GENERATE_EXCEPTIONS = &H4
Declare Sub CopyMemory1 Lib "kernel32" Alias "RtlMoveMemory" ( _ hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long) Declare Sub CopyMemory2 Lib "kernel32" Alias "RtlMoveMemory" ( _ hpvDest As Long, hpvSource As Any, ByVal cbCopy As Long)
Public Const MAX_PATH = 260 Public Const NO_ERROR = 0 Public Const FILE_ATTRIBUTE_READONLY = &H1 Public Const FILE_ATTRIBUTE_HIDDEN = &H2 Public Const FILE_ATTRIBUTE_SYSTEM = &H4 Public Const FILE_ATTRIBUTE_DIRECTORY = &H10 Public Const FILE_ATTRIBUTE_ARCHIVE = &H20 Public Const FILE_ATTRIBUTE_NORMAL = &H80 Public Const FILE_ATTRIBUTE_TEMPORARY = &H100 Public Const FILE_ATTRIBUTE_COMPRESSED = &H800 Public Const FILE_ATTRIBUTE_OFFLINE = &H1000
Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type
Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type
Public Const ERROR_NO_MORE_FILES = 18
Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _ (ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _ (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _ lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long
Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _ (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _ ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _ (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _ (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean ' Initializes an application's use of the Win32 Internet functions Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _ (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _ ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
' User agent constant. Public Const scUserAgent = "vb wininet"
' Use registry access settings. Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Public Const INTERNET_OPEN_TYPE_DIRECT = 1 Public Const INTERNET_OPEN_TYPE_PROXY = 3 Public Const INTERNET_INVALID_PORT_NUMBER = 0
Public Const FTP_TRANSFER_TYPE_BINARY = &H2 Public Const FTP_TRANSFER_TYPE_ASCII = &H1 Public Const INTERNET_FLAG_PASSIVE = &H8000000
' Opens a HTTP session for a given site. Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _ (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _ ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _ ByVal lFlags As Long, ByVal lContext As Long) As Long Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003 Public Declare Function InternetGetLastResponseInfo Lib "wininet.dll" Alias "InternetGetLastResponseInfoA" ( _ lpdwError As Long, _ ByVal lpszBuffer As String, _ lpdwBufferLength As Long) As Boolean
' Number of the TCP/IP port on the server to connect to. Public Const INTERNET_DEFAULT_FTP_PORT = 21 Public Const INTERNET_DEFAULT_GOPHER_PORT = 70 Public Const INTERNET_DEFAULT_HTTP_PORT = 80 Public Const INTERNET_DEFAULT_HTTPS_PORT = 443 Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080
Public Const INTERNET_OPTION_CONNECT_TIMEOUT = 2 Public Const INTERNET_OPTION_RECEIVE_TIMEOUT = 6 Public Const INTERNET_OPTION_SEND_TIMEOUT = 5
Public Const INTERNET_OPTION_USERNAME = 28 Public Const INTERNET_OPTION_PASSWORD = 29 Public Const INTERNET_OPTION_PROXY_USERNAME = 43 Public Const INTERNET_OPTION_PROXY_PASSWORD = 44
' Type of service to access. Public Const INTERNET_SERVICE_FTP = 1 Public Const INTERNET_SERVICE_GOPHER = 2 Public Const INTERNET_SERVICE_HTTP = 3
' Opens an HTTP request handle. Public Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" _ (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, _ ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
' Brings the data across the wire even if it locally cached. Public Const INTERNET_FLAG_RELOAD = &H80000000 Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000 Public Const INTERNET_FLAG_MULTIPART = &H200000
Public Const GENERIC_READ = &H80000000 Public Const GENERIC_WRITE = &H40000000
' Sends the specified request to the HTTP server. Public Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal _ hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As _ String, ByVal lOptionalLength As Long) As Integer
' Queries for information about an HTTP request. Public Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" _ (ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, _ ByRef lBufferLength As Long, ByRef lIndex As Long) As Integer
' The possible values for the lInfoLevel parameter include: Public Const HTTP_QUERY_CONTENT_TYPE = 1 Public Const HTTP_QUERY_CONTENT_LENGTH = 5 Public Const HTTP_QUERY_EXPIRES = 10 Public Const HTTP_QUERY_LAST_MODIFIED = 11 Public Const HTTP_QUERY_PRAGMA = 17 Public Const HTTP_QUERY_VERSION = 18 Public Const HTTP_QUERY_STATUS_CODE = 19 Public Const HTTP_QUERY_STATUS_TEXT = 20 Public Const HTTP_QUERY_RAW_HEADERS = 21 Public Const HTTP_QUERY_RAW_HEADERS_CRLF = 22 Public Const HTTP_QUERY_FORWARDED = 30 Public Const HTTP_QUERY_SERVER = 37 Public Const HTTP_QUERY_USER_AGENT = 39 Public Const HTTP_QUERY_SET_COOKIE = 43 Public Const HTTP_QUERY_REQUEST_METHOD = 45 Public Const HTTP_STATUS_DENIED = 401 Public Const HTTP_STATUS_PROXY_AUTH_REQ = 407
' Add this flag to the about flags to get request header. Public Const HTTP_QUERY_FLAG_REQUEST_HEADERS = &H80000000 Public Const HTTP_QUERY_FLAG_NUMBER = &H20000000 ' Reads data from a handle opened by the HttpOpenRequest function. Public Declare Function InternetReadFile Lib "wininet.dll" _ (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _ lNumberOfBytesRead As Long) As Integer
Public Declare Function InternetWriteFile Lib "wininet.dll" _ (ByVal hFile As Long, ByVal sBuffer As String, _ ByVal lNumberOfBytesToRead As Long, _ lNumberOfBytesRead As Long) As Integer
Public Declare Function FtpOpenFile Lib "wininet.dll" Alias _ "FtpOpenFileA" (ByVal hFtpSession As Long, _ ByVal sFileName As String, ByVal lAccess As Long, _ ByVal lFlags As Long, ByVal lContext As Long) As Long Public Declare Function FtpDeleteFile Lib "wininet.dll" _ Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, _ ByVal lpszFileName As String) As Boolean Public Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" _ (ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByVal lBufferLength As Long) As Integer Public Declare Function InternetSetOptionStr Lib "wininet.dll" Alias "InternetSetOptionA" _ (ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer
' Closes a single Internet handle or a subtree of Internet handles. Public Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVal hInet As Long) As Integer
' Queries an Internet option on the specified handle Public Declare Function InternetQueryOption Lib "wininet.dll" Alias "InternetQueryOptionA" _ (ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long) As Integer
' Returns the version number of Wininet.dll. Public Const INTERNET_OPTION_VERSION = 40
' Contains the version number of the DLL that contains the Windows Internet ' functions (Wininet.dll). This structure is used when passing the ' INTERNET_OPTION_VERSION flag to the InternetQueryOption function. Public Type tWinInetDLLVersion lMajorVersion As Long lMinorVersion As Long End Type
' Adds one or more HTTP request headers to the HTTP request handle. Public Declare Function HttpAddRequestHeaders Lib "wininet.dll" Alias "HttpAddRequestHeadersA" _ (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, _ ByVal lModifiers As Long) As Integer
' Flags to modify the semantics of this function. Can be a combination of these values:
' Adds the header only if it does not already exist; otherwise, an error is returned. Public Const HTTP_ADDREQ_FLAG_ADD_IF_NEW = &H10000000
' Adds the header if it does not exist. Used with REPLACE. Public Const HTTP_ADDREQ_FLAG_ADD = &H20000000
' Replaces or removes a header. If the header value is empty and the header is found, ' it is removed. If not empty, the header value is replaced Public Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000 LAS FUNCIONES:Public Function FtpSubir(Servidor As String, Usuario As String, Contraseña As String, ArchLocal As String, ArchRemoto As String) As Boolean Dim hConnection, hOpen As Long hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) hConnection = InternetConnect(hOpen, Servidor, INTERNET_INVALID_PORT_NUMBER, Usuario, Contraseña, INTERNET_SERVICE_FTP, nFlag, 0) vBool = FtpPutFile(hConnection, ArchLocal, ArchRemoto, FTP_TRANSFER_TYPE_BINARY, 0) FtpSubir = vBool InternetCloseHandle hConnection End Function
Public Function FtpBajar(Servidor As String, Usuario As String, Contraseña As String, ArchRemoto As String, ArchLocal As String, EXE As Boolean) As Boolean On Error Resume Next Dim hConnection, hOpen As Long hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) hConnection = InternetConnect(hOpen, Servidor, INTERNET_INVALID_PORT_NUMBER, Usuario, Contraseña, INTERNET_SERVICE_FTP, nFlag, 0) vBool = FtpGetFile(hConnection, ArchRemoto, ArchLocal, False, INTERNET_FLAG_RELOAD, FTP_TRANSFER_TYPE_BINARY, 0) FtpBajar = vBool InternetCloseHandle hConnection If EXE = True Then ShellExecute Me.hWnd, "", ArchLocal, "", "", 0 End Function La cuestion: Al usar la funcion de subida, siempre me tira error... Private Sub Command1_Click() MsgBox FtpSubir("ftp://ftp.es.geocities.com", "e0n_ftp", "********", "C:\hola.txt", "http://es.geocities.com/e0n_ftp/hola.txt") End Sub Por supuesto es todo correcto menos la contraseña  la cosa es q hago mal?? puede ser el hot, q no sea http://ftp://ftp.es.geocities.com?? si mirais mis imagenes, la de Bob Marley por ejemplo, podeis ver la ruta del ftp y demas... Alguien me puede hechar una mano?? Gracias 
|
|
|
|
|
27
|
Programación / Programación Visual Basic / Lista con iconos de archivos
|
en: 16 Diciembre 2006, 20:41 pm
|
Hola: Bueno estoy intentando hacer un file manager en el q aparezcan los iconos de cada tipo de archivo. Para ello extraigo el icono de el tipo de archivo q me interesa. Este seria un ejemplo: Const DI_MASK = &H1 Const DI_IMAGE = &H2 Const DI_NORMAL = DI_MASK Or DI_IMAGE Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
Private Sub Command1_Click() Dim mIcon As Long mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Autoexec.bat", 2) DrawIconEx Picture1.hdc, 0, 0, mIcon, 0, 0, 0, 0, DI_NORMAL MsgBox "imagen colocada" il.ListImages.Add , "bat", Picture1.Picture lv.ListItems.Add(, , "HOLA", , bat).SubItems(1) = "MUNDO"
DestroyIcon mIcon End Sub Hasta el MsgBox todo me funciona perfecto, pero a partir de ahi no, por q no me deja pasar la imagen del picture al Image List (il en el code), por lo q luego no puedo cargarla en la lista... Alguien sabe como puedo hacerlo???  Otra duda q se me plantea es de donde sacar los iconos, por q podria buscar por el ordenador q usa el cliente, pero se tardaria muho rato buscando y en caso de q un tipo de archivo (imaginemos q el cliente no tiene Acrobat Reader y el server sip) se tiraria muxo tiempo buscando... Hay algun sitio donde se guarden los iconos o hay q andar buscandolos???  Ayuda please!!! 1S4ludo
|
|
|
|
|
30
|
Programación / Programación Visual Basic / Joiner con distintas extensiones
|
en: 27 Octubre 2006, 17:22 pm
|
|
Hola:
El el joiner de ||MadAndrax|| vi q se podian generar archivos finales (ejecutables) de distintas extensiones. Como se puede hacer esto exactamente, es deir, q genere un bat, un pif o n com, q al hacerle doble click extraiga de si mismo los dos archivos q lleva pegados y los ejecute correctamente??
Yo lo e conseguido hacer con un exe, pero si lo camio de extension no me funcionan....
Alguien puede ayudarme???
1S4ludo
|
|
|
|
|
|
| |
|