Articles of winapi

CreateProcessasuser – AccessViolationError

我正尝试使用createProcessasUser从windows服务(LocalSystem)启动一个Gui托盘应用程序 – 就像这样: public static System.Diagnostics.Process StartProcessInSession(int sessionID, String commandLine) { IntPtr userToken; if (WTSQueryUserToken(sessionID, out userToken)) { //note that WTSQueryUserToken only works when in context of local system account with SE_TCB_NAME IntPtr lpEnvironment; if (CreateEnvironmentBlock(out lpEnvironment, userToken, false)) { StartupInfo si = new StartupInfo(); si.cb = Marshal.SizeOf(si); si.lpDesktop = "winsta0\\default"; si.dwFlags = STARTF.STARTF_USESHOWWINDOW; si.wShowWindow […]

套接字:客户端无法连接到其他计算机/服务器

我有一个问题,到目前为止,我不知道如何通过它。 我已经通过Windows套接字创build了标准的服务器和客户端,它在我的电脑上工作正常(如果我运行服务器,然后运行客户端,他们连接),但我不知道如何使其工作也服务器运行时,我的电脑上朋友(他运行服务器部分),客户端在我的电脑上启动。 他的IP:192.168.1.6我的IP:192.168.1.2为什么我不能连接到我的服务器应用程序运行在他的机器上? 它应该工作吗? 除了build立连接之外,我还必须做些什么吗? 服务器: // C++ from Visual Studio 2008 Pro Edition //#include "stdafx.h" #include #include #include #include //#pragma comment(lib, "ws2_32.lib") //not necessary becouse additional dependency added to linker // Microsoft Development Environment 2003 – Version 7.1.3088 // Copyright (r) 1987-2002 Microsoft Corporation. All Right Reserved // Microsoft .NET Framework 1.1 – Version […]

如何使用C / C ++以编程方式检查Windows系统文件夹?

如何使用C / C ++以编程方式检查Windows系统文件夹? 我想检查我的代码用户select的文件夹是一个系统/ Windows文件夹或不? 我尝试使用方法GetFileAttributesEx / GetFileAttributes,但它不工作。 默认。 所有的Windows文件夹都将FILE_ATTRIBUTE_SYSTEM属性设置为true。

无法恢复最小化窗口

我正在使用本机C和win32 API的应用程序框架。 编写处理程序,根据用户的操作在框架中放置一个拥有的窗口。 到目前为止我有: case WM_WINDOWPOSCHANGED: GetWindowRect(hwnd, &rect); SetWindowPos( hexp, HWND_TOP, rect.left + 5, rect.top + 30, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE ); 它工作很好,除了我似乎不能从最小化的状态恢复它。 我search了论坛,并尝试了一些与SC_RESTORE处理程序的事情包括: case SC_RESTORE: ShowWindow(hwnd, SW_RESTORE); SetForegroundWindow(hwnd); BringWindowToTop(hwnd); // Doesn't work 我也试过: case SC_RESTORE: SendMessage(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0); // no luck either 似乎没有任何工作。 我现在必须右键单击并select应用程序最小化时的还原。 任何线索将是最受欢迎的。 **更新**我发现了一个改进。 首先不确定使用WM_WINDOWPOSCHANGED事件来操纵很多窗口是个好主意。 该系统似乎触发了很多。 同时,我还在使用它,我决定检查窗口是否最小化。 看起来系统正在继续检查位置变化,同时最小化。 这显然是任务栏挂起。 现在工作好多了,谢谢。 […]

如何使一个DLL延迟取决于另一个DLL?

当build立一个DLL,如何使一个DLL延迟取决于另一个DLL? 我需要设置任何东西吗?

CV符号是什么意思?

我有一个说,有简历符号的DLL。 我检查了CV代码视图,但想知道更多关于这个符号格式。 它如何比较PDB格式?

如何设置TaskDialog中的默认button?

我在Win32应用程序中使用TaskDialog API。 我用YES / NObutton创build了一个任务对话框,但是我找不到任何选项将Nobutton设置为默认值。 YESbutton始终是默认值。 请让我知道是否有办法将默认设置为NObutton。 我知道TaskDialogIndirect支持默认的button选项,但它是我想要做的矫枉过正。 我只想要一个简单的YES / NO对话框,默认为NObutton。 我不想使用MessageBox API,因为我不想在标题栏中closuresbutton。 谢谢, 阿希奈

线程安全和AfxMessageBox

AfxMessageBox函数线程安全吗? 我看到在AfxMessageBox后面调用AfxGetMainWnd() – > GetSafeHwnd()和CCmdTarget :: GetRoundingFrame _() – > GetSafeHwnd()的MFC代码,我想知道它的线程安全性。 如果我有多个GUI线程,是否可以从其中任何一个调用AfxMessageBox?

使用WH_JOURNALRECORD并取消似乎返回WM_CANCELJOURNAL

我正在使用C#,并且我已经使用WH_JOURNALRECORD使用SetWindowsHookEx成功logging日志消息。 当我们停下来时,我的问题就来了。 该文件显示,如果用户按下CTRL-ESC或CTRL-ALT-DELETE,则会发布WM_CANCELJOURNAL消息,以便我知道何时停止。 我的应用程序被WM_CANCELJOURNAL但我似乎从来没有得到一个WM_CANCELJOURNAL 。 我有两个钩子设置。 一个钩子做杂志logging和一个检查取消消息: IntPtr hinstance = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]); JournalRecordProcedure = JournalRecordProc; journalHook = SetWindowsHookEx(WH_JOURNALRECORD, JournalRecordProcedure, hinstance, 0); GetMessageProcedure = GetMessageProc; messageHook = SetWindowsHookEx(WH_GETMESSAGE, GetMessageProcedure, hinstance, 0); —— public static int JournalRecordProc(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode < 0) return CallNextHookEx(journalHook, nCode, wParam, lParam); EventMsgStruct msg = (EventMsgStruct) Marshal.PtrToStructure(lParam, typeof […]

使用PlayEnhMetaFile绘制带有Alpha通道的增强型图元文件

我试图将包含透明区域的增强图元转换为仅使用GDI函数的32位位图。 这有可能得到正确的alpha值吗? 以下将导致将每个像素的alpha值设置为0的32位位图: 首先,我使用GetDC(NULL)检索的屏幕DC,用CreateCompatibleDC(NULL)创build一个内存DC,用CreateCompatibleDC(NULL)一个HBITMAP 。 (后者产生一个32位位图的句柄。) 然后,我使用SelectObject将创build的位图select到内存DC中。 最后,我使用PlayEnhMetaFile将包含透明区域的增强图元文件绘制到内存DC中。