可能重复:
检查当前用户是否为管理员
我需要测试应用程序(用C#编写,运行os Windows XP/Vista/7)是否以管理员身份运行(如右键单击.exe - >以管理员身份运行,或在"属性"下的"可用性"选项卡中以管理员身份运行) .
我用Google搜索并搜索了StackOverflow,但我找不到可行的解决方案.
我最后一次尝试是这样的:
if ((new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator))
{
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个ListView(WinForms),我想在其中单击按钮上下移动项目.要移动的项目是被检查的项目.因此,如果选择第2,6和9项,当我按下按钮向上移动时,它们将变为1,5和8,并且这些位置上的项目向下移动一步.
我觉得我已经让这个变得不必要地变得复杂了,你可以在下面看到.每个ListViewItem的第二个SubItem是一个数字,代表它在列表中的位置(从1开始).
我责怪以下代码缺乏睡眠和咖啡,但如果你能想出一个更简单的方法来完成这个任务,我将感激不尽.
private void sourceMoveUpButton_Click(object sender, EventArgs e)
{
List<Int32> affectedNumbers = new List<Int32>();
bool foundNonChecked = false;
List<KeyValuePair<int, ListViewItem>> newList = new List<KeyValuePair<int, ListViewItem>>();
foreach (ListViewItem item in this.sourceListView.CheckedItems)
{
int newNum = int.Parse(item.SubItems[1].Text) - 1;
if (newNum >= 1)
{
foreach (ListViewItem testItem in this.sourceListView.Items)
{
if (int.Parse(testItem.SubItems[1].Text) == newNum && !testItem.Checked)
{
foundNonChecked = true;
}
}
if (foundNonChecked)
{
item.SubItems[1].Text = newNum.ToString();
affectedNumbers.Add(newNum);
}
}
}
foreach (ListViewItem item in this.sourceListView.Items)
{
int num = …Run Code Online (Sandbox Code Playgroud) 很久以前我被告知通过使用关键字内联并在头文件中写入正文来制作内联调用的简短函数/方法.这是为了优化代码,因此实际的函数调用没有开销.
今天它看起来如何?现代编译器(在本例中为Visual Studio 2010)是自动内联这样的短函数还是自己仍然"必要"?
有没有什么好的理由去学习Ada和COBOL等语言?这些语言的编程有未来吗?我对这些语言感兴趣,而且我现在正在学习它们只是为了好玩.
我想我知道内联关键字的作用(似乎我没有),但是对于今天的编译器(在我的情况下是Visual Studio 2012的C++编译器),它是否受到编译器的尊重,或者编译器是否忽略它并且内联它的方法认为好吗?
我有两个向量在三维空间中定义两个独立的点.一个是原点静态(0.0f,0.0f,0.0f),另一个是缓慢移动.根据这些数据,我需要得到一个(三维)方向向量,描述从移动点当前位置到原点的方向.
移动点将是一个定向光(3D游戏),总是神秘面对起源.我不需要任何代码,只需要有关如何计算向量的基本信息.
我有一个包含"原始"BGRA纹理的缓冲区,每种颜色一个字节.线条顺序相反(纹理颠倒).
BGRA缓冲区全部为绿色(0,255,0,255).
我需要将其转换为RGBA并翻转纹理线.我试过这个:
// bgra is an unsigned char*
int width = 1366;
int height = 768;
unsigned char* rgba = new unsigned char[width * height * 4];
for(int y = height - 1; y >= 0; y--)
{
for(int x = 0; x < width; x++)
{
rgba[(x * y * 4)] = bgra[(x * y * 4) + 2];
rgba[(x * y * 4) + 1] = bgra[(x * y * 4) + 1];
rgba[(x * y * …Run Code Online (Sandbox Code Playgroud) 我正在开发一个多平台项目.我想要一种简单快捷的方法来管理特定于操作系统的包含,最好不需要任何外部工具.
我想要这样的东西(我很清楚它不会起作用)
#define PLATFORM_A 1
#define PLATFORM_B 2
#ifndef TARGET_PLATFORM
//ERROR
#endif
#if TARGET_PLATFORM == PLATFORM_A
#define DIR "a"
#elif TARGET_PLATFORM == PLATFORM_B
#define DIR "b"
#define PLATFORM_INCLUDE(file) \
#include "platforms/" DIR "/" file
Run Code Online (Sandbox Code Playgroud)