小编Ton*_*Nam的帖子

mac和pc之间的协同作用改变了mac热键

Synergy是一个程序,使您可以在两台计算机中使用相同的鼠标和键盘.我有一台PC和mac直接连接以太网电缆,因此连接很好,好像只有一台电脑.

我正在开发一个iPad应用程序,我发现支持iwebkit for CSS的唯一软件是Expresso.我用它来编辑我在mac中的CSS文件,我在PC上使用dream weaver来编辑PHP,HTML和JavaScript文件.唯一的问题是我经常使用两台计算机来开发应用程序,而且每台计算机使用不同的快捷键非常令人沮丧.如果我可以在两台计算机上使用相同的热键,那将是非常好的.

到目前为止,我尝试过:

  1. 更改mac中系统首选项下键盘部分中的修饰键.这可以工作,但只是使用Mac上的键盘而不是我使用的键盘控制两台计算机的键盘.

  2. 创建他们所做的Appleogle脚本是发送快捷键然后编译它们并将它们保存为应用程序.将它们保存为应用程序后,我转到系统首选项并尝试使用不同的快捷键运行它们.当我创建快捷键时,系统首选项崩溃并关闭而不保存更改.

  3. 在协同作用中创建快捷键,它只能在一台计算机上工作.无论您使用哪台计算机,Synergy都会发送相同的击键.

  4. 最后我尝试寻找"IronAHK",在很多帖子中人们都说它修改了mac热键但是我还没能找到它的mac.

有没有办法在我的机器上使用相同的通用访问密钥?

macos applescript

8
推荐指数
3
解决办法
7759
查看次数

从文件扩展名获取大图标

有几个地方讨论如何从文件扩展名中获取图标,例如这个另一个.经过几个小时的这种项目,我设法建立了类似的东西:

private void addButton_Click(object sender, System.EventArgs e)
    {           
        System.Drawing.Icon temp = IconReader.GetFileIcon(".cs", IconReader.IconSize.Large, false);
        pictureBox1.Image = temp.ToBitmap();
    }
Run Code Online (Sandbox Code Playgroud)

执行该按钮让我:

在此输入图像描述

但我试图获得大图标.注意窗口上的图标是如何更大的:

在此输入图像描述

我怎么能得到那个图标而不是较小的图标.我花了很多时间改变其他程序.此外,我想使用wpf,大多数示例都是使用Windows窗体.如果我能得到一个如何提取文件图标而不是修改整个项目的例子,我将不胜感激.如果这不可能仍然会非常有帮助,我将不胜感激.只是我不是一个程序员,我花了很多时间来修改其他的例子.

c# wpf icons file-extension

8
推荐指数
1
解决办法
6012
查看次数

在ScrollViewer wpf中更改ScrollBar的背景颜色

我知道如何更改滚动条的背景颜色:

<ScrollBar Height="27" Margin="36,96,12,0" Name="scrollBar1" Background="Red"></ScrollBar>
Run Code Online (Sandbox Code Playgroud)

这是我红色背景的图片: 在此输入图像描述

我怎么能用ScrollViewer做同样的事情?我的ScrollViewer中有一个网格,如果我更改ScrollViewer的属性,它似乎会改变网格内容的属性.

<ScrollViewer>


    <Grid Name="Parent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
             ....
             ....
             ... etc
Run Code Online (Sandbox Code Playgroud)

产生:

在此输入图像描述

我的网格内容名为Parent,位于左侧.我怎么能在这个ScrollViewer上放置红色背景?

c# wpf xaml templates styles

8
推荐指数
2
解决办法
2万
查看次数

使用c#"UDP打孔到防火墙"将端口X的流量从端口X转发到计算机B

我需要建立从家用计算机到办公室计算机的TCP连接.

在办公室有一台路由器连接了几台计算机.该路由器具有互联网,因此连接到该路由器的所有计算机也具有互联网.我的房子里有一台可以上网的电脑.我需要我的办公室电脑作为服务器和家用电脑连接到它.之前,我曾经能够通过端口转发服务器上的流量连接:

    NATUPNPLib.UPnPNATClass upnpnat;
    NATUPNPLib.IStaticPortMappingCollection mappings;

    public ServerExample()
    {
        InitializeComponent();

        upnpnat = new NATUPNPLib.UPnPNATClass();
        mappings = upnpnat.StaticPortMappingCollection;

        //                           server local IP address
        mappings.Add(1300, "TCP", 1300, "192.168.150.146", true, "plsease work");
        // this code tels the router to forward all tcp traffic comming from port
        // 1300 to the server computer (it's lan ip address happens to be 192.168.150.146)
        //...
Run Code Online (Sandbox Code Playgroud)

我能够从我家连接.(我知道简单的方法是打开办公室路由器上的端口并将它们转发到我的计算机,问题是我无法访问办公室路由器)

现在他们用更新的路由器替换了我办公室的路由器而且我无法使用我的代码.现在,使用新的路由器,当我执行我得到的私密代码时:

在此输入图像描述

请注意,映射返回null; 因此,我无法添加映射.

我确信应该有办法建立连接,因为办公室里的某些人使用limewire或比特洪流.我认为我的问题可能与权限有关吗?我该如何解决这个问题?


编辑

因此,通过研究,我发现我要做的是"UDP打孔到防火墙".我实际上想通过tcp连接来做.我不知道tcp和upd puch holing之间的区别是什么....我的意思是让客户端能够找到一个梨而不必在路由器上进行配置.

.

.

.

.

.

.

UPDATE

好的,所以我相信我已经尝试用c#做你们在这个问题上发布的内容:好吧,让我告诉你我做了什么:

请注意,您可能需要参考此图表以了解我将要解释的内容: 在此输入图像描述

如你所知,我想在计算机A和计算机B之间建立一个tcp连接.我设法做到这一点的方法是做一个所谓的tcp punch holing.

第1步:我要做的第一件事是开始在服务器S上侦听新连接. …

c# networking tcp portforwarding

8
推荐指数
1
解决办法
3840
查看次数

IQueryable <a> to ObservableCollection <a>其中a =匿名类型

我希望将listview的datacontext绑定到可观察的集合.现在我有:

               // CurrentEmploye = some employee
               Entities.DatabaseModel m = new Entities.DatabaseModel();
               var q = from t in m.TimeSheet                            
                        join emp in m.Employees on t.idEmployee equals emp.id
                        where emp.id == CurrentEmploye.id
                        select new
                        {
                            firstName = emp.firstName,
                            lastName = emp.lastName,
                            position = emp.position,
                            clockInDate = t.clockInDate,
                            clockOutDate = t.clockOutDate,
                        };

                        listView1.DataContext = q;
Run Code Online (Sandbox Code Playgroud)

该代码正确填充列表视图.现在,每当我更新listview项时,我都想更新listview.

我希望变量q是ObservableCollection类型,而不必创建一个包含firstName,lastName,position等的自定义类...我该怎么做?

c# casting iqueryable observablecollection

8
推荐指数
1
解决办法
5692
查看次数

非回溯子表达式如何工作"(?> exp)"

我正试图在正则表达式上变得更好.我很难理解什么(?> expression )意思.我在哪里可以找到有关非倒缝亚咖啡的更多信息?的描述链接说:

贪婪的子表达式,也称为非回溯子表达式.这只匹配一次,然后不参与回溯.

这个其他链接:http://msdn.microsoft.com/en-us/library/bs2twtah (v=vs.71) .aspx也有非回溯子表达式的定义,但我仍然很难理解它是什么意思是加上我想不出一个我将使用的例子(?>exp)

.net c# regex

8
推荐指数
2
解决办法
2112
查看次数

创建自定义AppDomain并向其添加程序集

如何创建appdomain,向其添加程序集,然后销毁该app域?这是我尝试过的:

    static void Main(string[] args)
    {           
        string pathToExe = @"A:\Users\Tono\Desktop\ConsoleApplication1.exe";

        AppDomain myDomain = AppDomain.CreateDomain("MyDomain");

        Assembly a = Assembly.Load(System.IO.File.ReadAllBytes(pathToExe));

        myDomain.Load(a.FullName); // Crashes here!            
    }
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

myDomain.Load(File.ReadAllBytes(pathToExe)); 
Run Code Online (Sandbox Code Playgroud)

如何将程序集添加到appdomain.一旦我这样做,我可以通过反射找到方法执行它,然后销毁appdomain

我得到的例外是:

无法加载文件或程序集"ConsoleApplication1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.

c# reflection assemblies appdomain

8
推荐指数
1
解决办法
7808
查看次数

使用TcpClient创建http请求

我创建了一个空的asp.net Web应用程序,其中有一个简单的aspx页面:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Hello world");
}
Run Code Online (Sandbox Code Playgroud)

当我转到时,http://localhost:2006/1.aspx我看到一个页面上写着"Hello world".


好吧,如果我这样做的话#:

WebClient webClient = new WebClient() { Proxy = null };
var response2 = webClient.DownloadString("http://localhost:2006/1.aspx");
Run Code Online (Sandbox Code Playgroud)

那么response2 =="你好世界"

我需要使用原始tcp连接实现相同的功能

我试图用tcp连接实现同样的事情,由于某种原因它不起作用:

byte[] buf = new byte[1024];
string header = "GET http://localhost:2006/1.aspx HTTP/1.1\r\n" +
                "Host: localhost:2006\r\n" +
                "Connection: keep-alive\r\n" +
                "User-Agent: Mozilla/5.0\r\n" +
                "\r\n";

var client = new TcpClient("localhost", 2006);            

// send request
client.Client.Send(System.Text.Encoding.ASCII.GetBytes(header));

// get response
var i = client.Client.Receive(buf);
var response1 = System.Text.Encoding.UTF8.GetString(buf, 0, i); …
Run Code Online (Sandbox Code Playgroud)

c# tcp http httprequest

8
推荐指数
1
解决办法
2万
查看次数

查找侦听本地网络上特定端口的服务器

我有一个服务器应用程序.我也有一个客户端应用程序.当两个应用程序碰巧在同一网络上时,我能够在应用程序之间建立tcp连接.因此,假设运行服务器应用程序的计算机正在侦听端口2121上的新连接,并且它具有LAN IP地址192.168.0.120.在运行客户端应用程序的另一台计算机上,我将能够通过提供端口号2121和IP地址192.168.0.120来建立连接.

有没有办法找到网络上正在侦听端口2121的所有计算机?

我现在想的一个算法是:

  • 获取当前计算机的IP地址,并说它出现为192.168.0.145.

  • 现在很可能服务器将侦听IP地址192.168.0.

  • 然后在端口2121上ping 192.168.0.1,在端口2121上ping 192.168.0.2 ...然后继续.

我不知道这种方法是否有效.此外,服务器可能正在侦听IP地址192.168.1.x

那么我必须对我的服务器和客户端应用程序进行哪些更改,以便客户端能够找到侦听端口2121的所有服务器?

c# networking tcp

7
推荐指数
2
解决办法
2万
查看次数

C#中的非对称加密示例

我需要通过TCP连接将机密数据发送到服务器.我做了很多研究,理解了理论部分.根据我研究的内容,我想做以下事情:

注意有一个服务器和一个客户端:(我们假设任何人都可以获得客户端或服务器的公钥)

  1. 客户端创建他的公钥和私钥.他能够用他的私钥加密并用他的公钥解密.

  2. 服务器创建他的公钥和私钥.私钥用于解密消息,公钥用于加密消息.(注意与客户端相反)

  3. 客户端获取服务器的公钥.然后,客户端将能够使用该密钥加密消息,并且唯一能够解密该消息的消息将是服务器的私钥.

  4. 由于服务器需要确定消息来自该特定客户端,因此客户端将使用其私钥加密其名称(签名).

  5. 因此客户端消息将包含:要发送的数据,客户端的公钥,使用客户端私钥加密的客户端名称.

  6. 客户端将使用服务器中的公钥加密消息.然后,客户端将该消息发送到服务器.

  7. 服务器将使用他的私钥解密刚刚收到的消息.

  8. 一旦消息被解密,它将包含来自客户端的数据(信息),加密签名,公钥.

  9. 最后,服务器将使用消息中包含的公钥解密客户端签名,以验证消息是否来自该客户端.


好的,这就是非对称加密的工作原理.我还研究过使用.NET框架创建这些密钥对的类.我研究过的可以创建此公钥和私钥对的类是:

System.Security.Cryptography.DES
System.Security.Cryptography.DSACryptoServiceProvider 
System.Security.Cryptography.ECDsa 
System.Security.Cryptography.ECDsaCng 
System.Security.Cryptography.ECDiffieHellman 
System.Security.Cryptography.ECDiffieHellmanCng 
System.Security.Cryptography.RSA 
System.Security.Cryptography.RSACryptoServiceProvider 
Run Code Online (Sandbox Code Playgroud)

所以现在我的问题出现在如何使用这个类中的一个用C#来完成它?我理解理论部分是如何工作的,但我怎么做我刚才用代码描述的东西.我研究了一些例子,但我很难理解它们.

这是我发现我相信我所描述的一个例子:

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Example
{
    class Program
    {
        static CngKey aliceKey;
        static CngKey bobKey;
        static byte[] alicePubKeyBlob;
        static byte[] bobPubKeyBlob;

        static void Main()
        {
            CreateKeys();
            byte[] encrytpedData = AliceSendsData("secret message");
            BobReceivesData(encrytpedData);

            Console.Read();

        }

        private static void CreateKeys()
        {
            aliceKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP256);
            bobKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP256);
            alicePubKeyBlob = aliceKey.Export(CngKeyBlobFormat.EccPublicBlob);
            bobPubKeyBlob = bobKey.Export(CngKeyBlobFormat.EccPublicBlob);
        }

        private …
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography

7
推荐指数
2
解决办法
1万
查看次数