问题列表 - 第30280页

当作为远程桌面应用程序运行时,Delphi TOpenDialog在Windows 2008中挂起

我有一个Delphi 2010 exe,它启动了第二个exe.在第二个exe中,有一个调用openDialog.execute的对话框.当它在远程桌面下的Windows 2008 Enterprise R2下运行,它会按预期运行,但是当作为远程应用程序运行时,只要弹出文件对话框,应用程序就会挂起,将所有应用程序窗口都变为白色.摆脱它的唯一方法是终止应用程序.我尝试用TFileOpenDialog替换TOpenDialog,结果是一样的.我已经考虑修改启动主应用程序的RDP文件,但是看不到任何会产生影响的参数.以前有没有人见过这种行为?


2010.07.13更新

这可以使用一个简单的例子重现.示例中有两个可执行文件.第一个是文件启动器,名为m_module.exe,它包含一个编辑,一个按钮和下面的代码.在单击启动按钮之前,我在编辑中更改可执行文件的名称以匹配第二个可执行文件:

procedure TForm1.Button1Click(Sender: TObject);
begin
     ShellExecute(Handle, 'open', stringToOLEstr(edit1.text) , nil, nil, SW_SHOWNORMAL) ; 
end;

procedure TForm1.FormShow(Sender: TObject);
begin
     edit1.text:=application.exename;
end;
Run Code Online (Sandbox Code Playgroud)

第二个可执行文件包含一个按钮,代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
     OpenDialog1.execute;
end;
Run Code Online (Sandbox Code Playgroud)

第一个模块是从RDP文件启动的.

2010.07.14更新

我发现如果我复制以下dll:

thumbcache.dll 
dtsh.dll 
wkscli.dll 
Run Code Online (Sandbox Code Playgroud)

从\ Windows\System32文件夹进入应用程序文件夹,问题就消除了.

我进一步发现将\ Windows\System32文件夹中这些dll的所有权和权限级别从TrustedInstaller更改为管理员组具有相同的结果(将它们复制到应用程序目录正在改变我认为的所有权和权限)

为了确认这一点,我确认如果我将所有权和权限级别更改回远离管理员组的TrustedInstaller,则会再次出现错误.

所以看来这是某种访问问题.也许这有助于发现问题的原因.

2010.07.18更新

一些可能有用的其他信息(由Embarcadero提供):

这篇关于GetWindowsDirectory的MSDN文章http://msdn.microsoft.com/en-us/library/ms724454%28VS.85%29.aspx记录了在终端服务下运行的应用程序的一些有趣行为.虽然没有直接调用GetWindowsDirectory,但每个用户的Windows系统目录的沙盒可能会导致某种问题.也许GetOpenFileNameA的调用链中的一个DLL试图引用真实系统目录中的真实DLL而不是沙盒,从而导致权限违规.这只是猜测,但值得研究.如果您能够在服务器上运行SysInternals Process Monitor或Process Explorer,您应该能够看到commdlg32和堆栈跟踪中的其他DLL被加载.

所有旧应用程序(即,未为终端服务或远程桌面服务创建的所有应用程序)都在应用程序兼容性层下运行.请参阅此MSDN文章http://msdn.microsoft.com/en-us/library/cc834995%28VS.85%29.aspx.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE标志在Windows.PAS中定义.出于测试目的,您可以将Windows添加到应用程序的PE头部,方法是将Windows添加到应用程序的USES部分,并在USES部分下面添加:

{$ SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}

这将导致您的应用程序绕过兼容层.我目前正在调查产生的进程(例如你的第二个exe)是否保留了在RDS下定义的应用程序的所有权限和设置.

windows delphi rda

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

在PHP中将项目推送到关联数组

我一直在尝试将项目推送到关联数组,如下所示:

$new_input['name'] = array(
    'type' => 'text', 
    'label' => 'First name', 
    'show' => true, 
    'required' => true
);
array_push($options['inputs'], $new_input);
Run Code Online (Sandbox Code Playgroud)

但是,而不是'name'作为键添加一个数字.还有另一种方法吗?

php arrays

80
推荐指数
6
解决办法
17万
查看次数

如何在受限服务器上安装Perl模块?

我有一台服务器,我可以进入,但就是这样.否则它完全与外界隔绝.我正在尝试部署我写给它的一些脚本,但它们有几个Perl依赖项(Params :: Validate,XML :: Simple等)我无法通过yum获取它们,因为我们的卫星服务器没有这些包并且正常的CPAN安装将不起作用,因为主机受到如此限制.移动模块源并进行编译非常繁琐.我已经这样做了一天多,试图解决依赖关系,看不到尽头.有没有办法解决?任何帮助是极大的赞赏.

perl cpan

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

从脚本标记中提取src属性并根据特定匹配进行解析

因此,我必须使用JavaScript确定专有CRM中的页面类型.确定页面类型(即前端唯一一致的差异)的唯一方法是检查src属性以/ modules /开头的脚本标记(在许多列表中).

在标题中的十几个脚本标记的列表中,每个页面都有以下格式的行

 <script src="/modules/example/includes/sample.js" type="text/javascript"></script> 
Run Code Online (Sandbox Code Playgroud)

现在,脚本标记的顺序永远不会相同,但是,总有一个脚本具有/ modules/blah.我需要提取blah到我的脚本可以检测它是什么样的页面.

那么,我如何使用JavaScript或jQuery提取脚本标记的src值,其中src以/ modules开头,然后将值('示例',在上面的示例中)存储为javascript变量?

javascript jquery parsing

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

在WPF中构建自定义主题或使用标准主题

很快成为一名专业的.NET开发人员(我希望),我开始深入研究Windows Presentation Foundation(WPF).看几个视频教程,我发现GU​​I的设计是一项艰巨的任务.必须在每种情况下,在每种情况下,为每个平台指定每种颜色,这似乎有点过分.在设计方面,如何使这个过程更简单,更通用?是否有任何模板可以开始,或者在设计看起来吸引人之前是否需要指定几百行XAML?

考虑下面的代码块......

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="LightGreen" />
    <Setter Property="Foreground" Value="DarkGreen" />
</Style>
Run Code Online (Sandbox Code Playgroud)

...遗漏了悬停和按钮样式的属性,需要额外的XAML行才能完成开发人员想要的操作.

可能有一个简单的XAML编辑器来提高生产力?如果没有,它只是挖掘XAML并开始构建样式,以备后续项目.

c# wpf desktop themes styles

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

寻找一种更优雅的方法来检查可以为空的值类型

要检查值类型是否可为空,我现在正在执行以下操作:

int? i = null;
bool isNullable = i.GetType().ToString().Contains("System.Nullable");
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c# nullable value-type

4
推荐指数
2
解决办法
260
查看次数

将本地主提交推送到远程分支

我一直在研究远程git存储库的本地克隆,将我的更改提交给我的本地主分支.现在,我想将我的提交推送到远程存储库.但是,我想保持我的本地提交与远程主分支分开,这样我就不会破坏任何东西.如何将本地提交推送到新的远程分支?

git

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

为什么尾随的%20(在这种情况下是有效数据)会杀死asp.net mvc路由

采取以下控制器操作

    public ActionResult NextBySURNAME(int id, string data)
    {
        //code to process the data and edit the id accoringly not written yet
        return RedirectToAction("Edit", new { id = id });
    }
Run Code Online (Sandbox Code Playgroud)

如果我用/ Mycontroller/NextBySURNAME/12/Smith%20Simon调用它

然后它工作正常(在这种情况下编辑记录12)但是

/ myController的/ NextBySURNAME/12 /史密斯%20

给了我一个404

现在我知道在某些情况下我的问题域尾随空白是很重要的,所以我不只是想修剪它.那为什么这会破坏我的路线呢?

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}/{data}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional, data=UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc routing asp.net-mvc-2

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

x87中的扩展(80位)双浮点,而不是SSE2 - 我们不会错过它?

我今天正在阅读研究人员发现NVidia的Phys-X库使用x87 FP与SSE2.显然,对于速度超过精度的并行数据集来说,这将是次优的.然而,文章作者继续引用:

英特尔在2000年末引入P4后开始不鼓励使用x87.AMD自2003年K8以来已弃用x87,因为x86-64定义为SSE2支持; VIA的C7自2005年以来一直支持SSE2.在64位版本的Windows中,x87不适用于用户模式,完全禁止在内核模式下使用.自2005年以来,业内所有人都推荐SSE超过x87,除非软件必须在嵌入式Pentium或486上运行,否则没有理由使用x87.

我想知道这件事.我知道x87内部使用80位扩展双精度值来计算值,而SSE2则不然.这对任何人都没关系吗?这对我来说似乎很惊讶.我知道当我对平面中的点,线和多边形进行计算时,在进行减法时,值可能出乎意料地错误,并且由于缺乏精度,区域可能会折叠并且线条会相互别名.我想,使用80位值与64位值可能会有所帮助.

这是不正确的?如果没有,如果x87被淘汰,我们可以用什么来执行扩展的双FP操作?

floating-point sse2 x87

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

当您拥有一个开发团队时,处理多个项目的最佳方法是什么?

敏捷/ Scrum是答案吗?Scrum如何处理这个问题?

一个产品负责人,一个产品积压与多个产品所有者和产品积压?

它对你有用吗?请分享你成功失败的故事?

我正在尝试将一个流程放在一起来管理多个工作队列,包括基础设施项目,简单的功能增强,然后是一个由6-7个开发人员组成的小型开发团队的大型项目.

agile scrum agile-processes

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