Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con codigo en C hacia Delphi (https://www.clubdelphi.com/foros/showthread.php?t=70714)

javier_ecf 06-11-2010 23:34:47

Ayuda con codigo en C hacia Delphi
 
Hola, bueno tengo un ligero problema con este codigo eh estado intentadolo pasar a delphi pero el manejo de WideString y punteros no me reacciona, si alguien le interesa el codigo en cuestion pone la cancion actual del Windows Live Messenger, ya lo hice en c, pero no eh podido pasarlo a delphi. alguien me echa una mano?

Gracias

Codigo en C:
Código:

#include <stdio.h>
#include <wchar.h>
#include <windows.h>

void message(wchar_t *cancion,wchar_t *grupo){
  HWND handle=0;

  wchar_t buffer[200];

  swprintf(buffer,L"Xfmedia\\0Music\\01\\0Xfmedia: {1} - {0}\\0");
  swprintf(buffer+wcslen(buffer),cancion);
  swprintf(buffer+wcslen(buffer),L"\\0");
  swprintf(buffer+wcslen(buffer),grupo);
  swprintf(buffer+wcslen(buffer),L"\\0Inhuman Rampage\\0WMContentID\\0");
  COPYDATASTRUCT data;
  data.cbData=(wcslen(buffer)*2)+2;
  data.dwData=0x0547;
  data.lpData=buffer;
  handle = FindWindow("MsnMsgrUIManager", NULL);
  SendMessage(handle, WM_COPYDATA, (WPARAM)NULL,(LPARAM)&data);
}

int main()
{
    message(L"Cancion",L"Grupo");
    getchar();
    return 0;
}

Intento de Codigo en Delphi:

Código:

program msn;

//{$APPTYPE CONSOLE}

uses
  SysUtils,
  windows,strutils;

type wchar_t=array[0..200] of wchar;

procedure msnMessage(msj:String);
var handle:HWND;
var buffer:wideString;
var pointer:^wideString;
var data:COPYDATASTRUCT;
var s:wchar_t;
var pointerdata:^COPYDATASTRUCT;
begin
  buffer:='Xfmedia\0Music\01\0Xfmedia: {1} - {0}\0Hola\0Delphi\0Inhuman Rampage\0WMContentID\0';
  handle:=0;
  data.dwData:=$0547;
  data.cbData:=(length(buffer)*2)+2;
  data.lpData:=@buffer;
  handle:= FindWindow('MsnMsgrUIManager', nil);
  if(handle>0) then
    begin
      SendMessage(handle,$004A,WPARAM(nil),LPARAM(@data));
    end;
end;
begin
  msnMessage('Mensajito');
end.

/////////////
Ahora bien, yo se que el codigo en delphi tiene muchas fallas a diferencia de c, espero me puedan ayudar, de antemano gracias.

javier_ecf 13-11-2010 17:36:05

Ya no me es necesario este tema, lo solucione creando una dll en c y mandando llamar sus funciones. Gracias.


La franja horaria es GMT +2. Ahora son las 00:32:00.

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