PlaySound

8 7 月, 2009

头文件:mmsystem.h

函数原型:BOOL WINAPI PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)

参考http://zhidao.baidu.com/question/41366091.html

#include <windows.h>
#include <mmsystem.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 int choice = MessageBox(NULL, TEXT(“重启计算机?”), TEXT(“重启”), MB_OKCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2);
 if(choice == IDOK)
 {
  PlaySound(“C:WINDOWSMediaWindows XP 关机.wav”, NULL, SND_FILENAME | SND_ASYNC);
  MessageBox(NULL, TEXT(“关闭计算机……”), TEXT(“关闭”), MB_OK);
  PlaySound(NULL, NULL, SND_FILENAME);
  choice = MessageBox(NULL, TEXT(“启动计算机?”), TEXT(“启动”), MB_YESNO | MB_ICONQUESTION);
  if(choice == IDYES)
  {
   PlaySound(“C:WINDOWSMediaWindows XP 启动.wav”, NULL, SND_FILENAME | SND_SYNC);
   MessageBox(NULL, TEXT(“计算机已成功启动!”), TEXT(“启动成功”), MB_OK);
  }
 }
 return 0;
}

重启计算机

MessageBox

8 7 月, 2009

函数原型:int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)

函数功能:创建、显示和操作一个消息框。消息框含有应用程序定义的消息标题和内容,加上预定义图标与按钮的任何组合。

hWnd标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。

lpText消息框内容,lpCaption消息框标题,uType指定一个决定对话框的内容和行为的位标志集。

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 MessageBox(NULL, TEXT(
Hello, windows!), TEXT(Msg), MB_OK);
 return 0;
}

有关uType取值可查看winuser.h

/*
 * MessageBox() Flags
 */
#define MB_OK                       0
×00000000L
#define MB_OKCANCEL                 0
×
00000001L
#define MB_ABORTRETRYIGNORE         0
×
00000002L
#define MB_YESNOCANCEL              0
×
00000003L
#define MB_YESNO                    0
×
00000004L
#define MB_RETRYCANCEL              0
×
00000005L
#define MB_ICONHAND                 0
×
00000010L
#define MB_ICONQUESTION             0
×
00000020L
#define MB_ICONEXCLAMATION          0
×
00000030L
#define MB_ICONASTERISK             0
×00000040L

注意到不同取值的分组位规律,采用按位或运算“|”进行组合。

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 int choice = MessageBox(NULL, TEXT(“你是好人吗?”), TEXT(“你是好人吗?”), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2);
 switch(choice)
 {
  case IDYES:
   MessageBox(NULL, TEXT(“一看你就不是好人,点击【确定】开始格式化C盘!”), TEXT(“是”), MB_OK | MB_ICONWARNING);
   break;
  case IDNO:
   MessageBox(NULL, TEXT(“尝试把你变成好人失败,是否重试?”), TEXT(“否”), MB_RETRYCANCEL);
   break;
  default:
   ;
 }
 return 0;
}

Win骨干代码

8 7 月, 2009

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 return 0;
}

关于仙三外传免CD免拔光驱

8 7 月, 2009

近日看完了《仙剑奇侠传三》,想再玩次一直带有遗憾的仙三外传。Copy份仙三外传硬盘版。免CD免拔光驱的。

之前很正常的玩过,这次却费了番周折。

众所周知,为防盗版,仙三外传在保护方面还是下了一定工夫的。只不过,破解版的出现是必然。硬盘版完成了这样的工作,但也有未知的bug

按一般操作,使用starfuck屏蔽光驱,使用虚拟光驱模拟游戏CD,运行PAL3A.exe即可。结果竟要求输入序列号!

查看了下注册表(运行regedit),发现游戏必需的注册表信息没有。

先百度下序列号,C7UX2JNVCE3VSQAW8J6ZC7H2可用。序列号验证正确,发现游戏注册表Keys下出现了DISK4的序列号值。解决了第一个问题。

再运行下游戏,发现要求放入DISK4。应该是指定读取光驱的问题。

修改下游戏注册表

HKEY_LOCAL_MACHINE——SOFTWARE——SoftStar——PAL3A

编辑——新建——字符串值——命名为@

HKEY_LOCAL_MACHINE——SOFTWARE——SoftStar——PAL3A

编辑——新建——字符串值——命名为CDriver——修改其值为指定读取光驱的值,如H:

运行游戏。问题解决。并且发现不用starfuck屏蔽光驱也能运行游戏。

简单破解学院数据结构课程网站试卷及答案

2 7 月, 2009

期末数据结构课程要考试,备考需要资料,不知为何,学院数据结构课程网站试卷样例和试卷参考答案两项却是加密。又未公布密码给我们。只能自己动手试试了。没想到,比想象中的要简单。

学院数据结构课程网站采用了框架结构,隐藏了部分页面信息。不过,找到真实地址很容易:
选择需要查看项,右键,在新窗口中打开。
喏,试卷样例 试卷一 的真实页面打开了,真实地址为***oopda2_files/resources/试卷库/**大学课程考试试题1.html

请输入密码?还是直接看看源码吧。页面应该有个简单的JS锁定了右键(不管它),因此不能用右键查看源文件的方式了。
菜单栏,查看,源文件。喏,源码还是出来了。你会惊奇的发现,试卷内容竟然只是用DIV隐藏了!
在源码“请输入访问密码:”后面不远处有句<div id=”content” style=”display:none”>。

直接把这句<div id=”content” style=”display:none”>后面的所有源码复制。
右键,新建,文本文档。将源码复制进去,保存,改下文件后缀为htm或html。然后直接拖到IE等浏览器里查看。
嘿嘿,除了图片,其他内容全有了。
图片问题嘛,也很简单解决。两种方法,一是在源码里搜索img位置,根据相对路径与绝对路径关系直接上其网站上看。二是在一的基础上根据网站结构下载到自己电脑里看。

附试卷一test1

试卷一答案answer1