小编CDs*_*ace的帖子

有没有办法以编程方式将ApartmentState设置为STA?

我在PowerShell中使用GUI,在点击某些组合框时我会抛出错误.

抛出错误后,我可以放下组合框列表并看到它的内容,但是如果我转移到同一个数据网格视图上的另一个combox,我会在看到下拉列表之前得到相同的初始错误.

我在TechNet PowerShell论坛中发布了这个,并获得了在单线程单元(STA)中运行GUI所需的答案.默认情况下,PowerShell在MTA中运行,但您可以-STA在调用时使用该开关覆盖此(在v2.0中)powershell.exe.

但是,我的GUI只是调用默认的PowerShell应用程序(在MTA模式下),所以我的问题是,有没有办法以编程方式从我的GUI /脚本内部设置apartmentstate?

如果没有,我的下一次尝试将是检测公寓状态并尝试从我的gui的初始加载重新启动我的GUI,例如:

powershell.exe -STA myguiprog.ps1
Run Code Online (Sandbox Code Playgroud)

编辑:

所以我的工作方式有效:

if ([threading.thread]::CurrentThread.GetApartmentState() -eq "MTA") {
    & $env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -sta $MyInvocation.ScriptName
}
Run Code Online (Sandbox Code Playgroud)

.net powershell sta

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

如何从字符串中删除字符的最后一个实例

我正在使用StringBuilder构建一个字符串.

StringBuilder Q = new StringBuilder();
Q.Append("INSERT INTO ");
Q.Append(_lstview_item);
Q.Append(" VALUES");
Q.Append("("); 
for (i = 0; i < col_no; i++)
{
    Q.Append("'");
    Q.Append(col_value[i]);
    Q.Append("'");
    Q.Append(",");
} 
Q.Append(")");
string query = Q.ToString();
Run Code Online (Sandbox Code Playgroud)

但是,","我的字符串结束了.我试过用

string query = ext.Substring(0, ext.LastIndexOf(",") + 1);
Run Code Online (Sandbox Code Playgroud)

去除剩余",",但这也删除了")".

如何仅删除最后一个逗号?

实际结果:INSERT INTO .... VALUES('1','2','3',)

期望的结果:INSERT INTO .... VALUES('1','2','3')

c# asp.net string trim character

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

获取Windows服务启动类型?

System.ServiceProcess命名空间中,是否有任何类型的枚举或其他直接成员来确定服务的启动类型(自动,延迟自动,按需,禁用)ServiceController

我的想法是使用.NET框架类库的该命名空间(或其他命名空间)的可用成员来确定该事物,而不是查看操作系统注册表或WMI以获取服务的启动类型,因为我可以这样做,我我只是问.NET框架是否公开了一种更简单的方法来确定那件事.

用VB.Net编写的伪代码,但我也可以管理C#方法:

Public Shared Function GetStartType(ByVal svcName As String) As ServiceControllerStatus

    Dim svc As ServiceController = (From service As ServiceController In ServiceController.GetServices()
         Where service.ServiceName.Equals(svcName, StringComparison.OrdinalIgnoreCase)
        ).FirstOrDefault

    If svc Is Nothing Then
        Throw New ArgumentException("Any service found with the specified name.", "svcName")
    Else
        Using svc
            ' Note that StartTypeEnumValue does not exists.
            Return svc.StartTypeEnumValue
        End Using
    End If

End Function
Run Code Online (Sandbox Code Playgroud)

.net vb.net windows-services servicecontroller

6
推荐指数
3
解决办法
8069
查看次数

Python 日志记录创建空文件

我正在使用 python 的日志记录工具。如果有要记录的内容,我只想创建一个日志文件。换句话说,如果没有要记录的内容,则不应创建任何日志文件。

立刻

logging.basicConfig( filename=filename_log, level=logging.DEBUG, mode='w')
Run Code Online (Sandbox Code Playgroud)

运行时,会创建一个空的日志文件。我尝试在退出之前删除它:

if ( os.stat( filename_log ).st_size == 0 ): os.remove( filename_log)
Run Code Online (Sandbox Code Playgroud)

这给出了一条错误消息:

WindowsError: [Error 32] The process cannot access the file because it is being used by another process
Run Code Online (Sandbox Code Playgroud)

所以我想之前应该做一些其他的事情。

那么,有没有办法在不编写自己的日志记录程序的情况下不生成空日志文件?

简而言之:

logging.basicConfig( filename=filename_log, level=logging.DEBUG, mode='w')
logging.debug('This message should go to the log file')
Run Code Online (Sandbox Code Playgroud)

确实记录正确,但如果没有要记录的内容,则会提供一个空文件。和

with open( filename_log, 'w') as logfile:
    logging.basicConfig( stream=logfile, level=logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)

给出: ValueError: I/O operation on closed file

python logging

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

跨平台SSO - 从哪里开始?

我正在调查两个不同系统之间单点登录的选项:一个.NET,一个Java EE.它们各自独立管理,并具有单独的用户管理,以及一些重叠的用户.

我希望能够在不重新提示输入密码的情况下从一个链接到另一个.

似乎SSO产品和协议有很多选择.我相当自信我可以编写一次性的代码来生成和验证我自己的安全令牌,但我不想重新发明轮子.

在方法和/或产品(最好是开源)方面,您会建议什么?

首先,你会选择支持SAML,OpenID,OAuth或以上都不支持的东西吗?

其次,在那里的免费/开源产品中,我了解OpenAM,Shibboleth,JOSSO和CAS.有什么经验可以与他们分享,好,坏或难看?

.net josso java-ee single-sign-on

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

如何在Python中使用Regex删除HTML注释

我想从HTML文本中删除HTML注释

<h1>heading</h1> <!-- comment-with-hyphen --> some text <-- con --> more text <hello></hello> more text
Run Code Online (Sandbox Code Playgroud)

应导致:

<h1>heading</h1> some text <-- con --> more text <hello></hello> more text
Run Code Online (Sandbox Code Playgroud)

python regex

5
推荐指数
3
解决办法
4431
查看次数

如何合并两个列表并删除重复项

鉴于我有两个列表,如下所示:

var listA = new List<string> { "test1", "test2", "test3" };
var listB = new List<string> { "test2", "test3", "test4" };
Run Code Online (Sandbox Code Playgroud)

我想要第三个列表:

var listC = new List<string> { "test1", "test2", "test3", "test4"}
Run Code Online (Sandbox Code Playgroud)

有没有办法得到这个?

c# linq join list

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

C# .NET WPF 应用程序随机挂起 (WgxConnection_ShouldForceSoftwareForGraphicsStreamClient)

我使用以下库编写了一个 WPF .NET 应用程序 (.NET 4.5):

  • 系统.Windows.Interactivity.dll
  • Microsoft.Practices.ServiceLocation.dll
  • GalaSoft.MvvmLight.Platform.dll
  • GalaSoft.MvvmLight.Extras.dll
  • GalaSoft.MvvmLight.dll

我使用 2 个计时器:

  • System.Threading.DispatcherTimer(每 200 毫秒一次)

    • 只需将绑定到标签的 DateTime 属性设置为 DateTime.Now。
  • System.Timers.Timer(每秒滴答一次)

    • 将焦点设置到文本框,从 Web 服务请求数据(在异步任务中)
    • 更新绑定到 Datagrid 的 ICollectionView(使用 Application.Current.Dispatcher.BeginInvoke

该应用程序在大约 50 台 Windows 7 计算机上运行(从早上 7 点到下午 5 点)没有任何问题。

在只有 1 台 Windows 7 机器上,它只是随机冻结,CPU 使用率高且只有一个活动线程:WgxConnection_ShouldForceSoftwareForGraphicsStreamClient

Windows 事件日志中没有任何条目,也没有触发此事件的用户事件。

我找不到任何关于此的信息WgxConnection...有人有什么想法吗?

编辑:

刚刚找到片段“UnsafeNativeMethods.WgxConnection_ShouldForceSoftwareForGraphicsStreamClient();” 在 MediaSystem.cs 中: https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/windows/Media/MediaSystem.cs

--> wpfgfx_v0400.dll

也许“RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;” 可以改变行为吗?

.net c# wpf mvvm

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

使用angularjs-dragula的水平滚动问题

我正在使用angularjs-dragula,我无法自动滚动到屏幕隐藏的溢出容器.

这是我的问题:
我的拖拉机中有五个容器,第五个容器隐藏在屏幕上.现在我想从第一个容器中拖出一个元素并将其放在第5个容器中.但我无法做到这一点,因为屏幕不会自动滚动到第5个容器.

angularjs-dragula是否支持垂直滚动?或者是否有我失踪的财产?

示例Plunkr:https://plnkr.co/edit/iD38MugmHIx298p7OlrI ? p = preview

var app = angular.module('angular-dragula-demo', [angularDragula(angular)]);
app.controller('MainCtrl', function($scope, dragulaService) {
    dragulaService.options($scope, 'fifth-bag', {
        copy: true
    });
});
Run Code Online (Sandbox Code Playgroud)

angular-dragula

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

选择有间隔的行

我有一个带有 TimeIndexed 值的宽 Pandas 数据框,我想使用我制作的 Interval 对象进行选择:

inter = pd.Interval(pd.Timestamp('2017-12-05 16:36:17'),
                    pd.Timestamp('2017-12-05 22:00:00'), closed='left')
Run Code Online (Sandbox Code Playgroud)

我尝试了 loc 和 iloc 方法,但它们不接受 Interval 实例作为参数。

我可以这样测试时间戳是否在该间隔内:

pd.Timestamp('2017-12-05 22:00:00') in inter
Run Code Online (Sandbox Code Playgroud)

但我无法编写一行来选择数据帧的行。

python intervals dataframe pandas

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