小编Joh*_*ith的帖子

如何以编程方式检索Excel工作表中的页数?

我不是在寻找工作表的数量.我正在寻找每个工作表中的总页数.

.net c# excel worksheet excel-interop

2
推荐指数
1
解决办法
411
查看次数

是否可以发送 WM_COPY 消息来复制剪贴板以外的其他地方的文本?

这是方法定义:

  [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int msg, IntPtr lparam, IntPtr wparam);
Run Code Online (Sandbox Code Playgroud)

这是对 SendMessage 的调用:

 //WM_COPY = 0x0301
 SendMessage(handle, WM_COPY, IntPtr.Zero, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

这是我检索数据的方式:

string text = System.Windows.Forms.Clipboard.GetText();
Run Code Online (Sandbox Code Playgroud)

我想做同样的事情,只是我不想将数据复制到剪贴板。是否可以将数据复制到内存中的其他部分?如果是这样,如何?

.net c# winapi sendmessage

2
推荐指数
1
解决办法
3437
查看次数

在控制台应用程序中,什么是防止命令行参数中的特殊序列被转义的最佳方法?

我编写了这个控制台应用程序,它读取一系列命令行参数并对它们执行某些操作.

问题是,如果用户输入如下内容:

 --folder "C:\my folder\" --username john
Run Code Online (Sandbox Code Playgroud)

args Main函数的String数组将有2个元素而不是4个:

1st element: "--folder"
2nd element: "C:\my folder\" --username john"
Run Code Online (Sandbox Code Playgroud)

(\"序列作为双引号转义.)

由于不使用引号会产生5个元素......

--folder C:\my folder\ --username john

1st element: --folder
2nd element: C:\my
3rd element: folder\
4th element: --username
5th element: john
Run Code Online (Sandbox Code Playgroud)

...解决这个问题的最佳方法是什么?

.net c# command-line console-application command-line-arguments

2
推荐指数
1
解决办法
136
查看次数

wcsncpy_s函数会导致缓冲区溢出吗?

我试图了解wcsncpy_s函数如何工作以及它如何防止缓冲区溢出.首先,根据MSDN,此函数的参数意味着以下内容:

strDest =目标字符串.

numberOfElements =目标字符串的大小.

strSource =源字符串.

count =要复制的字符数,或_TRUNCATE.

现在考虑这段代码:

wchar_t a[5];
wcsncpy_s(a, 10, L"ABCDEFGHIJKLMNOPQRSTUVWXYZ", 9);

printf("%d\r\n", sizeof(a));//10
printf("%d\r\n", wcslen(a));//9
wprintf(L"%s", a);//ABCDEFGHI
Run Code Online (Sandbox Code Playgroud)

如果我理解这一切,"a",它应该最多包含4个宽字符和一个空终止符,现在可以容纳9个宽字符.

现在,以下代码将导致我的应用程序因调试断言失败而突然终止(VS 2005编译器):

wchar_t a[5];
wcsncpy_s(a, 10, L"ABCDEFGHIJKLMNOPQRSTUVWXYZ", 10);

printf("%d\r\n", sizeof(a));
printf("%d\r\n", wcslen(a));
wprintf(L"%s", a);
Run Code Online (Sandbox Code Playgroud)

有人可以解释上面的代码,以及wcsncpy_s应该如何防止缓冲区溢出?

c++ buffer-overflow visual-c++

1
推荐指数
1
解决办法
4821
查看次数

如何选择使用默认命名空间的节点?

XML文件的结构大致如下:

<?xml version="1.0" encoding="UTF-8"?>
<a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="url1" xsi:schemaLocation="url2 url3">
   <b>
     <c></c>
     <c></c>
     <c></c>
   </b>
</a>
Run Code Online (Sandbox Code Playgroud)

我的目标是选择所有“c”元素,但以下 xpath 表达式不起作用:“//a/b/c”。

IE:

XmlDocument doc= new XmlDocument();
doc.Load(filepath);
XmlNodeList l = doc.SelectNodes("//a/b/c"); // 0 nodes
Run Code Online (Sandbox Code Playgroud)

我测试过的唯一有效的 xpath 表达式是 /*(1 个节点)和 //*(所有节点)。

这个问题是否与 XML 命名空间有关?如果是这样,设置 XMLDocument 对象的正确方法是什么?

        XmlDocument doc= new XmlDocument();
        doc.Load(filepath);
        XmlNamespaceManager m = new XmlNamespaceManager(doc.NameTable);
        m.AddNamespace(/* what goes here? */);
        XmlNodeList l = doc.SelectNodes("//a/b/c", m);
Run Code Online (Sandbox Code Playgroud)

c# xml xpath xsd xml-namespaces

1
推荐指数
1
解决办法
1759
查看次数

在http请求中加密登录凭据的正确方法是什么?

如果我需要对需要登录凭据的站点进行HttpRequest,我可以使用类似于以下的代码,但是你可以看到用户名和密码只是base64编码,这意味着如果有人要拦截http请求全部他们要做的是搜索与"授权"标题相关联的值,并且他们有我的登录信息.

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://...");

        request.Headers.Add("Authorization",
        string.Format("Basic {0}", Convert.ToBase64String(Encoding.Default.GetBytes(
        string.Format("{0}:{1}", username, password)))));

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream s = response.GetResponseStream())
            {
                using (StreamReader r = new StreamReader(s))
                {
                    DoSomething(r.ReadToEnd());
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

以下代码是更好的替代方案,还是使用"基本"授权标头发出http请求?

        WebClient wc = new WebClient();
        wc.Credentials = new NetworkCredential(username, password);
        DoSomething(wc.DownloadString("https://..."));
Run Code Online (Sandbox Code Playgroud)

如果两个代码都没有导致http请求"隐藏"登录凭据,并且实际上有一种方法可以"隐藏"它们,那么正确的方法是什么?

.net c# security credentials httprequest

1
推荐指数
1
解决办法
5031
查看次数

在 java 中使用 == 运算符比较 Class&lt;T&gt; 对象是个好主意吗?

在 .NET 中,在比较 Type 对象时我可以不用 == 。是否可以使用相同的运算符来比较 Java 中的 Class 对象,还是应该始终使用 equals() 方法?

java reflection

1
推荐指数
1
解决办法
310
查看次数

如何将.zip文件中的ColdFusion文件存储转换为.war文件编译Coldfusion代码?

我下载了Coldfusion 10,打开了ColdFusion管理员,按照这些步骤,我最终得到的结果是一个250 MB .war文件,与我试图转换的.zip文件无关.我显然错过了pointcompile然后包.有人可以帮忙吗?

  1. 打开ColdFusion管理员.
  2. 在"存档名称"字段中指定存档文件的唯一名称(无扩展名).
  3. 单击添加.将出现"添加新存档"屏幕.
  4. 在"添加新存档"屏幕上指定存档设置.
  5. 单击"创建" ColdFusion在指定的应用程序分发目录中创建EAR或WAR文件.

coldfusion zip war

-2
推荐指数
1
解决办法
458
查看次数