^_^请注意,有可能下面的2篇文章才是您想要的东西:
1、DOS批处理命令-引数取得
2、kindeditor 小记

DEVICE_EXTENSION设备扩展

自述:这种结构体广泛应用驱动程序中.根据不同的驱动程序需要,它负责补充定义设备的相关信息.

文章源地址:http://blog.csdn.net/hazy/archive/2005/09/15/481705.aspx

设备扩展(DEVICE_EXTENSION)是与设备对象相关的另一种重要的数据结构。可以用它来保存与特定设备关联的信息。设备扩展其实只是一个未分页的池,由驱动开发者来定义它的大小和内容。并由I/O管理器自动把它分配给设备对象,即设备对象的PVOID DeviceExtension字段。由于此结构是驱动开发者自定义的,所以必须要让系统知道需要给此结构预留多少空间,因此要把设备扩展结构的大小作为参数传递给IoCreateDevice函数。I/O管理器的IoCreateDevice函数将为设备对象和设备扩展对象在非分页内存池内申请内存。 设备扩展一般要包括设备对象的反向指针、设备状态或驱动程序环境信息等,

它的布局类似于如下结构: 
typedef struct _DEVICE_EXTENSION{

    PDEVICE_OBJECT pDevice;
    UNICODE_STRING ustrDeviceName; //设备名称
    UNICODE_STRING ustrSymLinkName; //符号链接名
}DEVICE_EXTENSION,*PDEVICE_EXTENSION;

 

设备扩展的内容依赖特定的驱动程序,应该根据驱动程序的需要来定义。 设备扩展主要用来维护设备状态信息、存储驱动程序使用的内核对象或系统资源(如自旋锁)、保存驱动程序需要的数据等。由于大多数的总线驱动、功能驱动和过滤器驱动都要工作在任意线程上下文,即任意线程都可能成为当前线程,所以,设备扩展是保存设备状态信息和数据的主要空间。 每一个实现了ISR的驱动程序都要存储中断对象(一种内核对象)指针,大部分的驱动程序把它们存储在设备扩展里。每一个标准的驱动程序函数在接收一个IRP时,同时接收到的还有一个指向申请该IO操作的设备对象的指针,此函数能够通过此指针访问到相应的设备扩展。 另外,上一层的设备扩展都保存一个指向下一层设备对象的指针(如上述结构中的PDEVICE_OBJECT LowerDeviceObject字段)作为调用IoCallDriver函数的参数。 

 



提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文

返回脚本百事通首页      如果您喜欢脚本编程技术,欢迎加入QQ群:246889341,在群里认识新朋友和交流技术^_^

DOS批处理命令-引数取得

参数传递对程序来说,是一个很重要的事情,所以,获得传递的参数是很重要的,接下来,我们来探讨下获得传递的参数的N种方式。

1、%N  获得传递的第N个参数(N最大为9)

就是传递过去的参数原样值(并且忽略前后导空格)

@echo off
echo %1

运行结果为(a.bat canshu)

canshu

2、%~1  也就是说,把第一个参数的引用字符串给去掉(两段的引号),如果只有一侧有的话,就删除有的那一侧。

すべての引用句 (") を削除して、%1 を展開します。

例如:

"1"2"?1"2    "1"2?1"2    1"2"?1"2    1"2?1"2

@echo off

echo %~1

运行结果:

F:\tmp>a.bat "1"2"
1"2

3、%~f1   获取参数1指定的路径的全路径/如果是只指定文件名的话,就是当前路径 + 参数1表示的全路径名

%1 を完全修飾パス名に展開します。

例如参数1是C:\Users\liuhongying\tmp\test.txt的时候,结果就是C:\Users\liuhongying\tmp\test.txt

例如当前路径是F:\tmp\,传递的参数是1234,那么,得到的结果就是F:\tmp\1234

@echo off

echo %~f1

运行结果:

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
C:\Users\liuhongying\tmp\test.txt

F:\tmp>a.bat 1234
F:\tmp\1234

那如果没有参数1的时候呢?输入结果是什么呢?然我们来看看

F:\tmp>a.bat
ECHO は <OFF> です。

也就是说,如果这个参数本身就不存在的时候,取得的东西就是空的了。

 

4、%~d1   获取参数1指定的路径的盘符名/如果只指定文件名,那么结果就是当前路径的盘符名

%1 をドライブ文字だけに展開します。

例如参数1是C:\Users\liuhongying\tmp\test.txt的时候,结果就是C:

例如当前路径是F:\tmp\,那么得到的结果就是F:

@echo off

echo %~d1

运行结果:

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
C:

F:\tmp>a.bat 1234
F:

那如果没有参数1的时候呢?输入结果是什么呢?然我们来看看

F:\tmp>a.bat
ECHO は <OFF> です。

也就是说,如果这个参数本身就不存在的时候,取得的东西就是空的了。

 

5、%~p1  获取参数1指定的路径的路径名/如果只指定文件名,那么结果就是当前文件的路径名

 %1 をパスだけに展開します。

例如参数1是C:\Users\liuhongying\tmp\test.txt的时候,结果就是\Users\liuhongying\tmp\

例如当前路径是F:\tmp\,那么得到的结果就是\tmp\

@echo off

echo %~p1

运行结果为:

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
\Users\liuhongying\tmp\

F:\tmp>a.bat 1234
\tmp\

那如果没有参数1的时候呢?输入结果是什么呢?然我们来看看

F:\tmp>a.bat
ECHO は <OFF> です。

也就是说,如果这个参数本身就不存在的时候,取得的东西就是空的了。

 

6、%~n1    获取参数1指定的路径的文件名/如果只指定文件名,那么结果就是这个文件名

%1 をファイル名だけに展開します。

例如参数1是C:\Users\liuhongying\tmp\test.txt,那么路径的文件名是test

@echo off

echo %~n1

运行结果:

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
test

F:\tmp>a.bat test.txt
test

 

7、%~x1  就是表示文件的扩展名(包括分隔符的句点)

%1 をファイル拡張子だけに展開します。

@echo off

echo %~x1

运行结果

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
.txt

F:\tmp>a.bat test.txt
.txt

 

8、%~s1 获取指定路径的短路径

展開されたパスは、短い名前だけを含みます。

什么短路径呢?短路径就是使用一种命名规范来缩短表示路径的长度。

短路径名实在DOS下的命名规则
在DOS中,主文件名的长度不能超过8个字符
如果超过了8个 系统自动截取前6个字符,然后加上~1
如果前6个字符一样了,那么路径名就按照字符串排序,然后就依次使用~2,~3

例如路径名为C:\Users\liuhongying\tmp\test.txt短路径就是C:\Users\LIUHON~1\tmp\test.txt

@echo off

echo %~s1

运行结果

F:\tmp>a.bat C:\Users\liuhongying\tmp\testtesttest.txt
C:\Users\LIUHON~1\tmp\testtesttest.txt

由此看来,短路径只是缩短路径部分。

 

9、%~a1 获取参数1指定的文件的属性(如果文件不存在,结果就是空的)

%1 をファイル属性に展開します。

@echo off

echo %~a1

运行结果

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
--a--------

*这里a代表的是存档文件属性,具体还有什么别的,在那个位置,如果以后有用到在总结吧。

 

10、%~t1  获得文件的更新日期和时间

%1 をファイルの日付/時刻に展開します。

@echo off

echo %~t1

运行结果

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
2013/07/27 01:38

11、%~z1  获得参数1指定文件的大小(byte数)

%1 をファイルのサイズに展開します。

@echo off

echo %~z1

运行结果

F:\tmp>a.bat C:\Users\liuhongying\tmp\test.txt
17

12、%~$PATH:1   在path指定的路径中检索参数1指定的文件,如果找到了就返回全路径,否则,就返回空。

@echo off
set PATH=C:\Users\liuhongying\tmp\
echo %~$PATH:1

执行结果

F:\tmp>a.bat test.txt
C:\Users\liuhongying\tmp\test.txt

@echo off
set PATH=C:\Users\liuhongying\
echo %~$PATH:1

执行结果

F:\tmp>a.bat tmp\test.txt
C:\Users\liuhongying\tmp\test.txt

由此可见,即path + 参数1拼成的字符串指定的文件如果存在,就返回该全路径。

F:\tmp>a.bat test.txt
ECHO は <OFF> です。

由以上运行结果可以看出,检索不包括下层目录。可以进一步验证上一个验证结果。

 

获取参数值的地方已经分析完了。

不过,这些方法可以有很多种组合方式。进一步的应用就要看你使用的灵活性了。



提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文

返回脚本百事通首页      如果您喜欢脚本编程技术,欢迎加入QQ群:246889341,在群里认识新朋友和交流技术^_^

kindeditor 小记

使用kindeditor  的过程中,遇到了几个问题

1. 如何从kindeditor的文本域中取值

2. 如何将值设置到文本域中去

 

 

首先,当然是把一个文本域变成一个kindeditor

从官网下载整个包,引入需要的js css文件自然不用多言

    <link href="../../Content/KinderEditor/themes/default/default.css" rel="stylesheet" />
    <link href="../../Content/KinderEditor/plugins/code/prettify.css" rel="stylesheet" />
    <script src="../../Content/KinderEditor/kindeditor.js"></script>
    <script src="../../Content/KinderEditor/lang/zh_CN.js"></script>
    <script src="../../Content/KinderEditor/plugins/code/prettify.js"></script>


    <script>
        KindEditor.ready(function (K) {
            var editor1 = K.create('#content1', {
                cssPath: '../plugins/code/prettify.css',
                uploadJson: '../asp.net/upload_json.ashx',
                fileManagerJson: '../asp.net/file_manager_json.ashx',
                allowFileManager: true,
                afterCreate: function () {
                    var self = this;
                    K.ctrl(document, 13, function () {
                        self.sync();
                        K('form[name=example]')[0].submit();
                    });
                    K.ctrl(self.edit.doc, 13, function () {
                        self.sync();
                        K('form[name=example]')[0].submit();
                    });
                }
            });
            prettyPrint();
        });
    </script>
View Code

在body中添加一个文本域

<textarea id="content1" cols="100" rows="8" style="width: 700px; height: 300px; visibility: hidden;" runat="server"></textarea>

 

问题1:如何从kindeditor的文本域中取值

   根据文档说,kindeditor能够进行样式展示,是用的iframe实现的,那么其实可以通过将iframe转换为dom对象,然后用contentwindow方式直接获取对应的值

  不过根据官网文档,只要  self.sync();   这样就同步了,通过  editor1.text(); 可以直接取得对应的值,如果取含有标签的,则可以通过 editor1.html(); 取得

  很方便吧。但凡用kindeditor,这是肯定要用的,所以就不截代码了

问题1:如何将值设置到文本域中去

  其实第一个问题解决了之后,后边的就简单了

  假设在使用jquery 那么

 

 $(function () {
                            $.get("xxxx", "", function (str) {
                                editor1.text(str);
                            })
                        });

 

bug仍在调试中,所以暂时写这个最简单的

 



提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文

返回脚本百事通首页      如果您喜欢脚本编程技术,欢迎加入QQ群:246889341,在群里认识新朋友和交流技术^_^

更多内容如下:


Powered by 脚本百事通 © 2013  粤ICP备13007878号-1  155120699@qq.com