Tag: 共享

获取已打开文件的用户名

有没有办法学习打开文件的用户的用户名? 我正在开发一个程序,它将成为许多用户的桌面客户端。 应用程序将打开一些文件,我希望允许许多用户同时打开文件,但只允许第一个用户具有写权限。 我想要的是能够告诉对文件具有写访问权限的其他用户。 这是应用程序可以学习的东西吗? (我在VS 2008中开发)。

当子类已经从不同的基类派生时,子类如何共享行为?

我有两个实现ISomeBehavior的类。 现在我希望他们分享function。 通常我会用一个抽象类替换ISomeBehavior,比如SomeBehaviorBase。 问题是其中一个子类已经从另一个类派生,而另一个类不是我们拥有的软件。 (这是C#,因此多重inheritance不是一种选择。)从第三方类派生的子类没有实现。 它只是派生自第三方类,并实现了ISomeBehavior,因此第三方类的处理方式与实现ISomeBehavior的其他子类相同。 我目前所做的是在ISomeBehavior上实现一个扩展方法。 现在消费代码可以调用该方法。 这种方法的问题是我想强制调用代码使用这个扩展方法。 我无法从界面中删除SomeMethod(),因为扩展方法最终必须调用它。 关于如何让两个类优雅地分享相同的行为的任何想法,当其中一个已经派生自另一个,第三方,类? 注意:策略设计模式在这里听起来很有意义,但是当子类之间的行为发生变化时会使用该模式。 这里的行为没有变化; 它只需要分享。

实现除抽象基类之外的常见行为?

在C#中,我有一个类层次结构,顶部附近有几个抽象基类,并且有相当多的派生类。 这些具体类中的一些具有一些相同实现的共同属性和方法。 它让我感到浪费,因此一个解决方案可能是在另一个抽象基类中实现这种常见行为。 abstract class Control; abstract class SquareControl: Control { public int SquarishProperty; public void SquarishMethod(); }; class Window: SquareControl; class Button: SquareControl; 但是,如果层次结构中的其他几个类共享某些其他行为,但是与另一个基类中的一个控件共享某些内容,该怎么办? 也许有很多共同点。 使用抽象基类实现对它进行建模是不切实际的吗? abstract class FlashableControl: Control { public int FlashyProperty; public void FlashMethod(); }; class StatusBar: FlashableControl; // but it’s also a bit square too, hmm… 那么如何在不使用基类的情况下跨类共享这样的实现呢? 我想我想将接口的实现委托给另一个类,并让该类代表所需的类实现这些属性和方法,这样对于用户来说,StatusBar和Window似乎支持标准接口,但是在涵盖它是实现它的其他东西。 我可以想象实现这种行为的聚合类,但这是否恰当,是否有任何陷阱? 有哪些替代方案? […]

简单的C#屏幕共享应用程序

我期待在C#中创建一个非常基本的屏幕共享应用程序。 无需遥控器。 我只是希望用户能够将他们的屏幕广播到网络服务器。 我该如何实现呢? (非常感谢任何指向正确方向的指针)。 它不需要高FPS。 足以甚至更新5s左右。 您认为只需将屏幕截图上传5秒到我的网络服务器就足够了吗?

FileShare ReadWrite不起作用(C#.NET)

我正在使用C#的hex编辑器控件,可以在这里找到源代码和二进制文件。 使用它时的一个问题是,如果在hex编辑器和另一个程序中加载了文件,则另一个程序无法保存该文件,因为它已被另一个进程使用。 所以我问控件的作者谁告诉我在FileByteProvider和DynamicFileByteProvider类的File.Open方法中将FileShare参数设置为ReadWrite(它最初只是Read)会修复它。 所以我这样做了,但它仍然无效(同样的错误)。 将其设置为“仅写入”也不起作用,但将其设置为“只读”和“无”都可以。 这些文件在任何程序中都有相同的问题,例如记事本。 它们没有设置为ReadOnly或任何东西,所以我不知道为什么它不起作用。 这里有什么我想念的吗?

阻止允许禁止用户访问共享文件夹的WNetAddConnection2类

我开发了C#windows应用程序。 操作系统是Windows 7 要求:使用带有凭据的代码使用WNetAddConnection2类访问网络共享文件夹“测试”。 限制:某些用户可以访问此共享文件夹“Test”,但对于其他用户,则设置“拒绝”共享权限。 在代码WNetAddConnection2validation错误的用户名/密码,它会给我错误。 例如 来自局域网的“用户A”尝试使用run command访问共享文件夹“测试”,他无法访问“访问被拒绝”,因为他没有权限。 但问题是WNetAddConnection2类允许’用户A’成功建立网络连接。 感染“WNetAddConnection2允许来自域的所有用户”。 类正在validation访问权限。 代码是 private void btnValidate_Click(object sender, EventArgs e) { bool valid = false; try { NetworkCredential NC = new NetworkCredential(txtUserName.Text.Trim(), txtPassword.Text.Trim()); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } public class NetworkConnection : IDisposable { string _networkName; uint dwFlags; public NetworkConnection(string networkName, NetworkCredential credentials) […]

如何在ShareDenyWrite模式下打开StreamReader?

如何使用FILE_SHARE_READ , FILE_SHARE_WRITE , FILE_SHARE_DELETE打开StreamReader ? 同样的问题,略有扩展 如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便其他进程可以读取该文件? 如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便其他进程可以在我阅读时修改该文件? 我如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便在我阅读时另一个进程可以删除该文件? 同样的问题,稍微扩大一点 在.NET Framework类库中,有一个名为StreamReader的类。 它是唯一一个用于读取“text”的类 ,这就是为什么它来自抽象基类TextReader类。 TextReader/StreamReader允许您指定您尝试打开的文件所使用的编码,并可以为您解码文件,返回文本Strings 。 一旦我用StreamReader打开了一个文件: var sr = new StreamReader(path); 文件被锁定,其他进程无法修改或删除该文件。 我需要的是相当于FileStream类的FileShare枚举: 无 :拒绝共享当前文件。 在文件关闭之前,任何打开文件的请求(通过此进程或其他进程)都将失败。 读取 “:允许随后打开文件进行读取。如果未指定此标志,则打开文件进行读取(通过此进程或其他进程)的任何请求都将失败,直到文件关闭。但是,即使此标志为如果指定,则可能仍需要其他权限才能访问该文件。 写入 :允许随后打开文件进行写入。 如果未指定此标志,则在文件关闭之前,任何打开文件进行写入(通过此进程或其他进程)的请求都将失败。 但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。 ReadWrite :允许随后打开文件进行读写。 如果未指定此标志,则在文件关闭之前,任何打开文件以进行读取或写入(通过此进程或其他进程)的请求都将失败。 但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。 删除 :允许后续删除文件。 除此之外,由于显而易见的原因,我无法使用FileStream – 必须使用StreamReader 。 如何使用FileShare.ReadWrite | FileShare.Delete打开StreamReader FileShare.ReadWrite | FileShare.Delete ?

可以通过2个不同的进程共享相同的DLL数据吗?

我有两个不同的C#应用​​程序同时运行。 我希望他们两个都能够访问DLL的相同“实例”(也在C#中)。 DLL保存了一些我想要返回到两个应用程序要求的数据。 我的DLL是线程安全的,所以我希望这是可能的,但我不知道如何。 任何帮助或建议将不胜感激。

在C#中运行应用程序之间共享变量

我正在开发C#两个简单的应用程序,在没有网络要求的同一台本地机器上运行。 第一个应用程序初始化DLL(Class1)并设置变量。 第二个应用程序只读取先前存储的数据。 两个应用程序都实现了相同的Class1。 码: DLL(Class1): public class Class1 { private string variableName; public string MyProperty { get { return variableName; } set { variableName = value; } } } 申请A: class Program { static void Main(string[] args) { Class1 class1 = new Class1(); string localReadVariable = Console.ReadLine(); class1.MyProperty = localReadVariable; } } 申请B: class […]

应用之间的对象共享?

假设我的大数据arrays每秒更新1000次以上。 另一个应用程序想要在短时间内访问和读取数组。 两个应用程序都在同一台机器上。 我已经尝试使用WCF进行进程间通信,但是每秒数千次序列化和发送整个数组(或大型对象)是不可行的性能。 有没有办法直接访问c#中不同应用程序的对象?