×

windowsgenericmsg

关于windowsgenericmsg的信息

admin admin 发表于2023-04-07 14:10:09 浏览83 评论0

抢沙发发表评论

本文目录一览:

windows10命令提示符的MSG命令的获取会话名称时的错误5、错误1722分别是什么意思?

windows10命令提示符的MSG命令的获取会话名称时的错误5、错误1722是设置错误造成的,解决方法为:

1、对于磁盘中的剩余的可用空间,可使用diskpart命令将其创建为分区。

2、在命令提示符窗口输入命令“create partition logical”。

3、按【Enter】键即可成功的将磁盘中的剩余的可用空间创建为分区。

4、使用“list volum”命令查看磁盘中的卷,即可看到新创建的卷4没有驱动器号。

5、在命令提示符窗口输入命令“select volume 4”,按【Enter】键选择卷并给予其焦点。

6、在命令提示符窗口输入命令“assign letter=F”,按【Enter】键即可成功将驱动号F分配给卷4。

windows无法停用Generic-MS/MS-Pro USB Device设备,原因是某个程序正在使用它。但我什么也没插?

如题。也就是说真的有程序在使用USB设备的文件。所以,办法就是找到访问的程序,然后关闭它,或关闭它所打开的文件。如果是您打开了USB设备的文件,则很容易知道和处理,以下常见的打开的文件但又不易发现的情况,请参考: -windowsgenericmsg

1.音乐视频播放器打开了

2.杀毒软件对访问的文件进行查杀

3.杀毒软件定时扫描

4.其他网络上的入侵或本机木马程序在访问

5.USB设备上本身有活动病毒文件正在被自动运行

6.在文件浏览器浏览USB设备文件

由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常。 (代码 31)这个怎么解决?

这是因为接口没有安装驱动。

1、首先需要在”控制面板“列表里,找到并点击名称为”设备管理器“按钮选项:

2、接着需要在接下来页面框中点击”网络适配器“,在其列表右击选择”更新驱动程序“按钮:

3、最后只需要在接下来弹出的页面框中点击”自动搜索更新的驱动程序软件“按钮选项即可解决问题:

Qt怎样处理Windows消息

Qt处理Windows消息的方法

一、用到的头文件和函数

首先,要想在Qt工程中处理Windows消息,你必须包含对应的Windows头文件windows.h。如果还需要用到一些扩展的组件,则还要包含windowsx.h。

此外,你需要实现继承自QWidget类的虚函数nativeEvent。这个函数名也很好记,即本地事件。注意,这是一个保护类型成员。

该函数的声明为

virtual bool

nativeEvent(const QByteArray eventType, void *message, long *result);

注意,在Windows平台上,事件类型标识为 "windows_generic_MSG",消息类型为MSG*,返回值类型为LRESULT。

二、示例

首先,我们在类中声明nativeEvent函数。

接着,我们对参数类型进行转换。

然后,就可以像往常一样通过switch来处理Windows消息了。

在此需要提醒大家注意的是,如果我们处理完相应的消息后,不再想让Qt执行默认的事件处理,就返回true,表示消息已处理;否则,就返回false,执行完指定的操作后再执行默认处理。

Qt的窗口消息处理函数是哪个

重写窗体的nativeEvent事件,就可以了。

示例代码:

函数声明:

protected:

bool nativeEvent(const QByteArray eventType, void *message, long *result);

函数定义:

bool GWSMainWindow::nativeEvent(const QByteArray eventType, void *message, long *result)

{

if (eventType == "windows_generic_MSG")

{

MSG* msg = reinterpret_castMSG*(message);

switch (msg-message)

{

case WM_COPYDATA:

{

COPYDATASTRUCT *copyData = (COPYDATASTRUCT*)msg-lParam;

int nDataSize = copyData-cbData;

if(nDataSize 0)

{

char* ch = new char[nDataSize];

memcpy(ch, copyData-lpData, nDataSize);

QString strMsg = QString::fromUtf8(ch);

delete [] ch;

m_msgList.append(strMsg);

int nIndex = m_msgList.count() - 1;

PostMessage((HWND)this-winId(), MYWM_HANDLECOPYDATA, copyData-dwData, nIndex);

}

return true;

}

case MYWM_HANDLECOPYDATA://自定义消息

{

return handleCopyDataMsg(msg-lParam, msg-wParam);

}

case MYWM_UPDATESOFTMGRICON:

{

int nCount = (int)msg-lParam;

m_pSysTitleWidget-updateSoftMgrIcon(nCount);

return true;

}

default:

return QWidget::nativeEvent(eventType, message, result);

}

}

else

return QWidget::nativeEvent(eventType, message, result);

}

高手进阶:给WINDOWS服务加上描述

;   当我们创建一个WINDOWS服务后 却发觉我们所创建的服务没有相关的描述 (你可以打开服务管理器程序查看) 而System ServiceProcess ServiceBase这些相关的类都没有提供这方面的信息 同样如果我们需要给我们的服务加上恰当的描述 我们也只能通过非托管代码来处理 -windowsgenericmsg

using System;using System Runtime InteropServices;

namespace FileWatchService{ public class modAPI {  [DllImport( advapi dll )]  public static extern int LockServiceDatabase(int hSCManager);   [DllImport( advapi dll )]  public static extern bool UnlockServiceDatabase(int hSCManager);   [DllImport( kernel dll )]  public static extern void CopyMemory(IntPtr pDst SC_ACTION[] pSrc int ByteLen);   [DllImport( advapi dll )]  public static extern bool ChangeServiceConfigA(   int hService ServiceType dwServiceType int dwStartType    int dwErrorControl string lpBinaryPathName string lpLoadOrderGroup    int lpdwTagId string lpDependencies string lpServiceStartName    string lpPassword string lpDisplayName);      [DllImport( advapi dll )]  public static extern bool ChangeServiceConfig A(   int hService InfoLevel dwInfoLevel    [MarshalAs(UnmanagedType Struct)] ref SERVICE_DESCRIPTION lpInfo);-windowsgenericmsg

[DllImport( advapi dll )]  public static extern bool ChangeServiceConfig A(   int hService InfoLevel dwInfoLevel    [MarshalAs(UnmanagedType Struct)] ref SERVICE_FAILURE_ACTIONS lpInfo);-windowsgenericmsg

[DllImport( advapi dll )]  public static extern int OpenServiceA(   int hSCManager string lpServiceName ACCESS_TYPE dwDesiredAccess);-windowsgenericmsg

[DllImport( advapi dll )]  public static extern int OpenSCManagerA(   string lpMachineName string lpDatabaseName ServiceControlManagerType dwDesiredAccess);-windowsgenericmsg

[DllImport( advapi dll )]  public static extern bool CloseServiceHandle(   int hSCObject);

[DllImport( advapi dll )]  public static extern bool QueryServiceConfigA(   int hService [MarshalAs(UnmanagedType Struct)] ref QUERY_SERVICE_CONFIG lpServiceConfig int cbBufSize    int pcbBytesNeeded);  [DllImport( advapi dll )]  public static extern int StartService(int SVHANDLE int dwNumServiceArgs string lpServiceArgVectors);-windowsgenericmsg

public const int STANDARD_RIGHTS_REQUIRED = xF ;  public const int GENERIC_READ = ;  public const int ERROR_INSUFFICIENT_BUFFER = ;  public const int SERVICE_NO_CHANGE = ;  //public const int SERVICE_NO_CHANGE = xFFFF;-windowsgenericmsg

public enum ServiceType  {   SERVICE_KERNEL_DRIVER = x    SERVICE_FILE_SYSTEM_DRIVER = x    SERVICE_WIN _OWN_PROCESS = x    SERVICE_WIN _SHARE_PROCESS = x    SERVICE_INTERACTIVE_PROCESS = x    SERVICETYPE_NO_CHANGE = SERVICE_NO_CHANGE  }-windowsgenericmsg

public enum ServiceStartType:int  {   SERVICE_BOOT_START = x    SERVICE_SYSTEM_START = x    SERVICE_AUTO_START = x    SERVICE_DEMAND_START = x    SERVICE_DISABLED = x    SERVICESTARTTYPE_NO_CHANGE = SERVICE_NO_CHANGE  }-windowsgenericmsg

public enum ServiceErrorControl:int  {   SERVICE_ERROR_IGNORE = x    SERVICE_ERROR_NORMAL = x    SERVICE_ERROR_SEVERE = x    SERVICE_ERROR_CRITICAL = x    msidbServiceInstallErrorControlVital = x    SERVICEERRORCONTROL_NO_CHANGE = SERVICE_NO_CHANGE  }-windowsgenericmsg

public enum ServiceStateRequest:int  {   SERVICE_ACTIVE = x    SERVICE_INACTIVE = x    SERVICE_STATE_ALL = (SERVICE_ACTIVE + SERVICE_INACTIVE)  }-windowsgenericmsg

public enum ServiceControlType:int  {   SERVICE_CONTROL_STOP = x    SERVICE_CONTROL_PAUSE = x    SERVICE_CONTROL_CONTINUE = x    SERVICE_CONTROL_INTERROGATE = x    SERVICE_CONTROL_SHUTDOWN = x    SERVICE_CONTROL_PARAMCHANGE = x    SERVICE_CONTROL_NETBINDADD = x    SERVICE_CONTROL_NETBINDREMOVE = x    SERVICE_CONTROL_NETBINDENABLE = x    SERVICE_CONTROL_NETBINDDISABLE = xA    SERVICE_CONTROL_DEVICEEVENT = xB    SERVICE_CONTROL_HARDWAREPROFILECHANGE = xC    SERVICE_CONTROL_POWEREVENT = xD    SERVICE_CONTROL_SESSIONCHANGE = xE   }-windowsgenericmsg

public enum ServiceState:int  {   SERVICE_STOPPED = x    SERVICE_START_PENDING = x    SERVICE_STOP_PENDING = x    SERVICE_RUNNING = x    SERVICE_CONTINUE_PENDING = x    SERVICE_PAUSE_PENDING = x    SERVICE_PAUSED = x   }-windowsgenericmsg

public enum ServiceControlAccepted:int  {   SERVICE_ACCEPT_STOP = x    SERVICE_ACCEPT_PAUSE_CONTINUE = x    SERVICE_ACCEPT_SHUTDOWN = x    SERVICE_ACCEPT_PARAMCHANGE = x    SERVICE_ACCEPT_NETBINDCHANGE = x    SERVICE_ACCEPT_HARDWAREPROFILECHANGE = x    SERVICE_ACCEPT_POWEREVENT = x    SERVICE_ACCEPT_SESSIONCHANGE = x   }-windowsgenericmsg

public enum ServiceControlManagerType:int  {   SC_MANAGER_CONNECT = x    SC_MANAGER_CREATE_SERVICE = x    SC_MANAGER_ENUMERATE_SERVICE = x    SC_MANAGER_LOCK = x    SC_MANAGER_QUERY_LOCK_STATUS = x    SC_MANAGER_MODIFY_BOOT_CONFIG = x    SC_MANAGER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED + SC_MANAGER_CONNECT + SC_MANAGER_CREATE_SERVICE + SC_MANAGER_ENUMERATE_SERVICE + SC_MANAGER_LOCK + SC_MANAGER_QUERY_LOCK_STATUS + SC_MANAGER_MODIFY_BOOT_CONFIG  }-windowsgenericmsg

public enum ACCESS_TYPE:int  {   SERVICE_QUERY_CONFIG = x    SERVICE_CHANGE_CONFIG = x    SERVICE_QUERY_STATUS = x    SERVICE_ENUMERATE_DEPENDENTS = x    SERVICE_START = x    SERVICE_STOP = x    SERVICE_PAUSE_CONTINUE = x    SERVICE_INTERROGATE = x    SERVICE_USER_DEFINED_CONTROL = x    SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED + SERVICE_QUERY_CONFIG + SERVICE_CHANGE_CONFIG + SERVICE_QUERY_STATUS + SERVICE_ENUMERATE_DEPENDENTS + SERVICE_START + SERVICE_STOP + SERVICE_PAUSE_CONTINUE + SERVICE_INTERROGATE + SERVICE_USER_DEFINED_CONTROL  }-windowsgenericmsg

[StructLayout(LayoutKind Sequential)]   public struct SERVICE_STATUS  {   public int dwServiceType;   public int dwCurrentState;   public int dwControlsAccepted;   public int dwWin ExitCode;   public int dwServiceSpecificExitCode;   public int dwCheckPoint;   public int dwWaitHint;  }   [StructLayout(LayoutKind Sequential)]   public struct QUERY_SERVICE_CONFIG  {   public int dwServiceType;   public int dwStartType;   public int dwErrorControl;   public string lpBinaryPathName;   public string lpLoadOrderGroup;   public int dwTagId;   public string lpDependencies;   public string lpServiceStartName;   public string lpDisplayName;  }-windowsgenericmsg

public enum SC_ACTION_TYPE:int  {   SC_ACTION_NONE =    SC_ACTION_RESTART =    SC_ACTION_REBOOT =    SC_ACTION_RUN_MAND =   }-windowsgenericmsg

[StructLayout(LayoutKind Sequential)]   public struct SC_ACTION  {   public SC_ACTION_TYPE SCActionType;   public int Delay;  }-windowsgenericmsg

public enum InfoLevel:int  {   SERVICE_CONFIG_DESCRIPTION =    SERVICE_CONFIG_FAILURE_ACTIONS =   }-windowsgenericmsg

[StructLayout(LayoutKind Sequential)]   public struct SERVICE_DESCRIPTION  {   public string lpDescription;  }-windowsgenericmsg

[StructLayout(LayoutKind Sequential)]   public struct SERVICE_FAILURE_ACTIONS  {   public int dwResetPeriod;   public string lpRebootMsg;   public string lpCommand;   public int cActions;   public int lpsaActions;  } }}-windowsgenericmsg

当我们给服务增加安装包时 我们可以在ProjectInstaller里加上我们修改服务描述的代码

private void InitializeComponent()  {

//这里要增加代码this AfterInstall += new System Configuration Install InstallEventHandler(this ProjectInstaller_AfterInstall);-windowsgenericmsg

}

private void ProjectInstaller_AfterInstall(object sender System Configuration Install InstallEventArgs e)  {-windowsgenericmsg

int iSCManagerHandle = ;   int iSCManagerLockHandle = ;   int iServiceHandle = ;   bool bChangeServiceConfig = false;   bool bChangeServiceConfig = false;   modAPI SERVICE_DESCRIPTION ServiceDescription;   modAPI SERVICE_FAILURE_ACTIONS ServiceFailureActions;   modAPI SC_ACTION[] ScActions = new modAPI SC_ACTION[ ];-windowsgenericmsg

bool bCloseService = false;   bool bUnlockSCManager = false;   bool bCloseSCManager = false;

IntPtr iScActionsPointer = new IntPtr();

try   {    //打开服务控制台    iSCManagerHandle = modAPI OpenSCManagerA(null null      modAPI ServiceControlManagerType SC_MANAGER_ALL_ACCESS);-windowsgenericmsg

    if (iSCManagerHandle )    {     throw new Exception( 不能打开服务管理器 );    }

    iSCManagerLockHandle = modAPI LockServiceDatabase(iSCManagerHandle);

    if (iSCManagerLockHandle )    {     throw new Exception( 不能锁定服务管理器 );    }

//服务名    iServiceHandle = modAPI OpenServiceA(iSCManagerHandle JadeWatchService      modAPI ACCESS_TYPE SERVICE_ALL_ACCESS);-windowsgenericmsg

    if (iServiceHandle )    {     throw new Exception( 不能打开服务进行修改 );    }        bChangeServiceConfig = modAPI ChangeServiceConfigA(iServiceHandle      modAPI ServiceType SERVICE_WIN _OWN_PROCESS | modAPI ServiceType SERVICE_INTERACTIVE_PROCESS      modAPI SERVICE_NO_CHANGE modAPI SERVICE_NO_CHANGE null null      null null null null);-windowsgenericmsg

    if (bChangeServiceConfig==false)    {     throw new Exception( 不能改变服务设置 );    }

    ServiceDescription lpDescription = 青鸟文件监控服务 如果停止该服务 数据将不能正常进行备份! ;

bChangeServiceConfig = modAPI ChangeServiceConfig A(iServiceHandle      modAPI InfoLevel SERVICE_CONFIG_DESCRIPTION ref ServiceDescription);-windowsgenericmsg

    if (bChangeServiceConfig ==false)    {     throw new Exception( 不能进行服务描述更改 );    } 

    ServiceFailureActions dwResetPeriod = ;    ServiceFailureActions lpRebootMsg = 服务启动失败! 重启中 ;    // ServiceFailureActions lpCommand = SomeCommand exe Param Param ;    ServiceFailureActions lpCommand = ;    ServiceFailureActions cActions = ScActions Length;-windowsgenericmsg

//故障恢复设置 这里没有设置    ScActions[ ] Delay = ;    ScActions[ ] SCActionType = modAPI SC_ACTION_TYPE SC_ACTION_NONE; //不要对失败操作做任何处理 如果重启服务等    ScActions[ ] Delay = ;    ScActions[ ] SCActionType = modAPI SC_ACTION_TYPE SC_ACTION_NONE;    ScActions[ ] Delay = ;    ScActions[ ] SCActionType = modAPI SC_ACTION_TYPE SC_ACTION_NONE;-windowsgenericmsg

    iScActionsPointer = Marshal AllocHGlobal(Marshal SizeOf(new modAPI SC_ACTION()) * );

    modAPI CopyMemory(iScActionsPointer ScActions Marshal SizeOf(new modAPI SC_ACTION()) * );

ServiceFailureActions lpsaActions = iScActionsPointer ToInt ();

    bChangeServiceConfig = modAPI ChangeServiceConfig A(iServiceHandle      modAPI InfoLevel SERVICE_CONFIG_FAILURE_ACTIONS ref ServiceFailureActions);-windowsgenericmsg

    if (bChangeServiceConfig ==false)    {     throw new Exception( 不能设置服务的故障恢复设置 );    }       }   catch(Exception ex)   {        throw new Exception(ex Message);   }   finally   {        Marshal FreeHGlobal(iScActionsPointer);-windowsgenericmsg

if (iServiceHandle )    {     bCloseService = modAPI CloseServiceHandle(iServiceHandle);    }

if (iSCManagerLockHandle )    {     bUnlockSCManager = modAPI UnlockServiceDatabase(iSCManagerLockHandle);    }-windowsgenericmsg

if (iSCManagerHandle != )    {     bCloseSCManager = modAPI CloseServiceHandle(iSCManagerHandle);    }   }     }-windowsgenericmsg

在安装完成后 我们对服务进行 这里可以修改的内容包括服务的描述 服务的故障处理等

如果你在安装时 需要对服务进行自动处于运行状态 或卸载时需要自动将服务也卸载 你只要注册

this beforeuninstall+=new InstallEventHandler(ProjectInstaller_BeforeUninstall);   this Committed+=new InstallEventHandler(ProjectInstaller_Committed);-windowsgenericmsg

这二个事件

mitted事件 在这里可以将安装的服务进行调整到运行状态

lishixinzhi/Article/program/net/201311/13252