精华内容
参与话题
问答
  • import win32api ImportError: DLL load failed: 找不到指定的程序

    报错信息

    (venv) D:\pyvenv_xlwings64\venv>pip list
    Package    Version
    ---------- -------
    comtypes   1.1.7
    pip        19.2.3
    PyQt5      5.13.1
    PyQt5-sip  4.19.19
    pywin32    225
    setuptools 41.2.0
    wheel      0.33.6
    xlwings    0.15.3
    
    (venv) D:\pyvenv_xlwings64\venv>python
    Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import xlwings
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "D:\pyvenv_xlwings64\venv\lib\site-packages\xlwings\__init__.py", line 42, in <module>
        from . import _xlwindows as xlplatform
      File "D:\pyvenv_xlwings64\venv\lib\site-packages\xlwings\_xlwindows.py", line 10, in <module>
        import win32api
    ImportError: DLL load failed: 找不到指定的程序。
    >>>
    

    问题原因

    224、225新版本发布的有问题,回退到223版本即可

    (venv) D:\pyvenv_xlwings64\venv>pip install pywin32==223
    Collecting pywin32==223
      Downloading https://files.pythonhosted.org/packages/9f/9d/f4b2170e8ff5d825cd4398856fee88f6c70c60bce0aa8411ed17c1e1b21f/pywin32-223-cp36-cp36m-win_amd64.whl (9.0MB)
         |████████████████████████████████| 9.0MB 218kB/s
    Installing collected packages: pywin32
    Successfully installed pywin32-223
    
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>pip list
    Package    Version
    ---------- -------
    comtypes   1.1.7
    pip        19.2.3
    PyQt5      5.13.1
    PyQt5-sip  4.19.19
    pywin32    223
    setuptools 41.2.0
    wheel      0.33.6
    xlwings    0.15.3
    
    (venv) D:\pyvenv_xlwings64\venv>python
    Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import xlwings
    >>> 
    
    展开全文
  • WIN API函数名索引

    千次阅读 2008-12-27 00:42:00
    WIN API函数名索引 大家都学过,只是有些想必都没有用过,甚至没见过吧.这里列出了功能和函数名.为的是需要的时候很方便. 注(不是MFC的) 1. API之网络函数 WNetAddConnection 创建同...

    WIN API函数名索引

    大家都学过,只是有些想必都没有用过,甚至没见过吧.这里列出了功能和函数名.为的是需要的时候很方便.

    注(不是MFC的)

    1. API之网络函数

    WNetAddConnection 创建同一个网络资源的永久性连接

    WNetAddConnection2 创建同一个网络资源的连接

    WNetAddConnection3 创建同一个网络资源的连接

    WNetCancelConnection 结束一个网络连接

    WNetCancelConnection2 结束一个网络连接

    WNetCloseEnum 结束一次枚举操作

    WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接

    WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接

    WNetEnumResource 枚举网络资源

    WNetGetConnection 获取本地或已连接的一个资源的网络名称

    WNetGetLastError 获取网络错误的扩展错误信息

    WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称

    WNetGetUser 获取一个网络资源用以连接的名字

    WNetOpenEnum 启动对网络资源进行枚举的过程

    2. API之消息函数

    BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口

    GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置

    GetMessageTime 取得消息队列中上一条消息处理完毕时的时间

    PostMessage 将一条消息投递到指定窗口的消息队列

    PostThreadMessage 将一条消息投递给应用程序

    RegisterWindowMessage 获取分配给一个字串标识符的消息编号

    ReplyMessage 答复一个消息

    SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口

    SendMessageCallback 将一条消息发给窗口

    SendMessageTimeout 向窗口发送一条消息

    SendNotifyMessage 向窗口发送一条消息

    3. API之文件处理函数

    CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等

    CompareFileTime 对比两个文件的时间

    CopyFile 复制文件

    CreateDirectory 创建一个新目录

    CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台

    CreateFileMapping 创建一个新的文件映射对象

    DeleteFile 删除指定文件

    DeviceIoControl 对设备执行指定的操作

    DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值

    FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值

    FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间

    FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构

    FindClose 关闭由FindFirstFile函数创建的一个搜索句柄

    FindFirstFile 根据文件名查找文件

    FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件

    FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区

    FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘

    GetBinaryType 判断文件是否可以执行

    GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数

    GetCurrentDirectory 在一个缓冲区中装载当前目录

    GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量

    GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息

    GetDriveType 判断一个磁盘驱动器的类型

    GetExpandedName 取得一个压缩文件的全名

    GetFileAttributes 判断指定文件的属性

    GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制

    GetFileSize 判断文件长度

    GetFileTime 取得指定文件的时间信息

    GetFileType 在给出文件句柄的前提下,判断文件类型

    GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息

    GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区

    GetFullPathName 获取指定文件的完整路径名

    GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母

    GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径

    GetOverlappedResult 判断一个重叠操作当前的状态

    GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值

    GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表

    GetPrivateProfileString 为初始化文件中指定的条目取得字串

    GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值

    GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表

    GetProfileString 为win.ini初始化文件中指定的条目取得字串

    GetShortPathName 获取指定文件的短路径名

    GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名

    GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用

    GetTempPath 获取为临时文件指定的路径

    GetVolumeInformation 获取与一个磁盘卷有关的信息

    GetWindowsDirectory 获取Windows目录的完整路径名

    hread 参考lread

    hwrite 参考lwrite函数

    lclose 关闭指定的文件

    lcreat 创建一个文件

    llseek 设置文件中进行读写的当前位置

    LockFile 锁定文件的某一部分,使其不与其他应用程序共享

    LockFileEx 与LockFile相似,只是它提供了更多的功能

    lopen 以二进制模式打开指定的文件

    lread 将文件中的数据读入内存缓冲区

    lwrite 将数据从内存缓冲区写入一个文件

    LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件

    LZCopy 复制一个文件

    LZInit 这个函数用于初始化内部缓冲区

    LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件

    LZRead 将数据从文件读入内存缓冲区

    LZSeek 设置一个文件中进行读写的当前位置

    MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间

    MoveFile 移动文件

    OpenFile 这个函数能执行大量不同的文件操作

    OpenFileMapping 打开一个现成的文件映射对象

    QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况

    ReadFile 从文件中读出数据

    ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调

    RegCloseKey 关闭系统注册表中的一个项(或键)

    RegConnectRegistry 访问远程系统的部分注册表

    RegCreateKey 在指定的项下创建或打开一个项

    RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数

    RegDeleteKey 删除现有项下方一个指定的子项

    RegDeleteValue 删除指定项下方的一个值

    RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx

    RegEnumKeyEx 枚举指定项下方的子项

    RegEnumValue 枚举指定项的值

    RegFlushKey 将对项和它的子项作出的改动实际写入磁盘

    RegGetKeySecurity 获取与一个注册表项有关的安全信息

    RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息

    RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制

    RegOpenKey 打开一个现有的注册表项

    RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数

    RegQueryInfoKey 获取与一个项有关的信息

    RegQueryValue 取得指定项或子项的默认(未命名)值

    RegQueryValueEx 获取一个项的设置值

    RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息

    RegRestoreKey 从一个磁盘文件恢复注册表信息

    RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件

    RegSetKeySecurity 设置指定项的安全特性

    RegSetValue 设置指定项或子项的默认值

    RegSetValueEx 设置指定项的值

    RegUnLoadKey 卸载指定的项以及它的所有子项

    RemoveDirectory 删除指定目录

    SearchPath 查找指定文件

    SetCurrentDirectory 设置当前目录

    SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾

    SetFileAttributes 设置文件属性

    SetFilePointer 在一个文件中设置当前的读写位置

    SetFileTime 设置文件的创建、访问及上次修改时间

    SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果

    SetVolumeLabel 设置一个磁盘的卷标(Label)

    SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构

    UnlockFile 解除对一个文件的锁定

    UnlockFileEx 解除对一个文件的锁定

    UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射

    VerFindFile 用这个函数决定一个文件应安装到哪里

    VerInstallFile 用这个函数安装一个文件

    VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称

    VerQueryValue 这个函数用于从版本资源中获取信息

    WriteFile 将数据写入一个文件

    WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调

    WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值

    WritePrivateProfileString 在初始化文件指定小节内设置一个字串

    WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值

    WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串

    posted @ 2008-12-27 00:42 麒麟子(Alex) 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 使用Win API创建工具栏

    千次阅读 2012-02-29 23:48:05
    作者:朱金灿来源:... 下面是创建一个标准工具栏的函数,(这里所谓标准工具栏是指工具栏按钮图片是WinSDK内置的)BOOL CreateStandardToolbar(HWND hParent) { // 首先需要先调用InitC

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

         

              到网上查了下资料,初步实现了使用WinAPI创建工具栏。


            下面是创建一个标准工具栏的函数,(这里所谓标准工具栏是指工具栏按钮图片是WinSDK内置的)

    BOOL CreateStandardToolbar(HWND hParent)
    {
        // 首先需要先调用InitCommonControls函数,否则不能创建工具栏。
        InitCommonControls();
    
        HWND hTool;
        TBBUTTON tbb[3];
        TBADDBITMAP tbab;
    
        HINSTANCE hThisInstance = GetModuleHandle(NULL);
    
        hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE|CCS_ADJUSTABLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN, 0, 0, 0, 0,
                               hParent,(HMENU)IDC_MAIN_TOOL,hThisInstance, NULL);
    
        if(hTool == NULL)
        {
            ::MessageBox(hParent, "Could not create tool bar.", "Error", MB_OK | MB_ICONERROR);
            return FALSE;
        }
        // 发送 TB_BUTTONSTRUCTSIZE 消息, 出于向后兼容的考虑.
        SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
    
        tbab.hInst = HINST_COMMCTRL;
        tbab.nID = IDB_STD_SMALL_COLOR;
        SendMessage(hTool, TB_ADDBITMAP, 0, (LPARAM)&tbab);
    
        ZeroMemory(tbb, sizeof(tbb));
        tbb[0].iBitmap = STD_FILENEW;
        tbb[0].fsState = TBSTATE_ENABLED;
        tbb[0].fsStyle = TBSTYLE_BUTTON;
        tbb[0].idCommand = ID_FILE_NEW;
    
        tbb[1].iBitmap = STD_FILEOPEN;
        tbb[1].fsState = TBSTATE_ENABLED;
        tbb[1].fsStyle = TBSTYLE_BUTTON;
        tbb[1].idCommand = ID_FILE_OPEN;
    
        tbb[2].iBitmap = STD_FILESAVE;
        tbb[2].fsState = TBSTATE_ENABLED;
        tbb[2].fsStyle = TBSTYLE_BUTTON;
        tbb[2].idCommand = ID_FILE_SAVEAS;
    
        // 发送添加按钮的消息
        SendMessage(hTool, TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON), (LPARAM)&tbb);
        return TRUE;
    }
    

    然后在消息处理函数中调用:

    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    
        case WM_CREATE:
        {
            CreateToolbar(hwnd);
            break;
    }
    // 下面是消息响应部分
      case WM_COMMAND:
        {
            switch(LOWORD(wParam))
            {
            case ID_FILE_NEW:
                ::MessageBox(hwnd, "新建文件", "提示", MB_OK);
                break;
            case ID_FILE_OPEN:
                ::MessageBox(hwnd, "打开文件", "提示", MB_OK);
                break;
            case ID_FILE_SAVEAS:
                ::MessageBox(hwnd, "另存文件", "提示", MB_OK);
                break;
            default:
                break;
            }
        }
    }
    

    效果图如下:

                                              

        但是我们一般是不会SDK内置的资源图片。现在流行界面配置,具体就是我想利用磁盘上位图图片,然后把它作为工具栏按钮图片动态加载到工具栏里去。于是我写了一个函数,实现了这个功能,代码如下:

           

    // 工具栏按钮的命令ID
    #define  ID_ENTIRE     1028
    #define  ID_GRID       1029
    
    BOOL CreateCoolToolbar(HWND hParent)
    {
        InitCommonControls();
        // 创建工具栏窗口
        HWND hTool;
        HINSTANCE hThisInstance = GetModuleHandle(NULL);
        hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE|CCS_ADJUSTABLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN, 0, 0, 0, 0,
                               hParent,(HMENU)IDC_MAIN_TOOL,hThisInstance, NULL);
    
        if(hTool == NULL)
        {
            ::MessageBox(hParent, "Could not create tool bar.", "Error", MB_OK | MB_ICONERROR);
            return FALSE;
        }
        // 发送 TB_BUTTONSTRUCTSIZE 消息, 出于向后兼容的考虑.
        SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
    
        // 创建图像列表
        HIMAGELIST  hImgList = ImageList_Create(16,16, ILC_COLOR32|ILC_MASK, 0, 0);
    
        // 为工具栏设置图像列表
        ::SendMessage(hTool, TB_SETIMAGELIST, 0, (LPARAM)hImgList);
    
        // 打开位图,将其加进图像列表
        TCHAR szModulePath[_MAX_PATH];
    	::GetModuleFileName(NULL,szModulePath,_MAX_PATH);
    	std::string strBinPath = szModulePath;
    
        int ImgID[2];
        // 获取位图文件路径
        strBinPath = strBinPath.substr(0,strBinPath.rfind('\\')+1);
        std::string strBmpPath = strBinPath + std::string(_T("Toolbar\\entire.bmp"));
        HBITMAP		hBitmap				= NULL;
        hBitmap = (HBITMAP)LoadImage(hThisInstance,strBmpPath.c_str(), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR|LR_LOADFROMFILE);
        ImgID[0] = ImageList_Add(hImgList,hBitmap,NULL);
    
        strBmpPath = strBinPath + std::string(_T("Toolbar\\Grid.bmp"));
        hBitmap				= NULL;
        hBitmap = (HBITMAP)LoadImage(hThisInstance,strBmpPath.c_str(), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR|LR_LOADFROMFILE);
        ImgID[1] = ImageList_Add(hImgList,hBitmap,NULL);
    
        // 初始化工具栏按钮数组
        TBBUTTON tbb[2];
        tbb[0].iBitmap = ImgID[0];
        tbb[0].fsState = TBSTATE_ENABLED;
        tbb[0].fsStyle = TBSTYLE_BUTTON;
        tbb[0].idCommand = ID_ENTIRE;
    
        tbb[1].iBitmap = ImgID[1];
        tbb[1].fsState = TBSTATE_ENABLED;
        tbb[1].fsStyle = TBSTYLE_BUTTON;
        tbb[1].idCommand = ID_GRID;
    
        // 发送添加工具栏按钮的消息
        TBADDBITMAP tbab;
       ::SendMessage(hTool, TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON),(LPARAM)&tbb);
    
        // 设置工具栏按钮大小:16*16
        ::SendMessage(hTool, TB_SETBUTTONSIZE,NULL,(LPARAM) MAKELONG(16,16));
        return TRUE;
    }
    
    

    效果图如下:

                                                             





    展开全文
  • Win API:注册表操作函数

    千次阅读 2009-10-21 16:37:00
    函数介绍:1.RegCreateKeyEx Function函数原型:LONG WINAPI RegCreateKeyEx( __in HKEY hKey, __in LPCTSTR lpSubKey, __reserved DWORD Reserved, __in_opt LPTSTR lpClass, __in

    函数介绍:

    1.RegCreateKeyEx Function

    函数原型:

    LONG WINAPI RegCreateKeyEx(
      __in        HKEY hKey,
      __in        LPCTSTR lpSubKey,
      __reserved  DWORD Reserved,
      __in_opt    LPTSTR lpClass,
      __in        DWORD dwOptions,
      __in        REGSAM samDesired,
      __in_opt    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
      __out       PHKEY phkResult,
      __out_opt   LPDWORD lpdwDisposition
    );

    解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。

     

    各参数及返回值的含义如下:

    1.hKey为主键值,可以取下面的一些数值:HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、  HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USER、HKEY_PERFORMANCE_DATA(WINNT操作系统)、HKEY_DYN_DATA(WIN9X操作系统)。

    2.lpSubKey为一个指向以零结尾的字符串的指针,其中包含将要创建或打开的子键的名称。子键不可以用反斜线(/)开始。该参数可以为NULL。

    3.Reserved为保留值,必须设置为0。

    4.lpClass为一个指向包含键类型的字符串。如果该键已经存在,则忽略该参数。

    5.dwOptions为新创建的键设置一定的属性。可以取下面的一些数值:  REG_OPTION_NON_VOLATILE ,表示新创建的键为一个非短暂性的键(数据信息保存在文件中,当系统重新启动时,数据信息恢复);REG_OPTION_VOLATILE,表示新创建的键为一个短暂性的键(数据信息保存在内存中),Windows95忽略该数值;REG_OPTION_BACKUP_RESTORE 仅在WINNT中支持,可以提供优先级支持。

    6.samDesired用来设置对键访问的权限,可以取下面的一些数值:KEY_CREATE_LINK,表示准许生成符号键;KEY_CREATE_SUB_KEY 表示准许生成子键;KEY_ENUMERATE_SUB_KEYS 表示准许生成枚举子键;KEY_EXECUTE 表示准许进行读操作;KEY_NOTIFY表示准许更换通告;  KEY_QUERY_VALUE 表示准许查询子键;KEY_ALL_ACCESS 提供完全访问,是上面数值的组合。KEY_READ 是下面数值的组合:KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY;  KEY_SET_VALUE 表示准许设置子键的数值;KEY_WRITE 是下面数值的组合:KEY_SET_VALUE、KEY_CREATE_SUB_KEY。

    7.lpSecurityAttributes为一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否被子处理过程继承。如果该参数为NULL,则句柄不可以被继承。在WINNT中,该参数可以为新创建的键增加安全的描述。

    8.phkResult为一个指向新创建或打开的键的句柄的指针。

    9.lpdwDispition指明键是被创建还是被打开的,可以是下面的一些数值:  REG_CREATE_NEW_KEY 表示键先前不存在,现在被创建;REG_OPENED_EXISTING_KEY 表示键先前已存在,现在被打开。

    如果该函数调用成功,则返回ERROR_SUCCESS。否则,返回值为文件WINERROR.h中定义的一个非零的错误代码,可以通过设置FORMAT_MESSAGE_FROM_SYSTEM标识调用FormatMessage()函数来获取一个对错误的总体描述。 

    2.RegSetValueEx Function 

    函数原型:

    LONG WINAPI RegSetValueEx(
      __in        HKEY hKey,
      __in_opt    LPCTSTR lpValueName,
      __reserved  DWORD Reserved,
      __in        DWORD dwType,
      __in_opt    const BYTE *lpData,
      __in        DWORD cbData
    );

    解释:设置注册表中的一个键值。

     

    各参数及返回值的含义如下:

    1.hKey的含义同RegCreateKeyEx函数中的hKey参数。

    2.Reserved为保留值,必须设置为0。
    3.lpValueName为一个指向包含值名的字符串指针;Reserved保留,通常必须设置为0。
    4.dwType确定了设置的值的类型同RegQueryValueKeyEx的lyType参数。
    5.lpData为一个指向包含数据的缓冲区的指针。
    6.cbData以字节为单位,指定数据的长度。

    返回值同RegCreateKeyEx函数的返回值。

     

    3.RegCloseKey Function

     函数原型:

    LONG WINAPI RegCloseKey(
      __in  HKEY hKey
    );

    解释:关闭指定的注册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果,关闭一个键后,句柄变为非法,此时应释放句柄。

     


    示例程序:


    展开全文
  • MinGW安装教程

    万次阅读 多人点赞 2018-10-10 21:16:56
    MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。 另有可用于产生32位及64位Windows可执行文件的MinGW...
  • 在kali中使用msf的shodan入侵网络摄像头

    千次阅读 多人点赞 2020-03-09 10:56:09
    利用kali,在metasploit中,利用msf5的shodan的api进行网络摄像头的查找。并通过ip地址,查看到该摄像头。 2、实验环境 (1)虚拟机kali linux中的msf5框架; (2)win10系统/虚拟机通过浏览器可以接入互联网环境。 ...
  • setWindowPos函数把窗口的显示层次修改为HWND—TOPMOST,就可使指定窗口永远不会被其它窗口覆盖,该函数声明为: Function Long SetWindowPos(Long hwnd,Long ord,Long x,Long y,Long dx,Long dy,Long uflag) ...
  • 我就编编些Win API程序。Code::Blocks貌似需要额外的资源脚本编辑器才能编写资源脚本(叫ResEdit)。得了我也不想用这种不太成熟的外部工具,打算学习直接用代码创建UI控件。今天就学习如何创建顶层菜单吧
  • win API 文件操作

    2017-05-15 23:35:22
    CreateFile 创建一个文件 HANDLE WINAPI CreateFile( _In_ LPCTSTR lpFileName,// 文件路径 _In_ DWORD dwDesiredAccess,//打开文件权限 _In_ DWORD dwSha
  • C# 和 Win32API

    千次阅读 2007-03-24 14:41:00
    API (Application Programming Interface) is a set of commands, which interfaces the programs with the processors. The most commonly used set of external procedures are those that make up Microsoft Wind
  • (推荐)Win32 API大全

    万次下载 热门讨论 2003-12-10 00:00:00
    Win32 API是从事Windows应用程序开发所必备的。 首先对Win32 API函数做完整的概述;然后收录五大类函数: 窗口管理、图形设备接口、系统服务、国际特性以及网络服务; 在附录部分,讲解如何在Visual Basic和...
  • dotNET C# Programmer’s Guide to the Win32 API (Win32 API 声明C#版) 作者:小气的神 噢,对不起我用了这个标题,事实上如果我能做到10%,我就很高兴了。因为我的桌上正放着一本Dan Appleman的书,它曾伴随我...
  • Win32 API 实现系统托盘程序

    千次阅读 多人点赞 2013-11-05 17:53:29
    托盘程序就是运行在Windows系统托盘的程序,就是在桌面右下角的显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如QQ收到消息后,会在系统右下角显示闪动QQ图标。
  • Python No module named win32api

    千次阅读 2017-08-22 16:05:02
    1.查看自己Python版本 下载对应的 Python for Windows Extensions 版本在cmd里输入python --version,我这是2.7,然后在python脚本里import sys print(sys.path)"C:\Program Files\Python36\python.exe" C:/Users/...
  • python3安装win32api

    万次阅读 2019-04-11 15:58:47
    python3安装win32api
  • import win32api 安装pip install pypiwin32

    万次阅读 2019-04-15 14:19:02
    https://blog.csdn.net/dasunwarman/article/details/78493357
  • Win API通用对话框之GetOpenFileName

    千次阅读 2013-12-06 02:17:19
    作为《windows程序设计》对话框-podpad3.c,其是一个大一些的程序了, 这样的大块头, 如果你想消化它, 得慢慢来, 我们首先看GetOpenFileName函数和OPENFILENAME结构了: OPENFILENAME: ...
  • Win32api设置窗口全屏的方法

    千次阅读 2015-01-02 12:25:05
    首先是考虑全屏处理的时机,是在创建窗口时还是显示窗口时进行,若是前者,则可以: BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {  HWND hWnd; ... hInst = hInstance; // 将实例句柄存储...
  • win7方面API學習

    千次阅读 2013-10-08 08:33:30
    Getting Applicateion Data Folder Paths Win32 #include //link with shell32.lib PWSTR pSzFolderPath = NULL; if(succeeded(SHGetKnownFolderPath( FOLDERID_ProgramData,0,NULL,&pSzFolderPath)) {  
  • 问题出现 最近在安装Python后,在命令行输入Python提示无法启动此程序,因为计算机中丢失api-ms-win-crt-process-...首先下载api-ms-win-crt-process-l1-1-0.dll文件,大家可以这里去下载:api-ms-win-crt-proces...
  • Python win32api.keybd_event模拟键盘输入

    千次阅读 2019-09-24 17:46:39
    Python win32api.keybd_event模拟键盘输入 win32api.keybd_event 该函数原型:keybd_even...
  • Win32 API实现CDC类的FillSolidRect接口

    千次阅读 2013-01-07 22:19:20
    作者:朱金灿来源:http://blog.csdn.net/clever101 Win32 API并没对应的CDC类的FillSolidRect接口的API函数。今天需要使用Win32把这个接口实现,随手写了个:HDC hdc = NULL; // 获取DC句柄这步忽略 HBRUSH ...
  • 安装pywin32(Python调用win api必看)

    万次阅读 多人点赞 2018-08-16 15:12:03
    pywin32是一个第三方模块库,主要的作用是方便python开发者快速调用windows API的一个模块库。 同时pywin32也是绝大部分windows上第三方python模块库的前提,例如wmi,如果没有安装pywin32是无法正常使用wmi这个...
  • C#引入Win32API:常用Win32API

    千次阅读 2011-12-29 10:22:00
    using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; //这个肯定要的 namespace WindowsApplication1 ... class win32API { public c
  • WIN API-VFP枚举系统服务

    千次阅读 2008-03-25 11:18:00
    *--转自:dkfdtf 大侠 #Define STANDARD_RIGHTS_REQUIRED 0x000F0000#Define SC_MANAGER_ENUMERATE_SERVICE 0x0004#Define SERVICE_WIN32 0x00000030#Define SERVICE_STATE_ALL 0x00000003#Define SERVICE_STOPPED ...
  • C# 利用win API设置本地时间

    千次阅读 2013-11-30 16:54:48
    using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text; /* ============================================================== ...* DateTim
  • 如题,请教C#如何领用Win API将窗体绘制为椭圆,利用paint事件绘制的在系统特别卡的时候总是先显示长方形的窗体在编程椭圆的,有没有避免这种情况的方法
  • 暴强贴:从.NET平台调用Win32 API

    千次阅读 2005-12-22 16:42:00
    作者:刘铁猛日期:2005-12-20关键字:C# .NET Win32 API版权声明:本文章受知识产权法保护,如果阁下想转载,在转载的时候烦劳阁下连同在下的姓名一起转载,并向bladey@tom.com发一个Mail,我很想知道我的文章都去哪里...
  • VBA中使用Win API打开文件对话框

    千次阅读 2007-07-03 11:04:00
    使用网上比较普遍的vb中使用WindowsAPI实现打开文件对话框代码,Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Type OPENFILENAME ...
  • Win API右键弹出菜单小问题

    千次阅读 2012-08-15 10:23:39
    需要使用右键弹出菜单时,通常比较容易碰到的问题是按常规直接调用 TrackPopupMenu 而其中的菜单句柄则是直接调用LoadMenu得到,因此弹出的菜单只看到一小点。TrackPopupMenu 中菜单句柄必须是pop-up menu才行。...

空空如也

1 2 3 4 5 ... 20
收藏数 30,555
精华内容 12,222
关键字:

winapi