Tag: windows

如何在系统空闲时运行.NET应用程序?

我用C#创建了一个.NET Windows应用程序。 我希望在系统空闲一段时间后执行此应用程序。 该应用程序是一个用户登录应用程序,即当系统空闲一段时间时,会出现一个登录页面,用户使用其用户名和密码登录。 然后只有用户可以继续使用该系统。 我怎样才能解决这个问题? 请帮忙,因为我是Windows应用程序的新手。 我想将应用程序作为Windows服务运行。 我设法在Windows服务启动时运行该应用程序。 但是,只有当系统在Windows服务中进入空闲状态时,如何才能触发应用程序运行? 我还需要在用户登录后再次启动计时器以再次检查空闲时间。 请提供一些代码示例。

如何以编程方式为管理员提供注册表项的所有权?

当我将一些机器升级到Windows 10时,我遇到了一个奇怪的问题,其中对RuntimeBroker的错误权限导致了问题。 我找到了一个在线解决方案 ,建议更改权限(首先在注册表中,然后在DCOM配置中),我正在尝试编写一个小型.NET应用程序来自动化该过程。 目前相关注册表项的所有者是NT SERVICE\TrustedInstaller ,我正在尝试将其更改为COMPUTER\Administrators 。 我有一个简单的WPF应用程序,其requestedExecutionLevel设置为“requireAdministrator”,但我仍遇到问题。 这是一段代码来说明问题: using System.Security.AccessControl; using System.Security.Principal; using Microsoft.Win32; namespace PermissionFixer { public class Fixer { public void Fix() { var subKey = Registry.ClassesRoot.OpenSubKey(@”AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}”, true); if (subKey != null) { var admins = new NTAccount(“Administrators”); var ac = subKey.GetAccessControl(); ac.SetOwner(admins); ac.AddAccessRule(new RegistryAccessRule(admins, RegistryRights.FullControl, AccessControlType.Allow)); subKey.SetAccessControl(ac); } } } […]

为什么svchost.exe终止我的C#应用​​程序?

出于某种原因,我的C#应用​​程序被svchost.exe终止,我试图理解为什么。 它正在静默终止应用程序,直到我使用Windows调试工具中的Gflags.exe打开Silent Process Exit日志记录。 它不常发生在我无法在(客户PC)上运行调试工具的机器上。 该活动并没有真正为我提供太多信息。 终止代码是805306369 = 0x30000001,但我似乎无法在网上找到任何有用的信息,告诉我如何解释这个数字。 我希望Silent Process Exit日志会对此有所了解,但现在我还有更多问题。 任何意见,将不胜感激。 感谢您的帮助! 这是有问题的事件: Log Name: Application Source: Microsoft-Windows-ProcessExitMonitor Date: 06/05/2013 04:12:17 PM Event ID: 3001 Task Category: None Level: Information Keywords: Classic User: SYSTEM Computer: PC Description: The process ‘C:\Users\Administrator\AppData\Local\MyApp.exe’ was terminated by the process ‘C:\Windows\System32\svchost.exe’ with termination code -805306369. The creation time […]

捕获截图包括.NET中的半透明窗口

我想要一个相对无黑客的方式来做这个,任何想法? 例如,以下截图不包括半透明窗口: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown Text = “Opaque Window” Dim win2 As New Form win2.Opacity = 0.5 win2.Text = “Tranparent Window” win2.Show() win2.Top = Top + 50 win2.Left = Left() + 50 Dim bounds As Rectangle = System.Windows.Forms.Screen.GetBounds(Point.Empty) Using bmp As Bitmap = […]

BitBlt屏幕截图无法在Windows 10上运行

我正在使用此代码在后台捕获进程窗口: IntPtr = Process.GetProcessByName(“memu”)[0].MainWindowHandle; RECT rc; GetClientRect(hwnd, out rc); IntPtr hdcFrom = GetDC(hwnd); IntPtr hdcTo = CreateCompatibleDC(hdcFrom); int Width = rc.right; int Height = rc.bottom; Bitmap bmp = null; IntPtr hBitmap = CreateCompatibleBitmap(hdcFrom, Width, Height); if (hBitmap != IntPtr.Zero) { IntPtr hLocalBitmap = SelectObject(hdcTo, hBitmap); BitBlt(hdcTo, 0, 0, Width, Height, hdcFrom, 0, 0, CopyPixelOperation.SourceCopy); SelectObject(hdcTo, […]

如何知道用户帐户是否存在

我如何知道我的Windows操作系统(Vista)上是否存在用户帐户? 我需要来自未加入任何域的独立计算机的此信息。 我想知道用户是否属于某个组,例如是否是“管理员”组的用户“管理员”部分?

用剪贴板选择句子的一部分而不是整个句子

我想要我的程序,而不是选择返回的整个句子,如果复制了那个句子的一部分也是可能的。 这是我的代码: protected override void WndProc(ref Message m) { base.WndProc(ref m); //check if current operation is a clipboard if (m.Msg == WM_DRAWCLIPBOARD) { //then we use a try catch block so if //anything wrong happens in Clipboard.GetText() our program wont crash try { //with foreach we go through all our questions foreach (string question in […]

C#.net winforms应用程序Sessionending事件

当我关闭系统时, SystemEvents.SessionEnding事件没有被触发…

在C#中打开文件拒绝访问

我试图读取文本文件的内容,但我得到’System.UnauthorizedAccessException’类型的’访问路径被拒绝’例外。 我尝试过以下方法: 以管理员模式运行 检查文件是否为只读 检查文件是否隐藏 检查文件是否完全控制所有用户 我的代码: private async void MyButton_Click(object sender, RoutedEventArgs e) { string path = @”fullpath\TextFile.txt”; await Task.Run(() => { string text = File.ReadAllText(path); }); }

在Windows XP上,如何枚举系统显示的所有窗口(C#)

我想最终得到所有可见(包括最小化)窗口的列表(或数组或其他)。 我找到了2个类似的问题,这些问题并没有给我提供我想要的东西: – 确定哪些窗口位于alt-tab列表中 – 在另一个用户的会话中列出窗口 谢谢。