小编c00*_*0fd的帖子

将CreateWaitableTimer设置为不存在的日期/时间时会发生什么?

2013年的夏令时(美国)于3月10日星期日凌晨2:00开始.因此,现在是2013年3月9日,我在已创建的等待计时器句柄上调用以下API:

FILETIME ftWhen = //Points as absolute time to March 10th, 2013, at 2:10 AM
SetWaitableTimer(hTimer, ftWhen, 0, NULL, NULL, TRUE);
Run Code Online (Sandbox Code Playgroud)

March 10th, 2013, 2:10 AM 是一个不存在的时间,因为时间将提前一小时调整,而不是凌晨2点,它将是凌晨3点.

所以我的问题是,我的计时器会发生什么?(我似乎无法找到此案例的文档.)

c++ winapi timer dst

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

try.cat块内的Response.Redirect异常

说,我有一个try/catch块封装了一大块代码,然后在其中的某个地方我需要调用Response.Redirect:

protected void ButtonGo_Click(object sender, EventArgs e)
{
    try
    {
        using(lockingMethod)
        {
            //Code...

            //Somewhere nested in the logic
            Response.Redirect(strMyNewURL);

            //More code...
        }
    }
    catch(Exception ex)
    {
        LogExceptionAsError(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下发生的是Response.Redirect抛出一个异常,一些关于终止线程的事情,我认为这是该方法的"正常事件流",但它会记录在我LogExceptionAsError的错误中.所以我很好奇,有没有办法让Response.Redirect不抛出异常?

.net c# asp.net exception

6
推荐指数
2
解决办法
8295
查看次数

在使用WIX卸载时如何避免"应关闭以下应用程序"消息?

我尝试使用WIX编写MSI安装程序.在卸载过程中,我需要运行一个专门的自定义操作,首先停止我的服务,然后关闭应用程序.我在InstallInitialize事件发生后使用以下标记来做到这一点:

<CustomAction Id='myCustomAction' BinaryKey='myDll' DllEntry='msiUninstallInitialize' Execute='deferred' Impersonate='no' />

<InstallExecuteSequence>
    <Custom Action='myCustomAction' After='InstallInitialize'></Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

问题是,如果我的应用程序的先前版本在我尝试使用我的MSI升级到较新版本之前运行,我会收到一个重新启动管理器弹出此消息:

在此输入图像描述

然后这一个:

在此输入图像描述

为了阻止它,我添加了以下属性:

<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
Run Code Online (Sandbox Code Playgroud)

但现在卸载程序显示此窗口:

在此输入图像描述

所以我很好奇,如果我的应用程序正在运行,有没有办法禁用检查(我会在自定义操作处理期间自己关闭它)?

windows windows-installer wix

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

Windows事件查看器锁定了我的EXE文件

我很好奇.我正在开发Windows服务并将所有诊断事件记录到Windows事件日志中.因此,当服务运行时,我打开事件查看器(来自管理工具)以查看我的服务操作的结果.

除了我需要卸载程序的时候(这也是出于测试目的),这非常有用.出于某种奇怪的原因,事件查看器会锁定我的服务的.exe映像文件,因此卸载程序无法删除它错误代码ERROR_SHARING_VIOLATION:

The process cannot access the file because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)

这只发生在Vista和更高版本的操作系统上,似乎不是XP的问题.

知道如何让事件查看器释放文件锁吗?(我问的是程序化的方法.我显然可以手动关闭它,但那不是我想要的.)

c++ windows winapi event-viewer

6
推荐指数
2
解决办法
3535
查看次数

如果我删除 &lt;br /&gt; 等标签中的空格,会有什么不同吗?

我不断寻找这个问题的不同答案。有些人说它使标记与旧版 Web 浏览器不兼容 - 并引用 Netscape :) 因此,我想重新表述今天(2014 年)的问题,如果我删除标签中的空格,例如是否会对<br />Web 浏览器产生影响?

html

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

通过Windows脚本宿主以UTF-8编码运行JScr​​ipt或VBScript文件的问题

我不确定我做错了什么,但是Windows Script Host如果我将它保存在.js带有UTF-8编码的文件中,我似乎无法运行以下JScript :

var name = "Hello world!";
WScript.echo(name);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它给了我这个错误:

在此输入图像描述

请注意,如果我使用ANSI编码保存脚本,脚本运行正常.

Windows Script Host引擎不兼容的UTF-8编码?

windows vbscript wsh utf-8 jscript

6
推荐指数
2
解决办法
2541
查看次数

如何从Chrome扩展程序中检查HTML元素是否符合要求

我正在编写一个Chrome扩展程序,它需要在注入contenteditable我的上下文脚本的页面上检测HTML元素(或用户可以键入的元素).

我现在正在这样做:

var objAll = document.getElementsByTagName("*");
for(var i = 0; i < objAll.length; i++)
{
    obj = objAll[i];

    if(obj.contentEditable &&
        obj.contentEditable != 'inherit' &&
        obj.contentEditable != 'false')
    {
        //Yes, this is a content editable element!
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的方法似乎并不适用于我测试过的所有网站.

我很好奇,我在那里错过了什么?

PS.因为它是一个内容脚本,所以我没有使用jQuery来使其更加健壮.

html javascript css contenteditable google-chrome-extension

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

是否有一种从桌面删除快捷方式的特殊方法?

我使用IShellLink接口在桌面上创建了一个快捷方式(.lnk)文件,类似于本页底部描述的代码.

所以我的假设是删除这个快捷方式我可以简单地在.lnk文件上调用DeleteFile,但显然它是不够的...如果我这样做,我得到一个看起来像这样的快捷方式文件的残余:

在此输入图像描述

但有趣的是,如果我浏览桌面文件夹中的文件,比如使用Windows资源管理器,那么.lnk文件实际上并不存在.我看到的是桌面GUI界面上的一些工件.

知道如何删除快捷方式(微软想要它的方式吗?)

c++ windows winapi desktop-application shortcut

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

如何判断文件夹是否是递归文件夹副本的子文件夹?

我正在尝试实现一个文件夹复制方法,该方法调用FindFirstFileFindNextFile在循环中,可以在任何子文件夹上递归调用自身.

为了防止明显的无限循环,我需要确保目标文件夹不是源文件夹的子文件夹.问题是如何做到这一点?我的想法是将DOS路径转换为特定于设备的路径(需要了解如何),但似乎还有更多.

所以我正在测试它的情况:

我将My Documents文件夹设置为重定向到网络共享\\Server\Home\UserA\Documents,加上该文件夹也映射到R:客户端计算机上的驱动器.这意味着所有以下文件夹:

"R:\Documents\Subfolder1"
"\\Server\Home\UserA\Documents\Subfolder1"
"C:\Users\UserA\Documents\Subfolder1"
Run Code Online (Sandbox Code Playgroud)

从技术上讲,指向相同的物理位置,即子文件夹My Documents.

问题是如何可靠地了解这一点?

c++ windows filesystems winapi

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

如何使用复选标记正确测量和显示所有者绘制的上下文菜单项?

我只是想在我的上下文菜单中添加小颜色样本(通过TrackPopupMenu API 显示.)这是我想要实现的Photoshop版本:

在此输入图像描述

据我所知,默认菜单不支持它.顺便说一句,上面的样本(没有颜色样本)是通过这样做生成的:

MENUITEMINFO mii = {0};
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_FTYPE | MIIM_ID | MIIM_STATE | MIIM_STRING;
mii.fType = MFT_STRING;
mii.wID = ID_1_MARKER_01 + m;
mii.dwTypeData = L"Marker";
mii.cch = TSIZEOF(L"Marker");
mii.fState = m == 1 ? MFS_CHECKED : MFS_ENABLED;
if(m == 2)
    mii.fState |= MFS_GRAYED;

VERIFY(::InsertMenuItem(hMenu, ID_1_BEFORE, FALSE, &mii));
Run Code Online (Sandbox Code Playgroud)

所以我发现我需要使用MFT_OWNERDRAW样式自己绘制菜单项,但这就​​是问题的开始.

我更改了代码以显示我的菜单:

MENUITEMINFO mii = {0};
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_FTYPE | MIIM_ID | MIIM_STATE;
mii.fType = MFT_OWNERDRAW;
mii.wID = ID_1_MARKER_01 + m; …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi mfc contextmenu

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