RSS Feed

Posts Tagged ‘msn’

  1. 一下子涌过来这么多windows live messenger的邀请

    一月 19, 2006 by bborn

    前些天有两个朋友给我发来邀请
    昨天受到微软的邀请

    再一到http://ideas.live.com/ 看
    发现我现在有了5个邀请


  2. 今天终于得到了msn live messenger的邀请

    一月 15, 2006 by bborn

    今天终于得到了朋友发来的邀请
    我一直在ideas上申请
    都不给我
    折腾了好久
    后来问一些网友要
    他们答应有了就给我
    终于让我等到了
    原来尝试过用代理补丁登陆
    但是教育网好像上不去
    哈哈现在方便了
    发个截图上来


  3. 更改msn messenger个人消息程序的源码

    八月 10, 2005 by bborn

    很简单的一个用sdk写的c++程序

    这是头文件的部分 声明一下函数

    #include “resource.h”
    #include

    BOOL CALLBACK DlgProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
    void ChangeUserMsg(bool bshow, int x,const WCHAR* str);

    LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

    这是前面的一些必要的声明

    #define MSNMusicString L”\\0%s\\0%d\\0[%s]\\0″
    bool bshow = 0;
    HINSTANCE hInst;
    NOTIFYICONDATA IconData;
    int msna,msnb;
    #define WM_MYTRAY WM_USER+99

    主要的函数

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {

    hInst = hInstance;

    DialogBoxParam(hInst, (LPCSTR)IDD_DIALOG1, NULL, DlgProc, NULL);
    return 0;
    }

    BOOL CALLBACK DlgProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
    HICON hIcon;
    HWND hact;
    WCHAR  temp[256];

    switch(iMsg)
    {
    case WM_INITDIALOG:
    hIcon = LoadIcon(hInst, (LPCSTR)IDI_ICON1);
    SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_BIG, (LPARAM)hIcon);
    SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)hIcon);
    CheckDlgButton(hwnd,IDC_RADIO1,BST_CHECKED);  msnb=1;
    CheckDlgButton(hwnd,IDC_RADIO4,BST_CHECKED);  msna=1;
    break;

    case WM_TIMER:
    if (wParam==1)
    {
    hact=GetForegroundWindow();
    GetWindowTextW (hact,temp,256);
    ChangeUserMsg(1,msnb,temp);
    }
    break;

    case WM_MYTRAY :
    if (lParam==WM_LBUTTONDOWN)
    {
    Shell_NotifyIcon(NIM_Delete, &IconData);
    ShowWindow(hwnd,1);
    }
    break;

    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case IDOK:
    msna=IsDlgButtonChecked(hwnd,IDC_RADIO6);
    if(msna==1)
    {
    KillTimer(hwnd,1);
    ChangeUserMsg(0,0,0);
    }
    else
    {
    if(IsDlgButtonChecked(hwnd,IDC_RADIO1)==1)  msnb=1;
    if(IsDlgButtonChecked(hwnd,IDC_RADIO2)==1)  msnb=2;
    if(IsDlgButtonChecked(hwnd,IDC_RADIO3)==1)  msnb=3;
    SetTimer(hwnd,1,2000, 0);
    }
    IconData.cbSize = sizeof(NOTIFYICONDATA);
    IconData.hWnd  = hwnd;
    IconData.uID = 12;
    IconData.hIcon  = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
    IconData.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP;
    IconData.uCallbackMessage = WM_MYTRAY;
    strcpy(IconData.szTip, “自定义Msn Messenger的个人消息”);
    Shell_NotifyIcon(NIM_ADD, &IconData);
    ShowWindow(hwnd,0);
    break;
    case IDCANCEL:
    KillTimer(hwnd,1);
    Shell_NotifyIcon(NIM_Delete, &IconData);
    ChangeUserMsg(0,0,0);
    EndDialog(hwnd, 0);
    break;
    case IDC_ABOUT:
    DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hwnd, (DLGPROC)About);
    break;

    default:
    return TRUE;
    }

    default:
    return FALSE;
    }
    }

    // Mesage handler for about box.
    LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message)
    {
    case WM_INITDIALOG:
    return TRUE;

    case WM_COMMAND:
    if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    {
    EndDialog(hDlg, LOWORD(wParam));
    return TRUE;
    }
    break;
    }
    return FALSE;
    }

    下面是主要功能的实现

    void ChangeUserMsg(bool bshow, int x, const WCHAR*  str)
    {
    COPYDATASTRUCT msndata;
    WCHAR buffer[500];
    WCHAR style[5];

    if(x==1)
    {wsprintfW(style,L”Office”);}
    else if (x==2)
    {wsprintfW(style,L”Music”);}
    else
    {wsprintfW(style,L”Games”);}

    //bool bshow = 1;

    wsprintfW(buffer, MSNMusicString,  style, bshow , str );

    HWND msnui = NULL;
    msndata.dwData = 0×547;
    msndata.lpData = &buffer;
    msndata.cbData = (lstrlenW(buffer)*2)+2;
    msnui = FindWindowEx(NULL, msnui, “MsnMsgrUIManager”, NULL);

    if (msnui!=0)
    {
    SendMessage(msnui, WM_COPYDATA, 0, (LPARAM)&msndata);
    }
    }

    主要的问题出在WCHAR这个类型上
    开始不知道怎么处理怎么传递怎么赋值怎么复制等
    还有一个就是托盘图标
    很简单的实现,但是在填充数据结构的时候
    IconData.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
    把LoadIcon的第一个参数设为0了,图标怎么都显示不出来
    看别人的程序有这样写的,不知道是不是说错了
    找原因找了半天 还以为是自己做的图标的问题
    图标并不一定要是16×16的


  4. 小程序 更改msn messenger的个人消息为当前窗口的标题

    八月 3, 2005 by bborn

    msn messenger 有个小功能
    可以在个人消息处显示当前你正在听的音乐
    这有些类似QQ的个人签名

    前提是你打开这个功能并使用类似wmp或者支持此功能的播放器
    其实 msn messenger不仅可以显示音乐图标
    还可以显示办公或者游戏图标

    我这两天做了个小东西
    就是可以把这个个人消息更改为你当前窗口的标题

    这样 当你玩游戏的时候
    你的联系人就可以从你的消息知道你正在干吗
    你的朋友也可以看到你正在看什么网页或者忙着办公…

    绿色软件 下载就用
    点击下载此文件