我有一个JAVA类A,它有一个方法foo
abstract class A {
abstract void foo();
}
Run Code Online (Sandbox Code Playgroud)
我还有一个派生类A - MutableA.MutableA是一个单例对象,表示不需要更新,这对重用代码流很有用.永远不应该在MutableA上调用foo().实现这一目标的最佳方法是什么:
有人可以推荐我这种情况下的最佳做法是什么?
我有一个带有卷id的txt文件.
我需要从驱动器卷ID(Windows)获取驱动器信息(驱动器号,驱动器大小等):
卷ID采用以下格式:
\\?\Volume{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Run Code Online (Sandbox Code Playgroud)
驱动器可以是可移动/本地磁盘
检索信息无关紧要(可能是脚本,cpp,c#,java代码).
编辑:
我试图用DriveInfo,的Win32_LogicalDisk,Win32_Volume,Win32_PnpDevices - 但我找不到这个奇怪的ID ......在所有情况下的ID有differrent格式
更新:
找到了怎么做.
你可以像这样枚举Win32_Volume:
ManagementObjectSearcher ms = new ManagementObjectSearcher("Select * from Win32_Volume");
foreach(ManagementObject mo in ms.Get())
{
var guid = mo["DeviceID"].ToString();
if(guid == myGuid)
return mo["DriveLetter"];
}
Run Code Online (Sandbox Code Playgroud) 我们正在开发一个C#.NET Windows服务.
我们的服务在系统帐户下运行,我们正在尝试模拟登录用户USER.模拟工作正常,即在System.Security.Principal.WindowsIdentity.GetCurrent()模仿后调用时,我们会得到正确的用户'USER'.
问题是,当我们尝试访问用户配置文件时,我们无法获得预期的结果.一个例子是访问注册表CURRENT_USER.我们收到拒绝访问错误.当使用第三方函数时,我们假设它部分使用了注册表,我们获得了"真实"(模仿之前)用户的详细信息.此外,在呼叫时,Environment.ExpandEnvironmentVariables("%TEMP%")我们获取系统配置文件而不是登录用户配置文件.
有没有办法完全冒充不同的用户?我知道我们可以使用LoadUserProfile来获取特定的用户配置文件,但这对我们不利,因为我们正在运行使用当前用户配置文件的第三方dll.
我们的模拟代码就是基于此
我的问题与这个问题类似.
我试图只使用本地CRL检查撤销列表.
我使用X509Chain.Build()与以下参数:
var chainMachine = new X509Chain(true);
chainMachine.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chainMachine.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(30);
chainMachine.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
chainMachine.ChainPolicy.VerificationTime = DateTime.Now;
chainMachine.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
- RevocationStatusUnknown =>撤销功能无法检查证书的吊销.
- OfflineRevocation =>撤销功能无法检查证书的吊销,因为吊销服务器处于脱机状态.
奇怪的是,一旦我尝试在线检查撤销列表(因此CRL将被更新),问题就解决了.所以它看起来一旦缓存中有任何东西,问题就不能再复制了.
我认为可能错误消息不正确,实际发生的是当缓存为空时会出现一些异常导致此消息弹出.另一个选择是,可能有一些标志说明缓存是否已经更新,如果它从未更新过,它会尝试从外部服务器获取信息
任何人都可以指出这个问题的原因是什么?
我正在开发一个C#应用程序,需要检测用户是否以提升的管理员身份运行.我尝试了史蒂文建议的解决方案.
我在5台机器上检查了解决方案,它在4台机器上工作正常.
即使我将用户帐户控制设置为,也有一台机器永远不会显示UAC通知消息Always notify me.
检查该机器上的代码时,即使我选择了run as administrator它,它也不起作用,并且该方法IsProcessElevated返回false.
那台特定的机器有问题吗?
有没有办法在这种平台上确定用户是否升级?
我有一个字符串列表,我想以相同的方式格式化每个字符串.例如myListOfStrings = str1,str2,str3,我的格式是(%s)我想要这样的东西:
String.format(" (%s) ", myListOfStrings)
Run Code Online (Sandbox Code Playgroud)
会输出
(str1) (str2) (str3)
Run Code Online (Sandbox Code Playgroud)
这样做有一种优雅的方式吗?或者我是否必须使用字符串生成器并对所有字符串执行foreach循环?
我有一个与使用C#获取/设置"文件历史记录"(Windows 8)设置相关的问题
Windows提供了一个API 文件历史记录API,"允许应用程序读取和修改文件历史记录配置"
我正在写一个c#应用程序.
作为我的应用程序的一部分,我需要阅读用户的个人资料.
为了获得所有用户,我正在使用Registry.Users.GetSubKey().
问题是在Windows 8上HKEY_USERS只包含登录用户!(当有2个用户登录时,我会看到2个用户HKEY_USERS,但是如果其中一个用户将退出,那么将只有1个用户HKEY_USERS)
因此,我只为登录用户获取配置文件.
我试图搜索整个注册表以找到数据保存的位置,但我无法在任何地方找到这些信息....当用户注销时,信息似乎消失了.
是设计还是错误?
保存数据的位置 - 它必须在注册表中,但我找不到它...
它可能是权限中的东西吗?也许信息存在但是当用户没有登录时它被隐藏了?是否有标志或我可以用来读取未登录用户的配置文件?
我正在为Windows桌面开发.我希望将设备放在范围内,然后将其显示为用户列表.
这是我正在使用的代码:
HBLUETOOTH_DEVICE_FIND founded_device;
BLUETOOTH_DEVICE_INFO device_info;
device_info.dwSize = sizeof(device_info);
BLUETOOTH_DEVICE_SEARCH_PARAMS search_criteria;
search_criteria.dwSize = sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS);
search_criteria.fReturnAuthenticated = FALSE;
search_criteria.fReturnRemembered = FALSE;
search_criteria.fReturnConnected = TRUE;
search_criteria.fReturnUnknown = FALSE;
search_criteria.fIssueInquiry = FALSE;
search_criteria.cTimeoutMultiplier = 0;
founded_device = BluetoothFindFirstDevice(&search_criteria, &device_info);
if (founded_device == NULL)
{
_tprintf(TEXT("Error: \n%s\n"), getErrorMessage(WSAGetLastError(), error));
return -1;
}
do
{
_tprintf(TEXT("founded device: %s\n"), device_info.szName);
} while (BluetoothFindNextDevice(founded_device, &device_info));
return 0;
Run Code Online (Sandbox Code Playgroud)
我的问题是,在范围内的设备列表中,我总是得到记住的设备.即使fReturnRemembered设置为false.
我需要找到一种方法来获取范围内的设备,而不需要记住设备.
目前我正在做的是,我正在尝试打开一个套接字并尝试进行通信,但还有其他方法吗?
我开始用来cProfile描述我的python脚本.我注意到一些非常奇怪的事情.
当我time用来测量脚本的运行时间时需要4.3秒.
当我使用python -m cProfile script.py它需要7.3秒.
在代码中运行探查器时:
import profile
profile.run('main()')
Run Code Online (Sandbox Code Playgroud)
需要63秒!!
我可以理解为什么加分析时,它可能需要更多一点时间,但为什么会出现使用之间的这种差异cProfile来自外部或代码的一部分?我使用这么多时间有原因profile.run吗?