精华内容
下载资源
问答
  • C# 加锁问题

    2019-03-15 10:07:51
    (我的理解:实例化不同的a1 a2,就是不同的东西,那么在A类里加锁,就应该是不同的锁,所以会失败,不能在类里面加。或者在类里面加静态锁,但怎么加?) 2.如果不行 应该怎么加锁 最简洁 并且保证两个线程都可以...
  • 请教:C#加锁的问题

    2013-01-04 10:32:56
    随机生成一个目录名称,如果这个目录不存在,那么就创建,如果存在,就重新生成,直到目录不存在并生成为止,但是运行这段代码的线程可能有成千上万个,所以需要加锁,并且效率要尽可能高。 我是这样想的:判断目录...
  • C# 文件夹加锁

    千次阅读 2016-10-24 14:32:54
    C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。  程序的基本原理是:用C#语言...


      用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。

      程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”

    (.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。

      程序的主界面非常简洁,截图如下:

    程序中加密解密文件夹的核心代码如下:

    复制代码
            private void btnBrowseFolder_Click(object sender, EventArgs e)
            {
               
                status = lockType;//
                
    
                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
                    string selectedpath = d.Parent.FullName + d.Name;
                    if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1)//通过文件夹名称,判断加密
                    {                    
                        SetPwd(folderBrowserDialog1.SelectedPath);
                        if (!d.Root.Equals(d.Parent.FullName))
                        {                       
                                d.MoveTo(d.Parent.FullName + "\\" + d.Name + status);//文件夹重命名
                        }
                        else d.MoveTo(d.Parent.FullName + d.Name + status);
                        txtFolderPath.Text = folderBrowserDialog1.SelectedPath;
                        
                    }
                    else//解密文件夹
                    {
                        status = GetStatus(status);
                        bool s = CheckPwd();
                        if (s)
                        {
                            File.Delete(folderBrowserDialog1.SelectedPath + "\\key.xml");
                            string path = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
                            d.MoveTo(path);
                            txtFolderPath.Text = path;
                           
                        }
                    }
                }
            }
    复制代码

    程序的运行效果如下:

    以加密D盘下面的test文件夹为例,结果如下:

    首先通过folderBrowserDialog选择相应的文件夹

    输入密码,加锁

    效果如下:

    此时双击文件夹已经无法打开。

    选择加密后的test文件夹,输入加密时输入的密码,可解锁。

    test文件夹已经解密

    结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,牛人绕道,写出来给大家多个谈资~

    希望对各位博友有帮助。请点击下面的“绿色通道”---“关注DebugLZQ”,与DebugLZQ一起交流进步~

     

    Update 2014-02-06: Folder protection for Windows using C# and concepts on Windows Shell menu for folders

    Thanks, King!

    展开全文
  • C#文件夹加锁小工具

    2017-08-28 10:05:38
    C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。  程序的基本原理是:用C#语言...

    用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。

      程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”

    (.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。

      程序的主界面非常简洁,截图如下:

    程序中加密解密文件夹的核心代码如下:

    复制代码
            private void btnBrowseFolder_Click(object sender, EventArgs e)
            {
               
                status = lockType;//
                
    
                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
                    string selectedpath = d.Parent.FullName + d.Name;
                    if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1)//通过文件夹名称,判断加密
                    {                    
                        SetPwd(folderBrowserDialog1.SelectedPath);
                        if (!d.Root.Equals(d.Parent.FullName))
                        {                       
                                d.MoveTo(d.Parent.FullName + "\\" + d.Name + status);//文件夹重命名
                        }
                        else d.MoveTo(d.Parent.FullName + d.Name + status);
                        txtFolderPath.Text = folderBrowserDialog1.SelectedPath;
                        
                    }
                    else//解密文件夹
                    {
                        status = GetStatus(status);
                        bool s = CheckPwd();
                        if (s)
                        {
                            File.Delete(folderBrowserDialog1.SelectedPath + "\\key.xml");
                            string path = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
                            d.MoveTo(path);
                            txtFolderPath.Text = path;
                           
                        }
                    }
                }
            }
    复制代码

    程序的运行效果如下:

    以加密D盘下面的test文件夹为例,结果如下:

    首先通过folderBrowserDialog选择相应的文件夹

    输入密码,加锁

    效果如下:

    此时双击文件夹已经无法打开。

    选择加密后的test文件夹,输入加密时输入的密码,可解锁。

    test文件夹已经解密

    结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,牛人绕道,写出来给大家多个谈资~

    希望对各位博友有帮助。请点击下面的“绿色通道”---“关注DebugLZQ”,与DebugLZQ一起交流进步~

     

    Update 2014-02-06: Folder protection for Windows using C# and concepts on Windows Shell menu for folders

    Thanks, King!

    展开全文
  • 一个C#加锁解锁示例

    千次阅读 2017-11-26 12:32:00
    大家可以仿照这个方法做: usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceGeneric_Reusable { interfaceILockable { ...

    大家可以仿照这个方法做:
     
    using   System; 
    using   System.Collections.Generic; 
    using   System.Text; 

    namespace   Generic_Reusable 

            interface   ILockable 
            { 
                    void   Lock(); 
                    void   Unlock(); 
            } 

            class   SharedMemoryLock   :   ILockable 
            { 
                    #region   ILockable   Members 

                    public   void   Lock() 
                    { 
                            Console.WriteLine( "SharedLock   performs   lock   method. "); 
                    } 

                    public   void   Unlock() 
                    { 
                            Console.WriteLine( "SharedLock   performs   unlock   method. "); 
                    } 

                    #endregion 
            } 

            class   FileLock   :   ILockable 
            { 
                    #region   ILockable   Members 

                    public   void   Lock() 
                    { 
                            Console.WriteLine( "FileLock   performs   lock   method. "); 
                    } 

                    public   void   Unlock() 
                    { 
                            Console.WriteLine( "FileLock   performs   unlock   method. "); 
                    } 

                    #endregion 
            } 

            class   ReusableLock <LOCK >   :   ILockable   where   LOCK   :   ILockable,   new() 
            { 
                    private   LOCK   lock__   =   new   LOCK(); 

                    #region   ILockable   Members 

                    public   void   Lock() 
                    { 
                            lock__.Lock(); 
                    } 

                    public   void   Unlock() 
                    { 
                            lock__.Unlock(); 
                    } 

                    #endregion 
            } 

            class   Program 
            { 
                    static   void   Main(string[]   args) 
                    { 
                            try 
                            { 
                                    ReusableLock <SharedMemoryLock >   theLock   =   new   ReusableLock <SharedMemoryLock >(); 
                                    theLock.Lock(); 
                                    //   TODO:   Add   your   code   here 
                                    theLock.Unlock(); 
                            } 
                            catch   (Exception   ex) 
                            { 
                                    Console.WriteLine(ex.Message); 
                            } 
                    } 
            } 



    本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2007/11/19/963750.html,如需转载请自行联系原作者
    展开全文
  •  用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。  程序的基本原理是:用C#语言...

      用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。

      程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”

    (.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。

      程序的主界面非常简洁,截图如下:

    程序中加密解密文件夹的核心代码如下:

    复制代码
            private void btnBrowseFolder_Click(object sender, EventArgs e)
            {
               
                status = lockType;//
                
    
                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath);
                    string selectedpath = d.Parent.FullName + d.Name;
                    if (folderBrowserDialog1.SelectedPath.LastIndexOf(".{") == -1)//通过文件夹名称,判断加密
                    {                    
                        SetPwd(folderBrowserDialog1.SelectedPath);
                        if (!d.Root.Equals(d.Parent.FullName))
                        {                       
                                d.MoveTo(d.Parent.FullName + "\\" + d.Name + status);//文件夹重命名
                        }
                        else d.MoveTo(d.Parent.FullName + d.Name + status);
                        txtFolderPath.Text = folderBrowserDialog1.SelectedPath;
                        
                    }
                    else//解密文件夹
                    {
                        status = GetStatus(status);
                        bool s = CheckPwd();
                        if (s)
                        {
                            File.Delete(folderBrowserDialog1.SelectedPath + "\\key.xml");
                            string path = folderBrowserDialog1.SelectedPath.Substring(0, folderBrowserDialog1.SelectedPath.LastIndexOf("."));
                            d.MoveTo(path);
                            txtFolderPath.Text = path;
                           
                        }
                    }
                }
            }
    复制代码

    程序的运行效果如下:

    以加密D盘下面的test文件夹为例,结果如下:

    首先通过folderBrowserDialog选择相应的文件夹

    输入密码,加锁

    效果如下:

    此时双击文件夹已经无法打开。

    选择加密后的test文件夹,输入加密时输入的密码,可解锁。

    test文件夹已经解密

    结束语:本文件夹加密程序是通过重命名文件夹的方式实现的,加密强度较弱,牛人绕道,写出来给大家多个谈资~

    希望对各位博友有帮助。请点击下面的“绿色通道”---“关注DebugLZQ”,与DebugLZQ一起交流进步~

    展开全文
  • 现在我有一个DataTable,存在于内存中,现在需要我在对这个DataTable做操作(增删改)的时候,对这个对象枷锁,让其他人访问的时候是处于锁定状态,该怎么写。
  • C#数据表加锁解锁

    2019-09-16 14:51:56
    锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table ...SELECT 语句中“加锁选项”的功能说明 SQL Server提供了强大而完备的锁机制来帮助实现数...
  • [C#]c#中数据的同步加锁机制

    千次阅读 2014-08-17 12:40:00
    对于数据库中,为数据或是访问数据的函数加锁是常见的,但是在C#中数据的同步加锁机制是什么样呢? 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中...
  • private void button8_Click(object sender, EventArgs e) { //for (int i = 0; i < 5; i++) //{ // int k = i; // Thread.Sleep(5); // Task.Run(() => // { ...
  • C#编写的电脑加锁小工具,可以基于屏幕任意一点的坐标进行加锁。可以通过在频幕上选择一个你自己明白的坐标位置,锁定后即可限制鼠标和键盘的一切操作。解锁时通过点击加密坐标的位置即可解除锁定恢复正常操作。锁定...
  • 第一种: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace ManageCenter { public class ConnShareRes { ...
  • lock基础介绍lock 关键字将语句块标记为关键...比如银行账户的金额变动这些,都需要通过加锁进行保护。下面是一个取钱的操作:class Account { decimal balance; private Object thisLock = new Object(); ...
  • C#操作数据库进行加锁操作
  • 经验总结23--C#多线程和加锁

    千次阅读 2014-08-01 15:51:32
    C#的线程蛮简单。 Thread t1 = new Thread(Runing);  t.Start(); 可以使用匿名线程进行传参。 Thread t = new Thread(() =>  {  Runing();  });  t.Start(); 这样的话R
  • 线程加锁-----Unity c#

    2019-11-12 10:19:47
    private System.Object sendLck; sendLck = new System.Object(); lock (sendLck) { //加锁代码 }
  • 项目:ASP.NET 网站程序 ...通过设置页面上的EnableSessionState可以为Session加锁: EnableSessionState="True":页面对Session设置读写锁。有这个SessionID的Session在每个请求过程中会被锁定. Enable...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading;...namespace ConsoleApplication1 ... public static class MyLock //...
  • c#解决高并发--加锁(Lock)

    千次阅读 2013-05-31 20:42:00
    加锁 lock (sign) { if (connStrs.Count > 0 ) { if (connStrs.Count >= ConnIndex) { ConnIndex = 0 ; } queryConString = connStrs[ConnIndex].ToString(); ConnIndex ++ ; } else {...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 357
精华内容 142
关键字:

c#加锁

c# 订阅