blog.TangGaowei.com

为什么总是收到“未经确认的发件人”的垃圾短信

作者 传说一梦 写于 2008-05-10  | 171 次浏览

收到“未经确认的发件人”的垃圾短信已不止一个月了。原来都是隔几天才收到一条,可最近却每天都会收到。实在忍无可忍!于是用手机上网 Google 了一下。搜到的结果并不多。多普达智能手机论坛里的一个帖子提供了一个注册表文件来解决这个问题。不过,一篇“WAP PUSH 服务介绍”的文章,说明了这种垃圾短信是一种叫“wap push”的业务产生的。在国外,“wap push”是用来方便手机用户,直接找到并使用自己喜欢的 wap 业务的;而在国内,却被一些无耻之徒用来发垃圾短信。

手机的“wap push”功能是可能打开和关闭的。关闭后,就不会再收到“未经确认的发件人”的垃圾短了。但是,这样一来,你也无法使用它“直接找到并使用自己喜欢的 wap 业务”了。真是一个两难的境地啊——可恶的无耻之徒!好在我没有用过“wap push”的业务,对它还没有什么依赖。

在关闭“wap push”功能,只要将手机注册表里的“HKEY_LOCAL_MACHINE/Security/Policies/Policies/0000100D”键值,修改为十进制的 3072 (0×00000C00) 就可以了。“WAP PUSH 服务介绍”文章里介绍一款“注册表编辑器”用于编辑此键值。我是使用的 Resco Explorer 2007 的“注册表插件”进行修改的。

如果要打开“wap push”,可将注册表键值修改为十进制“4095”。

为了方便,我用 .net 写了一个软件,用于打开和关闭“wap push”功能。有兴趣的可以下载使用:WapPushMgr (for microsoft mobile smartphone 2005)(手机下载地址

[ 标签: wap push, 垃圾短信 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-13.html ]

智能设备应用程序的菜单怎么修改不了

作者 传说一梦 写于 2008-05-08  | 127 次浏览

调试VS2005 C++ MFC 智能设备应用程序时,系统总是显示项目的初始菜单(在手机上运行可能正常)。要使用自己的菜单,请注释掉 res\MyProjectsp.rc2 中以下内容:

/////////////////////////////////////////////////////////////////////////////
//
// 数据
//
/*
IDR_MAINFRAME SHMENUBAR DISCARDABLE
BEGIN
    IDR_MAINFRAME,
    1,
    I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
    IDS_OK, 0, NOMENU,
END
*/

[ 标签: 资源菜单 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/post-12.html ]

怎样恢复 Edit 控件的 BackSpace 键功能

作者 传说一梦 写于 2008-05-08  | 117 次浏览

VS2005 C++ MFC 智能设备应用程序中,在 Edit 控件里按“TBack”键时,并没有删除光标前的字符,而是最小化当前应用程序。要恢复 Edit 控件的 BackSpace 键功能,方法如下:

1. 函数申明:在 MyProjectDlg.h 中写到“DECLARE_MESSAGE_MAP()”语句之前

afx_msg LRESULT OnHotKey ( WPARAM wParam, LPARAM lParam );  // 一定要在 DECLARE_MESSAGE_MAP() 之前

DECLARE_MESSAGE_MAP()

2. 消息映射:在 MyProjectDlg.cpp 的 BEGIN_MESSAGE_MAP() 段添加代码

BEGIN_MESSAGE_MAP(….)

ON_MESSAGE( WM_HOTKEY, OnHotKey )

END_MESSAGE_MAP()

3. 函数定义:在 MyProjectDlg.cpp 中实现代码

LRESULT CMyProjectDlg::OnHotKey ( WPARAM wParam, LPARAM lParam )
{
    if(VK_TBACK == HIWORD(lParam))
    {        
          SHSendBackToFocusWindow( WM_HOTKEY , wParam, lParam);

          return 1;
    }

    return 0;
}

[ 标签: BackSpace, Edit控件, TBACK ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/edit-backspace.html ]

VS2005 C++ 字符串相关处理

作者 传说一梦 写于 2008-05-08  | 153 次浏览

———————————————————————————-
分割字符串
———————————————————————————-
#include <string.h>
#include <stdio.h>

char data[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";   // 分隔符字符集
char *token;

void main( void )
{
   printf( "%s\n\nTokens:\n", data );
   /* Establish string and get the first token: */
   token = strtok( data, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}

———————————————————————————-
字符串转换成数字
———————————————————————————-

char* token = "20";   
int nHour;

nHour = atoi( token);

———————————————————————————-
数字转换成字符串
———————————————————————————-
_itoa( nHour,buf, 10);  // 10 代表十进制

char* token = "20";   
char* buf;
int r;
int nHour;
string sHour;
nHour = atoi( token);
nHour += 8;
_itoa( nHour,buf, 10);
sHour = buf;

[ 标签: 字符串 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/vs2005-c-4.html ]

VS2005 C++ MFC 怎样添加事件、映射消息和重载函数

作者 传说一梦 写于 2008-05-08  | 388 次浏览

VS2005 的 MFC 添加事件、映射消息和重载函数的操作 和 VS6.0 不一样,是在窗口类的属性页里。操作如下:

在“类视图”中,右键单击想要操作的窗口类,点击“属性”。在打开的属性页中,最上一排按钮中的“事件”、“信息”和“重写”分别对应“添加事件”、“映射消息”和“重载函数”的操作。

[ 标签: mfc, 映射消息, 添加事件, 重载方法 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/vs2005-c-mfc.html ]

捕捉手机 Home 键

作者 传说一梦 写于 2008-05-08  | 154 次浏览

(虽然能捕捉到,但是好像最后还是执行了返回桌面操作)

1. 注册热键

BOOL CMyProjectDlg::OnInitDialog()
{
    …

    // 处理 VK_HOME
    BYTE appkey = SHGetAppKeyAssoc(_T("MiniBlogClient.exe"));
    ::RegisterHotKey ( m_hWnd, appkey, MOD_WIN, VK_THOME);

    …
}

2. 重写 PreTranslateMessage 函数

BOOL CMyProjectDlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: 在此添加专用代码和/或调用基类
    if( pMsg->message == WM_HOTKEY )
    {
        SetForegroundWindow();

        return TRUE;
    }

    return CDialog::PreTranslateMessage(pMsg);
}

[ 标签: HOME键 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/home-2.html ]

为什么按 HOME 键后,应用程序在“任务管理器”里找不到了

作者 传说一梦 写于 2008-05-08  | 169 次浏览

在手机里,按下 HOME 键后,在“任务管理器(CeleTask.exe)”里就找不到应用程序了。碰到这样的事情,真是很郁闷!解决方法如下:

在“资源视图”的窗口编辑器里,将窗口的 style 属性修改为 Overlapped,再重新编译

[ 标签: HOME键, 任务管理器 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/home.html ]

给 CEdit 的扩展类中添加翻页功能

作者 传说一梦 写于 2008-05-08  | 106 次浏览

1. 控件获得焦点时,屏蔽输入法

void CBlogEdit::OnSetFocus(CWnd* pOldWnd)
{
    CEdit::OnSetFocus(pOldWnd);

    // 关闭输入法
    HIMC hIMC = ImmGetContext( this->GetSafeHwnd() );
    ImmSetOpenStatus ( hIMC, FALSE );
}

2. 映射 WM_CHAR 消息到 OnChar ()

void CBlogEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // nChar 的值在不同手机上可能有所不同
    switch ( nChar )
    {
        // Up
        case 50:
        {
            this->LineScroll ( -1 );

            break;
        }

        // Down
        case 56:
        {
            this->LineScroll ( 1 );

            break;
        }

        // PageUp
        case 52:
        {
            this->LineScroll ( -11 );

            break;
        }

        // PageDown
        case 54:
        {
            this->LineScroll ( 11 );

            break;
        }
    }

    // CEdit::OnChar(nChar, nRepCnt, nFlags);
}

[ 标签: Edit控件, 屏蔽输入法, 翻页 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/cedit.html ]

VS2005 C++ 中自己构造时间

作者 传说一梦 写于 2008-05-08  | 102 次浏览

#include <windows.h>
#include <afxwin.h>
#include <atltime.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
    char           buff[80];
    __time64_t result;

    // 构造 2008年4月28日 22:18:39 的时间
    CTime        t(2008,4,28,22,18,39);

    CString s = t.Format( _T("%A, %B %d, %Y") );

    struct tm when;
    t.GetLocalTm(&when);

    // 在自定义的时间上,再加 8 小时
    // 即变为 2008年4月29日 6:18:39
    when.tm_hour = when.tm_hour + 8; 

    // 重构时间,并输出显示
    if( (result = mktime( &when )) != (time_t)-1 )
    {
        asctime_s( buff, sizeof(buff), &when );
        printf( "the time will be %s\n", buff );
    }
    else
    {
        printf( "mktime failed" );
    }
}

[ 标签: 时间处理 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/vs2005-c-3.html ]

C++ 读写二进制文件

作者 传说一梦 写于 2008-05-08  | 314 次浏览

#include <fstream>
using namespace std;

// AuthInfo 是自定义的 struct
struct AuthInfo auth_info;
string susername, spassword;

/* 写文件 */ 
// 清零
ZeroMemory ( &auth_info, sizeof ( auth_info ) );

susername = "tanggaowei@gmail.com";
spassword = "000000";

// 内存拷贝
memcpy(auth_info.username, susername.c_str(), susername.length());
memcpy(auth_info.password, spassword.c_str(), spassword.length());

// 定义打开输出流
ofstream fout("mbc.dat", ios::binary);

// 写入
fout.write((char *)(&auth_info), sizeof(auth_info));

// 关闭输出流
fout.close();

/* 读文件 */
ZeroMemory ( &auth_info, sizeof ( auth_info ) );

ifstream fin ( "mbc.dat", ios::binary );

fin.read((char *)(&auth_info), sizeof(auth_info));

susername = auth_info.username;
spassword = auth_info.password;

ZeroMemory ( auth_info.username, 100 );   // AuthInfo.username[100]
ZeroMemory ( auth_info.password, 50 );    
// AuthInfo.password[50]

memcpy(auth_info.username, susername.c_str(), susername.length());
memcpy(auth_info.password, spassword.c_str(), spassword.length());  

fin.close();

[ 标签: c++, 写文件, 读文件 ]
[ 固定链接:http://blog.tanggaowei.com/2008/05/c-2.html ]

订阅

 

手机访问

http://blog.tanggaowei.com/wap/
查找文章: