C/Visual C - ¡HELP! ¡SOS! lcc-win32

 
Vista:

¡HELP! ¡SOS! lcc-win32

Publicado por Negrólder!! (2 intervenciones) el 11/04/2001 05:13:23
Necesito urgente que alguien me diga cómo acceder a una carpeta en un pc remoto para grabar.

Con lcc-win32 pude hacerlo así:

archivo = fopen("//nombre_máquina/carpeta/archivo","w");

la dificultad que tengo ahora es que la carpeta debe estar compartida en la red con contraseña, y no sé cómo pasarle la contraseña al fopen().

Por favor, les agradeceré en el alma que puedan ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Acceso a una carpeta compartida en red con contraseña en C

Publicado por Alejandro (913 intervenciones) el 20/09/2024 17:47:15
Para acceder a una carpeta compartida en red con contraseña en C, puedes utilizar la función `NetUseAdd` de la biblioteca `Netapi32`. Esta función te permite establecer una conexión de red con una carpeta compartida y proporcionar las credenciales necesarias, incluida la contraseña.

Aquí tienes un ejemplo de cómo utilizar `NetUseAdd` para acceder a una carpeta compartida en red con contraseña:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <windows.h>
#include <lm.h>
 
int main() {
    DWORD result;
    USE_INFO_2 useInfo;
    const char* remotePath = "\\\\nombre_maquina\\carpeta";
    const char* username = "nombre_usuario";
    const char* password = "contraseña";
 
    useInfo.ui2_remote = (LPWSTR)remotePath;
    useInfo.ui2_username = (LPWSTR)username;
    useInfo.ui2_password = (LPWSTR)password;
    useInfo.ui2_domainname = NULL;
    useInfo.ui2_asg_type = USE_DISKDEV;
 
    result = NetUseAdd(NULL, 2, (LPBYTE)&useInfo, NULL);
    if (result == NERR_Success) {
        // La conexión se estableció correctamente
        FILE* archivo = fopen("//nombre_maquina/carpeta/archivo", "w");
        if (archivo != NULL) {
            // Realiza las operaciones de escritura en el archivo
            fclose(archivo);
        }
        NetUseDel(NULL, (LPWSTR)remotePath, USE_FORCE);
    } else {
        // Ocurrió un error al establecer la conexión
        printf("Error al establecer la conexión: %d\n", result);
    }
 
    return 0;
}

En este ejemplo, debes reemplazar `"nombre_maquina"` con el nombre del PC remoto, `"carpeta"` con el nombre de la carpeta compartida, `"nombre_usuario"` con el nombre de usuario y `"contraseña"` con la contraseña correspondiente.

Ten en cuenta que debes incluir la biblioteca `Netapi32` y compilar el programa con el flag `-lNetapi32` para enlazar correctamente la función `NetUseAdd`.

Espero que esta información te sea útil. ¡Buena suerte, Negrólder!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar