我只是想做这样的事情
(defun my-fun (reg-path)
"reads the value from the given Windows registry path."
...??...
)
Run Code Online (Sandbox Code Playgroud)
是否有一个内置的fn这样做?
或者是否有一个内置于Windows的命令行工具,我可以运行以检索reg值?
我想象的方式是在cscript.exe中运行一个完成工作的.js文件.
(defun my-reg-read (regpath)
"read a path in the Windows registry. This probably works for string
values only. If the path does not exist, it returns nil. "
(let ((reg.exe (concat (getenv "windir") "\\system32\\reg.exe"))
tokens last-token)
(setq reg-value (shell-command-to-string (concat reg.exe " query " regpath))
tokens (split-string reg-value nil t)
last-token (nth (1- (length tokens)) tokens))
(and (not (string= last-token "value.")) last-token))) …
Run Code Online (Sandbox Code Playgroud) 我看到了emacs 23.1发布的消息.
对于程序员来说,升级的重要原因是什么?我目前在22.2.
列出的所有功能对我来说都不是必须的.最直接有趣的是nXML现已集成.我已经拥有它了.
但我必须承认,我不知道"智能迷你缓冲区完成"或"每缓冲区文本缩放"背后的真正含义.
任何人都有这些东西的提示或例子吗?
我想知道是否有人可以解释一个令我疯狂的问题:
我正在写一个压缩解压缩测试类.为了测试它,我将数据集序列化为内存流,压缩它,解压缩并比较结果.
压缩很好,但是压缩是它碰到污垢的地方.这是解压缩功能:
public static Stream GetUncompressedStreamCopy(Stream inStream)
{
Stream outStream = new MemoryStream();
inStream.Position = 0;
DeflateStream uncompressStream = new DeflateStream(inStream,
CompressionMode.Decompress, true);
byte[] buffer = new byte[65536];
int totalread = 0;
int bytesread = 0;
do {
bytesread = uncompressStream.Read(buffer, 0, buffer.Length);
totalread += bytesread;
outStream.Write(buffer, 0, bytesread);
Console.WriteLine("bytesRead: [{0}]\t outStream.Length [{1}]",
bytesread, outStream.Length);
} while (bytesread > 0);
Console.WriteLine("total bytes read [{0}]", totalread);
outStream.Flush();
return outStream;
}
Run Code Online (Sandbox Code Playgroud)
对于大小为65536的缓冲区,解压缩的流总是返回比未压缩的小一个字节.
现在这让我想到了我正在与之争斗的第二个问题.对于某些缓冲区大小,uncompressStream.Read返回0,即使仍有压缩数据需要提取.
对于这些情况,deflateStream.Read(s)只在do {}循环中返回一次然后返回一个等于buffersize的未压缩流,如果你将buffersize增加一个字节,那么一切都很好(除了丢失的字节).
缓冲区大小为65536的输出:(原始未压缩数据为207833)
bytesRead: [65536] outStream.Length [65536]
bytesRead: …
Run Code Online (Sandbox Code Playgroud) CPAN对于Perl来说是一个非常有用的资源.
为什么没有针对.NET的CPAN?应该有吗?是否有其他编程或平台技术具有类似CPAN的基础架构?
编辑
没有人提到过这个问题:.NET中包含的C omprehensive基类库是否是您不希望看到类似CPAN的.NET的主要原因之一?我的意思是,有用于XML,HTTP,加密等的Perl库 - 但所有这些都包含在BCL开箱即用中.除了内置的FTP库之外,没有人需要另一个FTP库.
相关:PHP有CPAN吗?
我想滚动RichTextBox,以使插入符号大约位于RichTextBox的中间.
像RichTextBox.ScrollToCaret()之类的东西,除了我不想把插入符号放在最顶层.
我看到了Winforms:Caret Position的屏幕位置,当然也看到了Win32函数SetCaretPos().但我不确定如何将SetCaretPos所需的x,y转换为richtextbox中的行.
我想在 nmake 中如果我这样做:
example :
set value=77
echo %%value%%
Run Code Online (Sandbox Code Playgroud)
结果将在控制台上显示 77。
有没有办法让我调用 .cmd 或 .bat 文件来影响 nmake.exe 进程的环境?假设我将该语句放在set value=77
名为“setvalue.cmd”的文件中。然后将 makefile 更改为:
example :
setvalue
echo %%value%%
Run Code Online (Sandbox Code Playgroud)
我得到:
%value%
Run Code Online (Sandbox Code Playgroud)
或者,如果有一种方法可以在命令块中设置宏,那也可以。或者,一种从批处理文件设置宏值的方法,甚至在命令块之外也是如此。
假设我有一个Dictionary<String, Tuple<T1,T2>>
并且我想确定任何字典值是否具有T1的V1.我怎样才能最优雅地做到这一点?
LINQ?
我在C中写了一些WinHttp代码.我正在通过SSL发送请求,为了处理SSL错误,我正在注册一个WINHTTP_STATUS_CALLBACK函数,通过调用WinHttpSetStatusCallback并将dwNotificationFlags设置为WINHTTP_CALLBACK_STATUS_SECURE_FAILURE.
WINHTTP_STATUS_CALLBACK的文档说,当使用dwInternetStatus
= WINHTTP_CALLBACK_STATUS_SECURE_FAILURE 调用回调时,它表示
从服务器检索安全套接字层(SSL)证书时遇到一个或多个错误.lpvStatusInformation参数包含一个标志.有关更多信息,请参阅lpvStatusInformation的说明.
现在,该lpvStatusInformation
参数被输入为LPVOID.但是我从文档中的声明中得出它,在WINHTTP_CALLBACK_STATUS_SECURE_FAILURE的情况下它不被视为指针.
该文件lpvStatusInformation
说:
如果dwInternetStatus参数为WINHTTP_CALLBACK_STATUS_SECURE_FAILURE,则此参数可以是以下值之一.
......这些值是这些十六进制值之一:1,2,4,8,10,20,40.(见WinHttp.h)
这对我来说似乎很清楚.我不应该取消引用指针来获取值.所述 lpvStatusInformation
保持的十六进制值,而不是一个指针.
我能正确地解释这个吗?
我已经用这种方式编写了代码,并且它在过去也有用.我认为!但是现在我得到的lpvStatusInformation
是0x0104f288.这与任何十六进制值都没有任何关系.也不可能通过对可能的值进行OR运算来创建该值(尽管doc在同一个DWORD中没有说明多个状态项).它看起来像是指向我的指针.当我取消引用指针时,我得到0x8,这对应于WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA
,这至少是有道理的.
问题是,我应该取消引用该指针吗?
这是回调代码:
void CALLBACK Iirf_WinHttpSslStatusCallback( HINTERNET hInternet,
DWORD_PTR context,
DWORD code,
void * pInfo,
DWORD infoLength)
{
if (code == WINHTTP_CALLBACK_STATUS_SECURE_FAILURE) {
ConfigInfo * cfg = (ConfigInfo *) context; // app-specific structure
DWORD details = (DWORD) pInfo; // do not de-reference??
CHAR buffer[32];
CHAR * statusDescription = NULL;
switch (details) {
case …
Run Code Online (Sandbox Code Playgroud) 我有一个Windows窗体应用程序,它显示DataGridView中的对象列表.
此控件将bool值呈现为复选框.
对象属性中有一组三个相互排斥的复选框.最多其中一个可能是真的.因此,我希望复选框的行为类似于一组单选按钮.
只是老家伙的一个侧面评论:我认为这些天人们甚至不知道为什么这些被称为单选按钮.在过去,汽车中的收音机有4或5个按钮,按下任何一个按钮都会导致所有其他按钮弹出.它们是相互排斥的.这些天"单选按钮"可能不是一个有用的描述,因为无线电不再有这样的按钮,我不认为.
我该怎么做?我想如果我将"CheckedChanged"事件附加到复选框,我知道该行,我将能够找到所有其他复选框.
在首次渲染时,我可以挂钩什么事件来抓住复选框控件,以便我可以将CheckedChanged事件附加到它?我知道DataGridView.CellFormatting
,但我认为这是错误的,因为每次DataGridView绘制时都会调用它.我真的需要一个仅在第一次呈现DGV时调用的事件.
c# ×5
.net ×4
emacs ×2
winforms ×2
class-design ×1
collections ×1
cpan ×1
datagridview ×1
deflate ×1
generics ×1
linq ×1
nmake ×1
perl ×1
registry ×1
richtextbox ×1
windows ×1
winhttp ×1