哼哼,这儿有谁敢自称高手?看看歪就歪狰狞的面孔!(300分)

  • 主题发起人 歪就歪
  • 开始时间
歪就歪,怎么样解决没有?
 
好热闹。
 
居然没超时
 
我来凑个热闹,灌点水吧:<br>GenerateConsoleCtrlEvent<br>GetConsoleCP<br>GetConsoleCursorInfo<br>GetConsoleMode<br>GetConsoleOutputCP<br>GetConsoleScreenBufferInfo<br>GetConsoleTitle<br>GetLargestConsoleWindowSize<br>GetNumberOfConsoleInputEvents<br>GetNumberOfConsoleMouseButtons<br>GetHandleInformation<br>SetConsoleActiveScreenBuffer<br>SetConsoleCP<br>SetConsoleCtrlHandler<br>SetConsoleCursorInfo<br>SetConsoleCursorPosition<br>SetConsoleMode<br>SetConsoleOutputCP<br>SetConsoleScreenBufferSize<br>SetConsoleTextAttribute<br>SetConsoleTitle<br>SetConsoleWindowInfo<br>SetHandleInformation<br><br>不够还有
 
我又灌<br><br>IComponent<br>[This is preliminary documentation and subject to change.] <br><br>The IComponent interface enables the Microsoft&amp;reg; Management Console to communicate with snap-in components. Similar to the IComponentData interface, IComponent is typically implemented at the view level and is closely associated with items being displayed in the result pane.<br><br>When to Implement<br>Implement the IComponent interface in your in-process (in-proc) server DLL to communicate with the console,.which displays the result pane and enumerates the items it contains.<br><br>When to Use<br>Your snap-in component must expose the IComponent interface if it enumerates items in the result pane because the snap-in cannot enumerate without it. Extension snap-ins that do not extend the namespace (but extend other features like context menus, toolbars, and so on) do not need to implement this interface or the IComponentData interface.<br><br>Methods in Vtable Order<br>IUnknown Methods Description <br>QueryInterface Returns pointers to supported interfaces. <br>AddRef Increments reference count. <br>Release Decrements reference count. <br><br>IComponent Methods Description <br>Initialize Provides an entry point to the console. <br>Notify Called by the console to notify the snap-in of actions taken by a user. <br>Destroy Releases all references to the console. <br>QueryDataObject Returns a data object that can be used to retrieve context information for the specified cookie. <br>GetResultViewType Determines what the result pane view should be. <br>GetDisplayInfo Retrieves display information about an item in the result pane. <br>CompareObjects Enables a snap-in to compare two data objects acquired through QueryDataObject. Note that data objects can be acquired from two different instances of IComponent. <br><br><br>&nbsp;<br>
 
我要把歪就歪灌死<br><br>IConsole<br>[This is preliminary documentation and subject to change.] <br><br>The IConsole interface enables communication with the console.<br><br>When to Implement <br>You do not implement IConsole. It is implemented by the console's node manager. A pointer to the IConsole interface is passed to the snap-in through IComponent::Initialize and IComponentData::Initialize. Each IComponent and IComponentData get their own private IConsole interface pointers.<br><br>When to Use<br>This interface enables your snap-in component to communicate with the console.<br><br>Methods in Vtable Order<br>IUnknown Methods Description <br>QueryInterface Returns pointers to supported interfaces. <br>AddRef Increments reference count. <br>Release Decrements reference count. <br><br>IConsole Methods Description <br>SetHeader Used by instances of IComponent only.Sets the header interface to be used for this IComponent.. <br>SetToolbar Used by instances of IComponent only. Sets the toolbar interface to be used for this IComponent. <br>QueryResultView Queries IConsole for the result view object's IUnknown interface pointer. <br>QueryScopeImageList Queries the console-provided scope pane's image list. <br>QueryResultImageList Queries the console-provided result pane's image list. <br>UpdateAllViews Generates a notification to update views because of content change. <br>MessageBox Displays a message box. <br>QueryConsoleVerb Query for the IConsoleVerb interface. <br>SelectScopeItem Selects the given scope pane item. <br>GetMainWindow Returns a handle to the main frame window. <br>NewWindow Returns a handle to the main frame window. &nbsp;<br><br><br>&nbsp;<br>
 
各位大虾,这些资料小弟没研究过,灌水而已,不合用请不要见怪。
 
总算直到为什么中国做不出大软件了.....
 
这个问题很难,唔唔(很眼馋的样子)。
 
我有一个歪主意,用两台电脑,一台装DOS,另一台装 WINDOWS,中间用串口线相联,<br>在 &nbsp;DOS 那一端编一个过渡中介程序(龙丹肯定行),互相照应。<br>&nbsp;
 
歪就歪,俺虽然不能解决这个问题,但可以提个醒。<br>99,98年的“电脑编程技巧与维护”上有类似的文章,用的是vc,<br>很详细的说。要是你找到了,就把分给我把!!
 
很精彩,听听!
 
y9y:能不能把原代码EMAIL给我一份啊!kasly@263.net<br>可以研究一下么!:)
 
随便找个汇编高手就知道了<br>因为你那个程序不是使用标准函数的而是直接读取硬件键盘缓冲的<br>在windows下的解决方案是<br>写一个32rtm支持的dos程序去调用你的程序拦截所有输入输出<br>同时以win31方式与windows程序沟通,但是不支持winnt/2k/me
 
歪歪:<br>&nbsp; &nbsp; 我有一个办法,不知你能否接受。先做一个DOS程序(比如:D.COM)<br>和一个Window程序(W.EXE)。 并假设你的老程序为:OLD.EXE。<br>W.EXE启动D.COM,D.COM启动OLD.EXE。<br>&nbsp; &nbsp; 因Windows程序和DOS程序不好直接通讯,但我们可利用文件来实现。<br>我们这里用到两个文件,一个为key.dat,另一个为scr.dat。<br>&nbsp; &nbsp; key.dat由W.EXE生成。W.EXE接收用户按键后,将键值存入该文件。<br>&nbsp; &nbsp; scr.dat由D.EXE生成。D.EXE监控OLD.EXE的屏幕输出,将屏幕数据存入该文件。<br>&nbsp; &nbsp; D.EXE不停从key.dat中读取键值,发往键盘缓冲区(好像是0040:001e-0040:003a,<br>共16个按键扫描码)。同时不停从显示缓冲区(文本方式3的起始地址为b800:0000,<br>文本方式7的起始地址为b000:0000,一个ASCII,一个属性。图形方式12h的起始地址<br>为A000:0000),将这些数据存入scr.dat.<br>&nbsp; &nbsp; W.EXE则不停显示scr.dat中相应格式的屏幕数据,同时响应WM_KEYDOWN和<br>WM_KEYUP,获得用户按键。将键值存入key.dat。<br>&nbsp; &nbsp; 你先试一下,看能否帮上忙:)<br><br>&nbsp; &nbsp;
 
抱歉,各位,我来晚了。<br><br>YYSUN:我没有解决这问题,而是遇到一个更致命的问题。那段DOS程序做了大量的PORT读写,<br>在WINNT下,CONSOLE MODE作PORT读写有问题。(原计划,这段写PORT的代码没包括在程序<br>中,但现在发现实在分不开),基于这问题,我们停止了这段代码的改造。<br><br>AUTOMN说的对,在此时,我钻了牛角尖。<br><br>根据各位朋友的指点,仅仅就技术上看,综合各家观点,如下几种解决方案:<br>一,用重新定向:IKNOW/YYSUN/ANOTHER-EYES的方案。也是我尝试的方案。最后,不好意思,<br>我没调出来。并且发现,自己原来连:[DOS程序]和[WINDOW的CONSOLE程序]到底是有什么<br>不一样,都没明白。再看到那代码,只是糊涂的想吐的感觉。<br><br>二,TSR程序:龙丹/HEXI/AKJU/REBOOT的方案。没有真正写代码,但可以想象,会遇到的问题<br>很多。<br><br>三,用VXD,AMO的方案。<br><br>我的结论是:<br>如果各位在今后的项目中,遇到有WINDOW程序和CONSOLE程序密切相关/配合的设计方案,<br>千万慎重。不容易实现。<br><br>需要代码的,可以给我写信:TIANHAI@HOTMAIL。COM<br><br>歪就歪站在如来佛前,回首当年,从CONSOLE PIPE,到TSR,又到VXD,从砸馆子,闹山门<br>一根烧火棍,挥来使去,仍是那有凤来仪的俗套,到如今,一无所获。深觉作PROGRAMMER的<br>无趣。不禁潸然泪下,倒头便拜:佛祖慈悲,弟子愚顽不堪,难蒙教化,而今倒也领悟:一个<br>空字了得。罢了,罢了。<br><br>歪就歪不关这个帖子。<br><br><br><br>
 
老歪:你可以问问你们总部的人罗!
 
made,我就不信做不出来,等!
 
哈哈哈!又有难倒歪就歪的时候,<br>你的说法中有多处错误,我给你纠正一二,<br>所谓高手,即不是给人家打下手的,不在谁人作的不象样的程序上去进行无耐的改进,<br>高手向来就是从重再来,并留下若干小虫,让别人给改的。<br>只有我等才作这种讨厌的事,可能力有限,又作不好,嗨!……<br><br>你这个问题没辙,重新作吧,总改别人的也不是办法,而且DOS本身的问题,也使得你的各种想法不且实际。<br><br>以前在DOS下写驻留程序,自己管理键盘到没有什么,<br>但你这样……,<br>想不出如何是好。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
885
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
570
import
I
顶部