Professional Documents
Culture Documents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
多媒体教学中需要引起注意的一点是教学主体没 件扮演着课堂主角,由此导致教师忽视教学的策略与
有变。在教学过程中始终要把握好学生的主体地位,发 方法,忽视教学的难点与 重点,忽视学生的感受与反
挥教师的主导作用,避免课件的喧宾夺主。由于借助多 应,忽视与学生的情感交流;导致学生只关注屏幕内容
媒体教学具有信息量大、呈现快速、表现直观、操作简 而忙于抄录笔记,忽略教师的讲解,也无暇思考问题,
便的特点,教学活动很容易出现“课件喧宾夺主”的不 所谓“上课”
变成“看课”
。
良倾向。师生依赖荧屏展现,演示成为关注的中心,课
・!"!・
2345671 &‘ R 5273M6’’ U 89:: ;
-1 ^ /6’’)[6=3N R B326P 34567 273M6’’ ‘)&*(76i B ; <
89:: ; < 764(7P<
第六,经过上面的调用得到一个结果,那就是通过 _
将目标进程 = 中的 :3)>:&?7)7@A 作为线程函数启动, e e 成功则在上面获取的进程中分配存储空间做准备
启动后给它传递的参数是 234567 所指向的在目标进程 e e 并将该内存空间递交, 且空间为可读写
= 中 分 配 的 存 储 字 符 串 B+C D D EF8GHEI D D ’@’J ’&Q6 U ! , ’47*6PR 2’Q*&?‘&*6 ; <
46KL# D D MN5>**#$ >**B的指针。因此 :3)>:&?7)7@A 线程函 234567 U R M5)7 + ; %&74()*A**3MXN R
数加载该 MN5>**#$ >** 到目标进程 = 的地址空间中。最 5273M6’’1
后让进程 A 结束, MN5>**#$ >** 留在进程 = 中。 89::1
二、 实现 ’&Q61
第一,创建 MN5>**#$ >** 动态链接库。利用工具是 /X/V+H//FY1
%+ , , "$ - 创建工程 “ /O+ A22E&PQ)7> R >** ; ” 1 接下来 WAfXVTXAGETFYX ; <
选定工程存放的位置和工程的 名称 MN5>**#。 在创建 e e 将 B +C D D EFGHEI D D ’@’46KL# D D MN5>**#$ >** B
G:: 的类 型中 选定 “/O+ 扩充 G::( 利 用共 享 /O+ 串写入上述进程分配的空间中
G:: ) ”。 在 G**/)&P 函数 >ST6)’3P U G::VWTH+XIIVAYY &‘ R i E7&46W73M6’’/6K37@ R 5273M6’’1
A+Z 分支中加入: 2345671
/6’’)[6=3NR89::1BMN5>**#$ >**)44)M5B1B+AWYFH8B1/=VH\;< R W%HFG ; 2’Q*&?‘&*61
弹出对话框表示 MN5>**#$ >** 已加载。 ’&Q61
在 G**/)&P 函数 >ST6)’3P U G::VWTH+XIIVGXY 89:: ; ;
A+Z 分支中加入: ^
6N&4?3N R ; 函数的调用, 6N&4?3N R ; 定义如下: /6’’)[6=3N R BS7&46 43 273M6’’ ‘)&*(76i B ; <
]3&> 6N&4?3N R ; 764(7P<
^ _
/6’’)[6=3N R89::1B>** >644)M5B1 B+AWYFH8B1 /=JH\;< e e 获取 \67P6*L#$ >** 模块中 :3)>:&?7)7@ 函数的地址
_ e e 作为开始启动的远程线程的线程函数
在卸载 MN5>**#$ >** 时提示 G:: 卸载。同时在 MNJ WYZTXAGVIYATYJTH9YF8X2‘)74576)>‘(PURWYZTXAGJIYATYVTH9YF8X
5>**#$ >6‘ 定义 6N&4?3N 为导出函数, 定义如下: f64W73MA>>76’’Rf64/3>(*6Z)P>*6RYXdYRB\XT8X:L#B ; ;1
:F=TATa BMN5>**#B B:3)>:&?7)7@AB;<
GXI+TFWYFH8bMN5>**# E&P>3S’ G@P)K&M :&Pc :&?7)7@b &‘R 2‘)74576)>‘(P U U 89::;
XdWHTYI ^ /6’’)[6=3N RB2‘)74576)>‘(P U U 89::i B;<
< XN2*&M&4 6N2374’ M)P [3 5676 764(7P<
6N&4?3N< MN5 )>> ‘37 6N2374 ‘(PM4&3P _
最后编译工程得到 MN5>**#$ >** 动态链接库,将该 e e 创建远程线程以启动 :3)>:&?7)7@A 线程函数
动态链接库放入 +C D EF8GHEI D ’@’46KL# D 目录下。 54576)> U+76)46T6K346Y576)>R5273M6’’1
第二,为简化过程,笔者生成了一个 76M>**$ 6N6 为 89::1
目标进程 = 的执行体。 -1
第三,46’4>**#$ 6N6 作为进程 A 的执行体,在其菜 2‘)74576)>‘(P1
单点击事件中生成响应代码,将实现注入的写在里面: 2345671
]3&> +/)&PO7)K6C C HP/6P(!R ; -1
^ 89:: ;<
M5)7+2’Q*&?‘&*6U B+C D DEFGHEID D’@’46KL#D DMN5>**#$>**B< e e ee e e e e ee e e e e e ee e e e e e
ZA8G:X 5273M6’’ U 89::1 54576)> U 89::< &‘R54576)> U U 89:: ;
GEHTG >SW73M6’’F> U -< ^ /6’’)[6=3N Rj54576)> U U 89::i B;<
e e >** 串名的长度 764(7P<
&P4 ’&Q6 U -< _
e e 指向 = 进程中分配的空间地址 e e A 进程等待在远程目标进程 = 中创建的线程结束
M5)7 +234567 U 89::< E)&4O37I&P[*6H?k6M4 R 54576)>1 F8OF8FYX ; <
e e 找到 = 进程创建窗口的句柄 /6’’)[6=3N R B2)’’ 5676B ; <
ZE8G 5SP> U C C O&P>E&P>3S R 89::1 B76M>**B; < _
e e 根据上面的句柄获取创建 该窗口的进程 FG, 以上代码在 EF8#--- 和 EF8dW 上实验, 运行良好。
而不是线程 FG
GEHTG >SY576)>F> U f64E&P>3SY576)>W73M6’’F>R 5SP>1
g>SW73M6’’F> ; <
e e 获取包含上面线程的进程的句柄
5273M6’’ U H26PW73M6’’ R
WTH+XIIV+TXAYXVYZTXAG h
WTH+XIIV%/JHWXTAYFH8 h 参考文献:
WTH+XIIV%/JETFYX1 &!0 范 辉 $ %&’()* + , , "$ - 程序简明教 程 . / 0 $
OA:IX1
北京:高等教育出版社 1 #--! $
>SW73M6’’F> ; <
・!"#・