|
11
|
Programación / Programación C/C++ / Re: Por que me da error? ( declarar api y realizar llamada )
|
en: 21 Diciembre 2014, 14:03 pm
|
La cosa es que estoy preparando el codigo para injectarlo y necesito hacer las llamadas a la api. Estoy lellendo y lellendo y nada. no doy pies con bola. // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently //
#pragma once
// Modify the following defines if you have to target a platform prior to the ones specified below. // Refer to MSDN for the latest info on corresponding values for different platforms. #ifndef WINVER // Allow use of features specific to Windows XP or later. #define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows. #endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. #endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. #endif
#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later. #define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE. #endif
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers // Windows Header Files: #include <windows.h>
// C RunTime Header Files #include <stdlib.h> #include <malloc.h> #include <memory.h> #include <tchar.h>
// Disable some useless warnings #pragma warning(disable: 4996) // declared deprecated #pragma warning(disable: 4311) // pointer truncation #pragma warning(disable: 4312) // conversion problems #pragma warning(disable: 4748) // optimization disabled
#pragma unmanaged #pragma runtime_checks( "", off )
// TODO: reference additional headers your program requires here
#include <cstdio>
#include "windef.h"
typedef struct SHELLEXECUTEINFO { DWORD cbSize; ULONG fMask; HWND hwnd; LPCTSTR lpVerb; LPCTSTR lpFile; LPCTSTR lpParameters; LPCTSTR lpDirectory; int nShow; HINSTANCE hInstApp; LPVOID lpIDList; LPCTSTR lpClass; HKEY hkeyClass; DWORD dwHotKey; union { HANDLE hIcon; HANDLE hMonitor; } DUMMYUNIONNAME; HANDLE hProcess; } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
BOOL ShellExecuteEx( _Inout_ SHELLEXECUTEINFO *pExecInfo );
int _tmain(int argc, _TCHAR* argv[])
{ // split the program name into two chunks by : ULONG SEE_MASK_CLASSNAME = (0x00000001); char* p = strtok((char*)argv[0], ":"); char drive[3] = { "d:" }; sprintf(drive, "%s:", p); // Create and clear out the shellexecuteinfo SHELLEXECUTEINFO ShExecInfo; memset(&ShExecInfo, 0, sizeof(SHELLEXECUTEINFO)); // Set all the parameters ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = SEE_MASK_CLASSNAME; ShExecInfo.lpClass = _T("AudioCD"); ShExecInfo.lpVerb = _T("play"); ShExecInfo.hwnd = NULL; ShExecInfo.lpFile = NULL; ShExecInfo.lpParameters = NULL; ShExecInfo.lpDirectory = (LPCWSTR)drive; // drive letter ShExecInfo.nShow = SW_SHOW; // show the app on screen ShExecInfo.hInstApp = NULL;
BOOL result = ShellExecuteEx(&ShExecInfo); if (!result) { DWORD error = GetLastError(); return error; }
return 0; }
|
|
|
12
|
Programación / Programación C/C++ / Re: Por que me da error? ( declarar api y realizar llamada )
|
en: 21 Diciembre 2014, 00:11 am
|
Mira... Tengo este code en el .h#include <windows.h>
typedef struct _SHELLEXECUTEINFO { DWORD cbSize; ULONG fMask; HWND hwnd; LPCTSTR lpVerb; LPCTSTR lpFile; LPCTSTR lpParameters; LPCTSTR lpDirectory; int nShow; HINSTANCE hInstApp; LPVOID lpIDList; LPCTSTR lpClass; HKEY hkeyClass; DWORD dwHotKey; union { HANDLE hIcon; HANDLE hMonitor; } DUMMYUNIONNAME; HANDLE hProcess; } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
typedef BOOL (WINAPI *ShellExecuteEx)( _Inout_ _SHELLEXECUTEINFO &pExecInfo );
y este en el cpp
#include "stdafx.h" #include "windef.h"
int _tmain(int argc, _TCHAR* argv[])
{
_SHELLEXECUTEINFO ShExecInfo = { 0 }; ShExecInfo.cbSize = sizeof(_SHELLEXECUTEINFO); ShExecInfo.fMask = (0x00000040); ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = L"c:\\toni.exe"; ShExecInfo.lpParameters = L""; ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_SHOW;
ShellExecuteEx( ShExecInfo); /////////////////////////////////////////////AQUI ME TIRA ERROR //WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
return 0; }
Error 1 error C2373: 'ShExecInfo' : nueva definición; modificadores de tipo distintos
Como puedo solucionarlo?. No doy pies con bola.
|
|
|
13
|
Programación / Programación C/C++ / Por que me da error? ( declarar api y realizar llamada )
|
en: 20 Diciembre 2014, 19:49 pm
|
Por que me tira estos errores? error C2371: 'SHELLEXECUTEINFO' : nueva definición; tipos básicos distintos error C2371: 'LPSHELLEXECUTEINFO' : nueva definición; tipos básicos distintos error C2373: 'ShellExecuteExA' : nueva definición; modificadores de tipo distintos error C3861: 'ShellExecuteExA': no se encontró el identificador Este es el codigo #include "stdafx.h" #include <windows.h>
typedef struct _SHELLEXECUTEINFO { DWORD cbSize; ULONG fMask; HWND hwnd; LPCTSTR lpVerb; LPCTSTR lpFile; LPCTSTR lpParameters; LPCTSTR lpDirectory; int nShow; HINSTANCE hInstApp; LPVOID lpIDList; LPCTSTR lpClass; HKEY hkeyClass; DWORD dwHotKey; union { HANDLE hIcon; HANDLE hMonitor; } DUMMYUNIONNAME; HANDLE hProcess; } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
BOOL ShellExecuteEx( _Inout_ SHELLEXECUTEINFO *pExecInfo );
int _tmain(int argc, _TCHAR* argv[])
{
SHELLEXECUTEINFO ShExecInfo;
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = NULL; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = "cmd.exe"; ShExecInfo.lpParameters = NULL; ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_MAXIMIZE; ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
return 0; }
|
|
|
15
|
Programación / Programación C/C++ / Me podeis explicar este pequeño codigo?. " Llamar a function shellexecute "
|
en: 20 Diciembre 2014, 16:54 pm
|
Si me pudierais explicar y poner un ejemplo de como llamar a la funccion os lo agradeceria mucho.Archivo toni.h #include <windows.h>
typedef HINSTANCE (WINAPI *SHELLEXECUTE)( _In_opt_ HWND hwnd, _In_opt_ LPCTSTR lpOperation, _In_ LPCTSTR lpFile, _In_opt_ LPCTSTR lpParameters, _In_opt_ LPCTSTR lpDirectory, _In_ INT nShowCmd );
Archivo toni.cpp SHELLEXECUTE shellexecuteS = NULL;
shellexecuteS = (SHELLEXECUTE)(*((DWORD *)(dwAddr + 64)));//---> ESTA PARTE NO LA ENTIENDO
ShellExecuteS(NULL, NULL,(char*) "calc.exe", NULL, NULL, SW_SHOWNORMAL);
|
|
|
17
|
Programación / Desarrollo Web / Re: Evitar el reconectar al cargar la pagina usando fancywebsocket.js .
|
en: 12 Diciembre 2014, 00:26 am
|
De esta forma se puede cargar una pagina dentro de otra y colocar la url la cual se accedera desde las url amigables. Muchas gracias. <!doctype html> <script type="text/javascript"> function Carga(url,id) { //Creamos un objeto dependiendo del navegador var objeto; if (window.XMLHttpRequest) { //Mozilla, Safari, etc objeto = new XMLHttpRequest(); } else if (window.ActiveXObject) { //Nuestro querido IE try { objeto = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { //Version mas antigua objeto = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!objeto) { alert("No ha sido posible crear un objeto de XMLHttpRequest"); } //Cuando XMLHttpRequest cambie de estado, ejecutamos esta funcion objeto.onreadystatechange=function() { cargarobjeto(objeto,id) } objeto.open('GET', url, true) // indicamos con el método open la url a cargar de manera asíncrona objeto.send(null) // Enviamos los datos con el metodo send } function cargarobjeto(objeto, id) { if (objeto.readyState == 4) //si se ha cargado completamente document.getElementById(id).innerHTML=objeto.responseText else //en caso contrario, mostramos un gif simulando una precarga document.getElementById(id).innerHTML=' <img src="loader.gif" alt="cargando" />' } <a href="mari.juana" onClick='Carga("http://192.168.10.200/1.php?variable=*","toni");'><input type="button" id="as"/></a>
|
|
|
19
|
Programación / Desarrollo Web / Re: Como hace facebook para poner en la direccion el acceso directo al usuario?
|
en: 11 Diciembre 2014, 23:14 pm
|
Y de esa forma se podria crear ( registrar ) url amigable con el mismo php?.
De esta forma se puede cargar una pagina dentro de otra y colocar la url la cual se accedera desde las url amigables. Muchas gracias. <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sin título</title> <script type="text/javascript"> function Carga(url,id) { //Creamos un objeto dependiendo del navegador var objeto; if (window.XMLHttpRequest) { //Mozilla, Safari, etc objeto = new XMLHttpRequest(); } else if (window.ActiveXObject) { //Nuestro querido IE try { objeto = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { //Version mas antigua objeto = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!objeto) { alert("No ha sido posible crear un objeto de XMLHttpRequest"); } //Cuando XMLHttpRequest cambie de estado, ejecutamos esta funcion objeto.onreadystatechange=function() { cargarobjeto(objeto,id) } objeto.open('GET', url, true) // indicamos con el método open la url a cargar de manera asíncrona objeto.send(null) // Enviamos los datos con el metodo send } function cargarobjeto(objeto, id) { if (objeto.readyState == 4) //si se ha cargado completamente document.getElementById(id).innerHTML=objeto.responseText else //en caso contrario, mostramos un gif simulando una precarga document.getElementById(id).innerHTML='<img src="loader.gif" alt="cargando" />' } </script> </head> <body> <div id="toni">hola</div> <a href="mari.juana" onClick='Carga("http://192.168.10.200/1.php?variable=*","toni");'><input type="button" id="as"/></a> </body> </html>
Mod: No hacer doble post.
|
|
|
|
|
|
|