|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/19 17:50:46 |
标题: |
CMD Console 程序 能否做到如 DOS 年代 TSR 之类的方式 ?? |
浏览:1473 |
|
加入我的收藏 |
楼主: |
以前 DOS 年代, 能在 右上角显示 现在时间.
有个想法, 是否能在 Windows 的 CMD Console 中做到类似功能 ??
此帖子包含附件:
大小:3,208B |
----------------------------------------------
- |
作者: |
|
2021/6/20 10:09:30 |
1楼: |
DOS年代的中断,已经不能这样使用了吧
----------------------------------------------
一卡通专家的中专家www.cnduh.com
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/21 17:17:53 |
2楼: |
To:www12345
知道.
想知道有无替代方法.
----------------------------------------------
-
|
作者: |
|
2021/6/21 23:37:17 |
3楼: |
Window Console mode + Windows Thread https://docs.microsoft.com/en-us/windows/console/classic-vs-vt
----------------------------------------------
-
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/22 3:08:16 |
4楼: |
To:chengcti
Ansi 方法我知道, 我主要是想找替代 TSR 方法.
本来是想监控 %cd% 变量, 当 %cd% 有变动,就处理某些事.
----------------------------------------------
-
|
作者: |
|
2021/6/22 22:37:43 |
5楼: |
我在90年代读书的时候用过DOS时代的TSR,就是常驻后台,一般结合中断拦截技术做事,类似今天的HOOK拦截API。 所以答案是不能,控制台只是一个普通的WIN32程序,接管了管道的输入和输出。拦截中断就别想了,那些在WIN32时代都是特权指令,RING0才能访问到。
变向的实现方式有几个思路: 1.就是自己实现一个控制台,一边接受管道的输入和输出,一边显示时间。
2.或者你的程序再开一个线程,在里面找到控制台窗口,在上面绘制时间
3。再或者你的程序开一个线程,有消息循环,创建一个窗口显示时间,附在控制台窗口上
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/23 4:24:46 |
6楼: |
To:wr960204
思路不错.
1. 难度大.
2. 3. 这个可研究, 但程序运行完成后,不就回到 CMD 的 C:> 无法像 TSR 般: 程序 -> 回 C:> -> 程序 -> 回 C:> 程序 -> 回 C:> .....
本来是想监控 %cd% 变量, 当 %cd% 有变动,就处理某些事. 才会想到 DOS 时代的 TSR 程序.
----------------------------------------------
-
|
作者: |
|
2021/6/23 8:12:35 |
7楼: |
没有意义,开发控制台程序就是希望它能运行在没有GUI没有窗口句柄的环境下,只要你用到任何与窗口句柄相关的东西,直接搞个GUI程序它不更简单? 你要显示个时间显示在哪不行,一定要显示在黑窗口右上角吗
----------------------------------------------
-
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/23 12:28:44 |
8楼: |
To:roadrunner
本来是想监控 %cd% 变量, 当 %cd% 有变动,就处理某些事. 才会想到 DOS 时代的 TSR 程序.
显示个时间在黑窗口右上角只是个"例子", 这是 DOS 时代 TSR 的经典例子.
----------------------------------------------
-
|
作者: |
|
2021/6/23 13:17:14 |
9楼: |
输出重定向可否?根据被重定向到目标的变化,处理某些事。
----------------------------------------------
-
|
作者: |
|
2021/6/23 13:21:01 |
10楼: |
5楼武稀松的第一条已经提了输入输出重定向了。用这个应该是最简单的办法了。
----------------------------------------------
-
|
作者: |
|
2021/6/23 13:24:34 |
10楼: |
@plusv 你写个GUI程序来监控不就得了
----------------------------------------------
-
|
作者: |
conch (conch) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/23 13:29:43 |
11楼: |
能否在微软CMD中挂入程序这个不清楚。
但自己写的Console程序完全可在固定位置显示内容,如时间。
参见API:SetConsoleCursorPosition、SetConsoleTextAttribute、GetConsoleScreenBufferInfo等
----------------------------------------------
-
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/23 15:42:25 |
12楼: |
To:wk_knife
不是很了解.
但运行程序后, 其后所有指令或程序是否都正常输出屏幕.
例: 运行 输出重定向程序 后 cd c:\windows dir/w ver cd c:\windows\system32 chkdsk c: .......
都正常输出屏幕 ?
----------------------------------------------
-
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/23 15:45:04 |
13楼: |
To:roadrunner
如果有
CMD 1 -->> %cd%= C:\Windows CMD 2 -->> %cd%= C:\Windows\System32 CMD 3 -->> %cd%= C:\C:\Program Files (x86)
那 GUI 如何 监控 CMD1 CMD2 CMD3 并取得其 %cd%
----------------------------------------------
-
|
作者: |
plusv (plusv) |
★☆☆☆☆ |
-
|
普通会员 |
|
2021/6/23 15:47:23 |
14楼: |
To:conch
自己程序做这些没问题, 但要再把控制权"返回 CMD"
无法像 TSR 般: 程序 -> 回 C:> -> 程序 -> 回 C:> 程序 -> 回 C:> .....
----------------------------------------------
-
|
|