Hola les comento encontre este codigo en http://todocporelinv.blogspot.mx/2012/02/c-win32-obtener-el-nombre-de-red-por.html (http://todocporelinv.blogspot.mx/2012/02/c-win32-obtener-el-nombre-de-red-por.html)
Pasa que necesito saber el nombre de red a la que estoy conectado ya sea por cable o inalambrica (SSID), y aprovecho para preguntar ;D ¿como saber la direccion mac de mi "Modem"? ( no del computador).
Para saber el nombre de red, entonces instale Visual C++ pero me manda algunos errores, he agregado la linea
#pragma comment(lib, "mpr.lib")
pero nos e si en realidad la encuentra Visual C++, aca les dejo el codigo de Visaul C++
#include <stdafx.h>
#include <windows.h>
#include <iostream>
#pragma comment(lib, "mpr.lib")
using namespace std;
int main()
{
char Name[255];
char Test[255];
DWORD size=255;
if (WNetGetUser(Test,Name,&size)==NO_ERROR)
{
cout << Name << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Aca les dejo los errores que lanza el Visual C++
Citar1>namered.cpp
1>.\namered.cpp(34) : error C2664: 'WNetGetUserW' : no se puede convertir el parámetro 1 de 'char [255]' a 'LPCWSTR'
1> Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>El registro de compilación se guardó en el "file://c:\Users\v2r3\Documents\Visual Studio 2008\Projects\namered\namered\Debug\BuildLog.htm"
1>namered - 1 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
Pero leyendo en la pagina del autor da indicaciones sobre Code Block entonces lo descargue cree un nuevo proyecto pero al tratar de ingresar el mpr.lib no lo pude encontrar no se si sea posible descargarlo? el codigo es el mismo solo qeu este no me manda ningun error solo aparece en ejecucion esto:
"Proces returned 0 <0x0> execution time:2.99 s"
No se si alguien pueda correrlo y ver como va... espero sugerencias gracias
salu2 ;-)
Si miras el error te pone claramente que tienes un problema de conversión de tipos. El primer parámetro tiene que ser de tipo wchar_t.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385476(v=vs.85).aspx
Saludos.
Busca y comenta #define UNICODE o #define _UNICODE para que trabajes con el formato ANSI y no el UNICODE
* Para que te arroje el resultado de la API debes igualarlas a {}... es decir remover el contenido basura (limpiarlas).
#include <windows.h>
#include <iostream>
#pragma comment(lib, "mpr.lib")
using namespace std;
int main()
{
char Name[255] = {};
char Test[255] = {};
DWORD size = 255;
if (WNetGetUser(Test, Name, &size) == NO_ERROR) {
cout << Name << endl;
}
return EXIT_SUCCESS;
}
Dulces Lunas!¡.
Muchas gracias BlackZeroX
Busque lo que mencionabas pero no tube exito, entonces fui a propiedades del prollecto
juego de caracteres y puse como ninguno, entonces me ha imprimido bien el codigo que has modificado...
Bueno el punto aca es que no me dio la informacion que necesitaba, me da el nombre de mi equipo mas no el nombre de red a al que esta conectado SSID, en C# esto es posible pero el punto esta enque lo necesito realizar con java y bueno pense en JNI es por eso que he utilizado C++...
Aunque si hubiera la posibilidad de utilizar e ejecutable de C# :rolleyes: (BAAAh no lo creo )
Bueno haber si me dan una idea...
Salu2 loKos!!!
De hecho esa API dice claramente que te retorna el nombre de usuario en la RED mas no el SSID de la red...
Dulces Lunas!¡.