Y yage Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #1 请教各位大虾: 如何使自己的应用程序常住内存,在不启动WINDOWS界面的情况 下,而且不将其放在启动菜单栏或AUTOEXEC。BAT内。
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #2 "不启动WINDOWS界面",就只能加到autoexec.bat里面,DOS下就只有这个接口了. 或者,如果你会编设备驱动程序(*.sys),可以加到config.sys里面 --- 这和autoexec一样嘛.
"不启动WINDOWS界面",就只能加到autoexec.bat里面,DOS下就只有这个接口了. 或者,如果你会编设备驱动程序(*.sys),可以加到config.sys里面 --- 这和autoexec一样嘛.
C cytown Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #3 还可以更改command.com文件, 让它自动运行你的程序 病毒:-(
N netredfox Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #4 That's easy! 只需 把程序添加入注册表, HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run 或RunOnce,RunOnceEx,RunServicesOnce (在 internat 等.. 前) 若你想在WINDOWS完全加载之前,驻留内存,只好用cytown大侠的方法了, 具体怎么做,只好问他了^0^
That's easy! 只需 把程序添加入注册表, HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run 或RunOnce,RunOnceEx,RunServicesOnce (在 internat 等.. 前) 若你想在WINDOWS完全加载之前,驻留内存,只好用cytown大侠的方法了, 具体怎么做,只好问他了^0^
A Alarm Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #6 如果你不进入图形界面、只进入Dos提示符,还要考虑在单任务操作系统下如何编写内 存驻留程序的问题,非常麻烦。
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #7 Alarm: 内存驻留到不是问题,以前DOS下有大量的经验可以参考. 关键是"内存驻留"程序也必须在autoexec.bat里面加载才行阿.
O op Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #10 呵,你这个问题又把我带回当年Dos编程的时代了。 在硬盘里找了半天,终于找到了我当初编的那个程序。(那时,这可是我在学校机房里 炫的秘密武器) #include <dos.h> #include <stdio.h> #define INTR 0x1C #define ATTR 0x4e00 #define SHAD 0x1F00 #define BACK 0x1000 #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif extern unsigned _heaplen = 1024; extern unsigned _stklen = 512; void interrupt ( *oldhandler)(__CPPARGS); typedef unsigned int (far *s_arrayptr); typedef unsigned char (far *ptr); void interrupt handler(__CPPARGS); int main(void) { ptr mcb; mcb = (ptr) MK_FP(_psp-1,8); mcb[0]='x'; mcb[1]='u'; mcb[2]='m'; mcb[3]='V'; mcb[4]='i'; mcb[5]='r'; mcb[6]='u'; mcb[7]='s'; oldhandler = getvect(INTR); setvect(INTR, handler); keep(0, (_SS + (_SP/16) - _psp)); return 0; } void interrupt handler(__CPPARGS) { s_arrayptr screen[91]; screen[0] = (s_arrayptr) MK_FP(0xB800,0)+34; screen[0][0] = ' ' + BACK; screen[0][1] = '-' + ATTR; screen[0][2] = 'X' + ATTR; screen[0][3] = ' ' + ATTR; screen[0][4] = 'U' + ATTR; screen[0][5] = ' ' + ATTR; screen[0][6] = 'M' + ATTR; screen[0][7] = '-' + ATTR; screen[0][8] = '? + SHAD; screen[0][9] = ' ' + BACK; screen[0][10] = ' ' + BACK; screen[0][80] = ' ' + BACK; screen[0][81] = ' ' + BACK; screen[0][82] = '? + SHAD; screen[0][83] = '? + SHAD; screen[0][84] = '? + SHAD; screen[0][85] = '? + SHAD; screen[0][86] = '? + SHAD; screen[0][87] = '? + SHAD; screen[0][88] = '? + SHAD; screen[0][89] = ' ' + BACK; screen[0][90] = ' ' + BACK; oldhandler(); } 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 执行它,你的屏幕中间会出现我名字的缩写,即使在dir和edit时也一直存在。 更奥妙的是,即使你打mem/c/p也找不到这个执行文件的真实名字。 引导嘛,我有一个又简单,又鲜为人知的好办法: 用Pctools在Command里找Autoexec字符串,(有3个,好像是第二个),你把它改成 你自己的bat文件名,这样一开机就执行你的bat文件了。(不要忘了在你的bat文件 里再去调用autoexec.bat) 真正的病毒引导办法:替换系统的引导程序。(我这里倒真有一个),我就不到处传播了.
呵,你这个问题又把我带回当年Dos编程的时代了。 在硬盘里找了半天,终于找到了我当初编的那个程序。(那时,这可是我在学校机房里 炫的秘密武器) #include <dos.h> #include <stdio.h> #define INTR 0x1C #define ATTR 0x4e00 #define SHAD 0x1F00 #define BACK 0x1000 #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif extern unsigned _heaplen = 1024; extern unsigned _stklen = 512; void interrupt ( *oldhandler)(__CPPARGS); typedef unsigned int (far *s_arrayptr); typedef unsigned char (far *ptr); void interrupt handler(__CPPARGS); int main(void) { ptr mcb; mcb = (ptr) MK_FP(_psp-1,8); mcb[0]='x'; mcb[1]='u'; mcb[2]='m'; mcb[3]='V'; mcb[4]='i'; mcb[5]='r'; mcb[6]='u'; mcb[7]='s'; oldhandler = getvect(INTR); setvect(INTR, handler); keep(0, (_SS + (_SP/16) - _psp)); return 0; } void interrupt handler(__CPPARGS) { s_arrayptr screen[91]; screen[0] = (s_arrayptr) MK_FP(0xB800,0)+34; screen[0][0] = ' ' + BACK; screen[0][1] = '-' + ATTR; screen[0][2] = 'X' + ATTR; screen[0][3] = ' ' + ATTR; screen[0][4] = 'U' + ATTR; screen[0][5] = ' ' + ATTR; screen[0][6] = 'M' + ATTR; screen[0][7] = '-' + ATTR; screen[0][8] = '? + SHAD; screen[0][9] = ' ' + BACK; screen[0][10] = ' ' + BACK; screen[0][80] = ' ' + BACK; screen[0][81] = ' ' + BACK; screen[0][82] = '? + SHAD; screen[0][83] = '? + SHAD; screen[0][84] = '? + SHAD; screen[0][85] = '? + SHAD; screen[0][86] = '? + SHAD; screen[0][87] = '? + SHAD; screen[0][88] = '? + SHAD; screen[0][89] = ' ' + BACK; screen[0][90] = ' ' + BACK; oldhandler(); } 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 执行它,你的屏幕中间会出现我名字的缩写,即使在dir和edit时也一直存在。 更奥妙的是,即使你打mem/c/p也找不到这个执行文件的真实名字。 引导嘛,我有一个又简单,又鲜为人知的好办法: 用Pctools在Command里找Autoexec字符串,(有3个,好像是第二个),你把它改成 你自己的bat文件名,这样一开机就执行你的bat文件了。(不要忘了在你的bat文件 里再去调用autoexec.bat) 真正的病毒引导办法:替换系统的引导程序。(我这里倒真有一个),我就不到处传播了.
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-15 #11 to Chxn: 问题是人家不能加载windows."加到window的进程中"又有何用?
Y yage Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-16 #12 大家不要紧张,这不是病毒,仅仅是想代替EXPLORER 而已。我已经用过AUTOEXEC。BAT,WIN。INI ,和启动栏,但是仍然能看到WINDOWS界面,我希望不看到WINDOWS界面,并不是不启动WINDOWS进程。
大家不要紧张,这不是病毒,仅仅是想代替EXPLORER 而已。我已经用过AUTOEXEC。BAT,WIN。INI ,和启动栏,但是仍然能看到WINDOWS界面,我希望不看到WINDOWS界面,并不是不启动WINDOWS进程。
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-16 #13 把代码加入引导扇区?呵呵,搞大了。 记得以前WIN3.X可以用以下命令//WIN.INI REM SHELL=WINFILE.EXE 就不显示应用程序管理器了,而是直接用文件管理器,关闭文件管理器,就退出WIN了
把代码加入引导扇区?呵呵,搞大了。 记得以前WIN3.X可以用以下命令//WIN.INI REM SHELL=WINFILE.EXE 就不显示应用程序管理器了,而是直接用文件管理器,关闭文件管理器,就退出WIN了
B barton Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-17 #14 把我搞糊涂了。什么叫不看到Windows界面,却要启支Windows进程?你到底要 干什么?是不是类似Windows NT的Service?Windows似乎没有“常驻内存”应用 程序这种讲法。那是Dos的事情。 我研究过共享内存DLL和Application,而且也在本论坛提过类似的问题,最后是 靠MapFile解决的。
把我搞糊涂了。什么叫不看到Windows界面,却要启支Windows进程?你到底要 干什么?是不是类似Windows NT的Service?Windows似乎没有“常驻内存”应用 程序这种讲法。那是Dos的事情。 我研究过共享内存DLL和Application,而且也在本论坛提过类似的问题,最后是 靠MapFile解决的。
Y yang2000 Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-17 #16 yage: 如果你想替换EXPLORE,最简单的方法就是修改WINDOWS目录下的System.Ini文件 把Shell=EXPLORE.EXE替换成你的程序.你可以试试效果.
K Keyes Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-20 #17 function RegisterServiceProcess(dwProcessId,dwType:dword): Integer;stdcall;external 'kernel32.dll' RegisterServiceProcess(GetCurrentProcessID,1) and add reg: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run/yourapplicationname
function RegisterServiceProcess(dwProcessId,dwType:dword): Integer;stdcall;external 'kernel32.dll' RegisterServiceProcess(GetCurrentProcessID,1) and add reg: HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run/yourapplicationname