Articles of c + +

当用户试图打开一个新的实例时,返回到一个已经打开的应用程序

这是我一直未能弄清楚的问题。 防止第二个实例是微不足道的,并且有很多方法,但是,将已经运行的过程带回来不是。 我想要: 最小化:撤销最小化并将运行实例放在最前面。 在其他窗口后面:将应用程序放在前面。 我使用的语言是VB.NET和C#。

使用native / C ++代码在VS2010中创build一个简单的COM对象最简单的方法是什么?

这是我之前发布的一个问题的后续(见这里 )。 我试图从HTML页面中运行Javascript调用我的本地/ C + +代码。 引用问题的答案是创build一个COM对象。 然后,Javascript可以创build一个COM对象的实例,并调用它获取本地/ C ++代码的方法。 所以现在我只剩下试图创build一个简单的COM对象来接受来自Javascript的调用。 看起来要走的路是创build一个DLL,并把该COM对象在该DLL中。 多年以前,我在COM上做了大量的阅读,并且从那时起就试图忘记它:)现在我很头痛,想知道如何在不成为COM方面的专家的情况下轻松解决这个问题。 有一个简单/简单的方法来build立一个DLL的COM对象,你会推荐? 编辑:我的应用程序是使用本机C ++ / Win32 / MFC编写的。 我有一个MFC对话框,它使用IE ActiveX浏览器控件来渲染本地生成的HTML。 目前,button处理程序的代码都是在Javascript中,但正如您从引用的问题中可以看到的,我的目标是在C ++端处理它。

你如何直接从物理内存中读取?

在C或C ++(窗口)中,如何通过给物理(而不是虚拟)地址来读取RAM? 这意味着不需要通过虚拟内存系统(mmu表),而是针对一个进程。 我已经知道API ReadProcessMemory (从大多数培训人员使用的ram读取),但它只适用于特定的进程。 我在MSDNsearch,发现设备\ PhysicalMemory似乎给这种可能性,但我没有find实际的例子,这个function似乎已经被Windows服务包closures(以解决一些漏洞)。 我知道这是可能的,因为WinHex可以做到这一点(如果你select“工具”>“打开内存”>“物理内存”)。 然后,它将显示RAM内容从0x00000000到your_ram_size,就像打开传统文件时一样。 它需要pipe理员权限,但没有驱动程序安装(这意味着WinHex从用户模式)。 编辑:添加有关操作系统的信息。

在Windows 10通用C ++模块中如何访问Accelerometer?

我有一个Java应用程序,它使用C ++模块的本地接口来访问本机APIfunction。 该程序运行在具有加速计的Windows 10平板电脑上。 我想访问传感器输出并将其传递给Java程序。 windows模块是使用VC 2015社区版和最新的Windows 10 sdk编译的通用“Win32”模块。 这是甚至可能或通过他们全新的基于c#.net和xaml“编码”的“通用应用程序”系统的唯一途径? 我想订阅传感器事件,并接收callback或队列或pipe道尾部的数据。

使用C#检索完整的进程列表

我正在尝试编写一个C#程序来检索一个完整的进程列表。 然而,我发现一个应用程序打开一个窗口,但我没有看到它在Windows任务pipe理器的进程选项卡,我看到它在任务选项卡。 另外,我也无法使用我的C#代码获取它的信息。 static void showProcesses() { Process[] procs = Process.GetProcesses(); foreach (Process proc in procs) { Console.WriteLine(proc.ProcessName); } } 我浏览了很多论坛,但是我只能find隐藏进程的方法,而且我没有find任何显示隐藏进程的方法。 有没有人有想法如何检索隐藏的过程信息?

从Windows服务启动Web浏览器

是否有可能从Windows服务启动Web浏览器? 我在C#中创build了一个基本服务,并将其安装在“LocalSystem”安全configuration文件下。 该服务的代码如下所示: namespace Bootloader { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { string target = "http://www.microsoft.com"; System.Diagnostics.Process.Start(target); } protected override void OnStop() { } } } 当服务运行时,没有任何反应。 有关Windows服务的文档说,他们没有任何用户界面,但这是否意味着启动Web浏览器是不可能的。

使用c#检查工作站locking/解锁更改

DUPLICATE: 如何以编程方式确定我的工作站是否被locking? 如何检测(在运行时)Windows用户何时locking其屏幕(Windows + L)并再次解锁。 我知道我可以在全球范围内跟踪键盘input,但是可以用环境variables来检查这样的事情吗?

打开显示和杀死屏幕保护程序

给定一个Windows 8(.1)计算机,具有以下电源选项: 和屏幕保护程序configuration为: 目标是以编程方式打开显示器并“屏蔽”屏幕保护程序(以便在空闲时间后重新启动屏幕保护程序)。 (请注意,根据设置,可能只有屏幕保护程序处于打开状态,或者在屏幕保护程序为1分钟后显示屏幕完全closures)。 我所尝试的是: SendMessage(HWND_Broadcast, WM_SysCommand, SC_MONITORPOWER, (LPARAM) – 1); 与…结合 // From Microsoft's Knowledge Base article #140723: // http://support.microsoft.com/kb/140723 // "How to force a screen saver to close once started // in Windows NT, Windows 2000, and Windows Server 2003" public static void KillScreenSaver() { IntPtr hDesktop = OpenDesktop("Screen-saver", 0, false, DESKTOP_READOBJECTS […]

如何检测何时使用C#插入可移动磁盘?

我只关心Windows,所以不需要关于单声道兼容性或类似的东西。 我还应该补充说,我正在编写的应用程序是WPF,如果可能,我宁愿避免对System.Windows.Forms进行依赖。

在Windows中通过重命名覆盖文件随机失败

我有一个文本文件,我想通过将其重写到临时文件,然后覆盖原来编辑。 这段代码并没有做到这一点,因为它简化了,但它确实包含了我的问题。 在Windows上,如果重命名函数失败,那么EXAMPLE.TXT文件将在似乎随机数的运行后消失。 我不知道为什么,但到目前为止,它在Linux上运行良好。 为什么会发生这种情况?我怎样才能解决这个问题呢?比如在程序中覆盖原始文件而不重命名? 此外还有哪些更好的方法? 这个方法在Windows上有其他的缺陷,比如程序在调用remove的时候被closures了,但是在重命名之前,这在Linux上不会有问题(在删除remove之后)? #include <stdio.h> #include <assert.h> int main(int argc, char *argv[]) { unsigned int i=0; FILE *fileStream, *tempStream; char fileName[] = "EXAMPLE.TXT"; char *tempName = tmpnam(NULL); while(1) { printf("%u\n",i++); assert(fileStream = fopen(fileName, "r+")); assert(tempStream = fopen(tempName, "w")); fprintf(tempStream,"LINE\n"); fflush(tempStream); /* fclose alone is enough on linux, but windows will sometimes […]