精华内容
下载资源
问答
  • 系统挂机使用平台windowsxp windows2000 windows2003 windows2008
  • Windows互斥使用

    2019-08-27 11:03:14
    互斥std::_Mutex的使用 首先是来看一下没使用互斥的情况 // InterlockedIncrementUse.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "InterlockedIncrementUse.h" using namespace ...

    互斥锁std::_Mutex的使用

    • 首先是来看一下没使用互斥锁的情况
    // InterlockedIncrementUse.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "InterlockedIncrementUse.h"
    
    using namespace std;
    
    ULONG g_count = 0;
    
    std::_Mutex g_mutex; //互斥锁
    
    UseLock::UseLock()
    {
    	m_dwRef = 0;
    }
    
    UseLock::~UseLock()
    {
    
    }
    
    
    void WINAPI make_lock()
    {
    	//g_mutex._Lock();
    	//InterlockedIncrement(&g_count);
    	int m = 10;
    	for (int i = 0 ; i <m; i++)
    	{
    		cout << i << endl;
    	}
    	//g_mutex._Unlock();
    	//InterlockedDecrement(&g_count);
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)make_lock,nullptr,0,nullptr);
    	CloseHandle(hThread);
    	HANDLE hThread_1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)make_lock,nullptr,0,nullptr);
    	CloseHandle(hThread_1);
    	system("pause");
    	return 0;
    }
    

    可以看出创建了两个多线程,结果如下:
    在这里插入图片描述
    可以看出 是无序的

    • 看一下使用加锁的情况
    // InterlockedIncrementUse.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "InterlockedIncrementUse.h"
    
    using namespace std;
    
    ULONG g_count = 0;
    
    std::_Mutex g_mutex; //互斥锁
    
    UseLock::UseLock()
    {
    	m_dwRef = 0;
    }
    
    UseLock::~UseLock()
    {
    
    }
    
    
    void WINAPI make_lock()
    {
    	g_mutex._Lock();
    	//InterlockedIncrement(&g_count);
    	int m = 10;
    	for (int i = 0 ; i <m; i++)
    	{
    		cout << i << endl;
    	}
    	g_mutex._Unlock();
    	//InterlockedDecrement(&g_count);
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)make_lock,nullptr,0,nullptr);
    	CloseHandle(hThread);
    	HANDLE hThread_1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)make_lock,nullptr,0,nullptr);
    	CloseHandle(hThread_1);
    	system("pause");
    	return 0;
    }
    
    
    

    运行结果:
    在这里插入图片描述

    总结一下:使用_mutex方法

    • 声明mutex变量
    std::_Mutex g_mutex; //互斥锁声明
    

    加锁:

    	g_mutex._Lock();
    

    解锁:

    	g_mutex._Unlock();
    
    展开全文
  • 不再需要解锁计算机的麻烦。 轻按一下RFID卡/标签即可解锁Windows PC。
  • c++ windows锁

    2020-11-03 10:06:29
    单位内部人员写的,可以借鉴与使用windows平台 lock.h #ifndef Lock_H_ #define Lock_H_ #include <windows.h> //接口类 class IMyLock { public: virtual ~IMyLock() {} virtual void Lock(){}; ...

    单位内部人员写的,可以借鉴与使用。

    windows平台

    lock.h

    #ifndef Lock_H_
    #define Lock_H_
    #include <windows.h>
    
    //锁接口类
    class IMyLock
    {
    public:
        virtual ~IMyLock() {}
    	virtual void Lock(){};
    	virtual void Unlock(){};
    };
    
    //互斥对象锁类 
    class CMutexLock : public IMyLock
    {
    public:
        CMutexLock();
        ~CMutexLock();
        virtual void Lock();
        virtual void Unlock();
    private:
        HANDLE m_mutex;
    };
    
    //临界区锁类 
    class CCriticalSectionLock : public IMyLock
    {
    public:
        CCriticalSectionLock();
        ~CCriticalSectionLock();
        virtual void Lock();
        virtual void Unlock();
    private:
        CRITICAL_SECTION m_cs;
    };
    
    //锁
    class CLock
    {
    public:
        CLock(IMyLock&);
        ~CLock();
    private:
        IMyLock& m_lock;
    };
    
    #endif 
    

    lock.cpp

    #include "Lock.h"
    
    //创建一个匿名互斥对象
    CMutexLock::CMutexLock()
    {
        m_mutex = ::CreateMutex(NULL, FALSE, NULL);
    }
    
    //销毁互斥对象,释放资源
    CMutexLock::~CMutexLock()
    {
        ::CloseHandle(m_mutex);
    }
    
    //确保拥有互斥对象的线程对被保护资源的独自访问
    void CMutexLock::Lock()
    {
        DWORD d = WaitForSingleObject(m_mutex, INFINITE);
    }
    
    //释放当前线程拥有的互斥对象,以使其它线程可以拥有互斥对象,对被保护资源进行访问 
    void CMutexLock::Unlock()
    {
        ::ReleaseMutex(m_mutex);
    }
    
    //创建临界区对象
    CCriticalSectionLock::CCriticalSectionLock()
    {
        InitializeCriticalSection(&m_cs);
    }
    
    //销毁临界区对象,释放资源
    CCriticalSectionLock::~CCriticalSectionLock()
    {
        DeleteCriticalSection(&m_cs);
    }
    
    //确保拥有临界区对象的线程对被保护资源的独自访问
    void CCriticalSectionLock::Lock()
    {
        EnterCriticalSection(&m_cs);
    }
    
    //释放当前线程拥有的临界区对象,以使其它线程可以拥有临界区对象,对被保护资源进行访问 
    void CCriticalSectionLock::Unlock()
    {
        LeaveCriticalSection(&m_cs);
    }
    //利用C++特性,进行自动加锁
    CLock::CLock(IMyLock& m) : m_lock(m)
    {
        m_lock.Lock();
    }
    
    //利用C++特性,进行自动解锁
    CLock::~CLock()
    {
        m_lock.Unlock();
    }
    
    展开全文
  • 我们在windows vista及以后的系统中经常遇到打开某个应用每次都会询问是否运行,如下图所示: 单个文件可以通过选中文件右键点属性,然后勾选“解除锁定”并确定解决,但如果大批量文件需要修改则工作量非常大。 ...

    我们在windows vista及以后的系统中经常遇到打开某个应用每次都会询问是否运行,如下图所示:

    单个文件可以通过选中文件右键点属性,然后勾选“解除锁定”并确定解决,但如果大批量文件需要修改则工作量非常大。

    为快速批量解除文件锁定,可使用PowerShell来进行操作。首先切换到需要解除锁定的文件目录,然后运行如下命令:

    Get-ChildItem | Unblock-File

    以上操作完成后,此目录下所有的文件都被解除锁定了,但子目录下的文件依然还是锁定状态,故若文件夹下还有子文件夹,子文件夹内也有文件需要解除锁定,则需使用如下命令:

    Get-ChildItem -recurse | Unblock-File

    展开全文
  • 主要介绍了Windows使用C#为文件夹和文件编写密码的示例分享,特别是文件可以针对各种类型的文件输入密码进行加密解密,非常实用,需要的朋友可以参考下
  • CRITICAL_SECTION cs; // 全局变量 InitializeCriticalSection( & cs); // 初始化 EnterCriticalSection( & cs); //获得 //do something LeaveCriticalSection( & cs); //释放



    CRITICAL_SECTION cs; // 全局变量 
    
    InitializeCriticalSection( & cs); // 初始化锁 
    
    EnterCriticalSection( & cs); //获得锁 
    //do something
    LeaveCriticalSection( & cs); //释放锁



    展开全文
  • 使用Windows Hello for KeePass 2快速解锁 这个密码管理器插件旨在在使用首次解锁后使用PIN或生物特征识别快速授权到数据库。 用法 使用此插件,您可以: 使用您的masterkey / keyfile /其他提供者解锁数据库; ...
  • C# Windows挂机

    2021-03-16 00:58:07
    C# Windows 系统挂机源码,锁定电脑屏幕不让别人使用,也可称为“锁屏”程序,当显示“本机正在使用中,请勿擅动1的时候,可输入机密码,然后点击按钮确认后即开始挂机,请输入两次密码以确认。  除了锁屏功能...
  • C++多线程-windows锁

    2020-01-09 16:08:43
    windows系统中,系统本身为我们提供了很多。通过这些使用,一方面可以加强我们对锁的认识,另外一方面可以提高代码的性能和健壮性。常用的以下四种:临界区,互斥量,信号量,event。 (1)临界区 临界区...
  • 就是说,一旦有个进程对某个文件加了写占用,其他的进程就不能访问该文件。这样可以保证数据写完之后,才能读数据。
  • Windows内核编程基础篇之使用自旋

    千次阅读 2015-08-27 23:04:33
    链表之类的结构总是涉及多线程,这时候就要用到使用锁。  当然在处理临界区的时候,这个是必须要考虑的呀。  在驱动开发的代码中,大多是在于多线程执行环境的。  下面将介绍使用简单的自旋。  如下的代码将...
  • NSA专业物理入侵设备——USB Armory,可解锁任意锁屏状态的下的Windows和Mac操作系统,含最新发布的Windows10、及较早的Mac OSX El Capitan / Mavericks,想知道原理是什么?进来看看吧! 首先,这原本是没有可能实现...
  • Windows上可能遇到,开启的子进程不会关闭的问题 参考multiprocessing官方文档: Explicitly pass resources to child processes On Unix a child process can make use of a shared resource created in...
  • windows下线程

    2019-04-16 14:08:00
    windows下线程 最近做了一个MFC项目,需要两个大小不一样的窗口进行位置切换。一个窗口显示实时视频,另一个窗口显示Teechart的坐标点,如图所示 在视频窗口我使用的是opencv进行的贴图,在贴图过程中需要对图像...
  • Windows 自旋分析(一)

    千次阅读 2016-03-30 11:14:54
    自旋是一种在内核定义,只能在内核态下使用的同步机制。自旋用来保护共享数据或者资源,使得并发执行的程序或者在高优先级IRQL的对称多处理器的程序能够正确访问这些数据。分析Windows自旋,首先需要介绍...
  • windows10多用户解锁.zip

    2020-02-23 14:14:59
    Windows10 1903 解锁Windows10 禁止多用户本地远程登录同时使用工具;一台电脑可以多人同时使用,一个可以本机使用,其余用户可以进行远程登录
  • } //使用DEvent使得两个线程交替输出AB int main(int argc, char** argv) { pthread_t tid1, tid2; pthread_create(&tid1, NULL, PrintA, NULL); pthread_create(&tid2, NULL, PrintB, NULL); pthread_join(tid2, ...
  • 多线程的那点儿事(之windows锁

    万次阅读 多人点赞 2011-11-27 10:23:59
    通过这些使用,一方面可以加强我们对锁的认识,另外一方面可以提高代码的性能和健壮性。常用的以下四种:临界区,互斥量,信号量,event。    (1)临界区  临界区是最简单的一种。基本的临界区
  • Windows 自旋分析

    千次阅读 2014-03-20 19:32:02
    1、 自旋(spinlock) 自旋(KSPIN_LOCK)只能用于内核模式的...包括驱动在内的很多组件都会使用自旋,例如:大部分文件系统的驱动中会使用互锁工作队列用来存放文件系统工作线程和FSD(file system driver)
  • 硬件锁使用说明

    千次阅读 2017-05-25 10:56:42
    作者:Nick Cheng 目录: 1.本机使用硬件 1.1. Windows 1.2. Linux 2.其它设备使用硬件 2.1. Windows 2.2. Linux 3.在虚拟机中使用硬件
  • WINDOWS 自旋分析(一)

    2021-04-07 11:51:24
    自旋是一种在内核定义,只能在内核态下使用的同步机制。自旋用来保护共享数据或者资源,使得并发执行的程序或者在高优先级IRQL的对称多处理器的程序能够正确访问这些数据。分析Windows自旋,首先需要介绍...
  • Windows专家1.2

    2009-02-18 23:22:00
    第一步:先正常上机,下载Windows专家并运行 第二步:转到特殊功能选项卡,设置10秒后隐藏全部窗口,并把阻止关机动作选上. 第三步:下机,10秒后等锁定窗口被防专家隐藏后就可继续上机了. 高级方法 第一步:...
  • 可递归锁和非递归锁使用和解决非递归锁 转载出处: http://blog.chinaunix.net/uid-26983585-id-3316794.html 最常见的进程/线程的同步方法有互斥锁(或称互斥量Mutex),读写锁(rdlock),条件变量(cond),信号量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,873
精华内容 749
关键字:

windows锁使用