www.red-gate.com网站淘宝之旅

news/2024/5/13 18:14:28/文章来源:https://blog.csdn.net/weixin_34122810/article/details/86374855

  现在说起应该是昨天的事了,我没啥事在网上“淘些宝贝”,我网上淘宝当然不是买东西,是上国外网上搜集些开源GIS和.NET Plateform Invoke(简写为PInvoke)资料。主要是讲一下我在http://www.red-gate.com/网站淘宝之旅。

     淘宝一:PInvoke.net

  在google上搜索发现http://www.pinvoke.net/网站,就是个Wiki形式的PInvoke技术站点,算是个技术资料库吧。该网站采用WIKI形式,这点我很欣赏,只是知名度不高或是深入了解PInvoke的网友较少吧,所以网站给人很冷清的感觉。从WIN 32 API 查询价值看,该网站API内容不全,根本跟MSDN不是一个档次的,但是它又有个值得使用的优点:它给出了WIN 32 API在C#/VB语言中声明的方式,对初学NET互操作的还是很方便的工具,至少保证声明处不会出错了。

      该网站提供了PInvoke.net Visual Studio Add-in 插件下载PInvoke.net。安装完成后,在VS的工具栏中出现PInvoke.net,截图如下:

点击PInvoke.net按钮,弹出窗体,你可以在里面搜索WIN 32 API,选择目标函数,会出现Signature里加亮显示部分,就是该API在C#中的声明,点击Insert,自动在你代码里插入声明部分。此处可参看http://www.winu.cn/space-14160-do-blog-id-28045.html,里面有个使用入门过程及一个DEMO。现在引用DEMO源码如下:

ExpandedBlockStart.gifPInvoke获取短路径名代码

namespace ShortPathNameSample
{
    
class Program
    {
        [DllImport(
"kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        
static extern uint GetShortPathName(
          [MarshalAs(UnmanagedType.LPTStr)]
             
string lpszLongPath,
          [MarshalAs(UnmanagedType.LPTStr)]
           StringBuilder lpszShortPath,
          
uint cchBuffer);

        
static void Main()
        {
            Console.WriteLine(GetShortPathName(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)));
            Console.ReadLine();

        }
        
/// <summary>
        
/// 
        
/// </summary>
        
/// <param name="longName">The long name path</param>
        
/// <returns>A short name path string</returns>
        public static string GetShortPathName(string longName)
        {
            StringBuilder shortNameBuffer 
= new StringBuilder(256);
            
uint bufferSize = (uint)shortNameBuffer.Capacity;
            
uint result = GetShortPathName(longName, shortNameBuffer, bufferSize);
            
if (result != 0)
                
return shortNameBuffer.ToString();
            
return longName;
        }
    }
}

     官方给了个DEMO:How PInvoke.net can help(http://www.red-gate.com/products/pinvoke.net/example.htm) 由于官方内容比较好,我这里与大家分享全文引用如下:

How PInvoke.net can help (Native method signatures )

Problem: disabling the Close button

Sometimes, in an application, you want to have a window which has a control box (and thus an icon) that can be minimized and/or maximized, but cannot be closed. This requires a little work, but an important step is to disable the Close button in the top right of the window. In .NET you can set Form.ControlBox to false, but that will get rid of your minimize and maximize icons as well, which may not be what you want.

Desired effect: Close is disabled, but Minimize still works.

In cases such as this one, it's necessary to "go native". To achieve this effect, we will need to disable the Close option on the system menu. When Windows renders the close box in the non-client area, and handles clicks on it, it obeys the state of that menu item.

 

The Close tab on the system menu needs to be greyed out as in this screenshot.

Find a solution with PInvoke.net

We will need to call two functions: GetSystemMenu and EnableMenuItem. In the latter case, we need to tell EnableMenuItem to find the menu item denoted by command SC_CLOSE, and make it either enabled or grayed out, as appropriate.

Since we don't know the exact syntax of the two signatures we are after, we can simply choose to insert them directly from Visual Studio, by clicking on our PInvoke.net menu in Visual Studio.

The PInvoke.net website suggests the following code:

PInvoke.net often offers both a C# signature and a VB signature

C# signature for EnableMenuItem

Via the website, PInvoke.NET also lists appropriate constant values for EnableMenuItem, three of which are of particular interest:

 

Constant values for EnableMenuItem

We also need the constant value SC_CLOSE which, again, is easily found on PInvoke.net by typing it into the search box:

internal const UInt32 SC_CLOSE = 0xF060;

We've now got all our pieces, which we can finally put together by writing code such as:

// Modify the close button for a form or other window.

            public static void EnableCloseButton(IWin32Window window, bool bEnabled)

            {

                  IntPtr hSystemMenu = GetSystemMenu(window.Handle,false);

                  EnableMenuItem(hSystemMenu,

                        SC_CLOSE,

                        (uint)(MF_BYCOMMAND | ( bEnabled ? MF_ENABLED : MF_GRAYED ) ));

            }

This was an example illustrating how the PInvoke.net resource and the PInvoke.net Visual Studio add-in can help you find and insert tried and tested PInvoke signatures directly into your application.

         淘宝二:.NET Reflector

         .NET Reflector是免费的.net反编译软件,以前也用过,但昨天刚知道原来也是RED-GATE的产品,该软件是免费的,最新版为.NET Reflector 6.0 下载

请参考官方:http://www.red-gate.com/products/reflector/index.htm

使用视频:http://www.red-gate.com/products/reflector/video.htm

         淘宝三:.NET Buddle (最新版官方售价:$795)

          NET Buddle里面有3个收费产品,截图如下:

       我关注的产品主要是前两个,当软件代码量较大时,就会出现很多难以认为控制的因素,如果处理数据量再较大,很容易出现问题。我之前参与的一个软件编写,当处理大数据量时,出现严重问题。最后查找原因:发现是大量共有变量没有及时释放,同时AE中的COM游标类组件没有及时释放,导致内存不足。痛定思痛,我一方面提高自己写代码的严谨性,一方面格外关注提高.NET编程性能的辅助工具。三个工具是很不错,只是网站上之提供14天的试用下载。我当然是买不起这套.NET工具了,想想VS.net都用破解的,这类小工具肯定也希望找到破解的。网上搜索了一下,终于让我找到5.0破解版了,与感兴趣的网友分享:http://download.csdn.net/source/1438956#acomment 破解版中还包括了一些SQL工具。

       淘宝四:swfobject.js

       swfobject.js是Javascript脚本,主要功能是在网页中动态创建SWF对象,并设置SWF对象的参数。下载1.5版

      使用实例代码:

      
    
<div id="flashcontent"></div> 
       
    
<script type="text/javascript" src="640x480/swfobject.js"></script>
          <script type="text/javascript" src="640x480/NET_Reflector_640x480_210808.js"></script>
      
<script type="text/javascript">
          
// <![CDATA[          
         var fo = new SWFObject( "640x480/NET_Reflector_640x480_210808_controller.swf""csSwf""640""499""8""#FFFFFF" );
         fo.addVariable( "csConfigFile""640x480/NET_Reflector_640x480_210808_config.xml"  ); 
         fo.addVariable( "csColor"     , "FFFFFF"           );
         fo.addVariable( "csPreloader" , "640x480/NET_Reflector_640x480_210808_preload.swf" );
fo.addVariable( "csScaleLoadingMov" , "true" );
         
if( args.movie )
         {
            fo.addVariable( "csFilesetBookmark", args.movie );
         }
         fo.write("flashcontent");                 
         
// ]]>

       
</script>

 

 

       希望自己以后能将昨天淘到的几件宝贝在开发中运用起来,提高开发效果!

       另附一个微软Invoke工具:P/Invoke Interop Assistant 

参考资料:http://www.cnblogs.com/wuhenke/archive/2010/01/24/1655131.html

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_738206.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h5网站模板_企业为什么会选择h5响应式网站定制

企业为什么选择会做H5响应式网站定制?H5响应式网站定制到底有什么好处?怎样才能建立营销型的响应式网站?传统网站与H5响应式网站有什么区别?H5响应式网站定制的优势和特点&#xff1a;1、网站具有唯一性的。可以根据企业的需求量身网站定制样式。这种情况下&#xff0c;基本…

Step by Step WebMatrix网站开发之二:使用WebMatrix(2)

上一篇&#xff0c;从Web库创建了一个电子商务的网站。现在回到WebMatrix&#xff0c;看看它有什么功能。 由图1可以看到&#xff0c;WebMatrix主要有3个区域&#xff0c;顶部Ribbon区域&#xff0c;左边是功能区域&#xff0c;右边是信息或编辑区域。Ribbon区域的工具按钮会根…

这样的网站居然被客户说做得不好,不愿结款,

这样的网站居然被客户说做得不好&#xff0c;不愿结款&#xff0c; 朋友介绍&#xff0c;接了个小单&#xff0c;一千多元&#xff0c;做成后居然客户说图片不清晰&#xff08;客户提供的产品&#xff0c;客户的相机拍的&#xff0c;网页上显示的宽高就那么大&#xff0c;能有多…

wordpress 自定义分类url 重写_WordPress主题怎么搭建出更利于SEO的企业网站

WordPress完全支持中文&#xff0c;目前全球40&#xff05;的顶级网站都是使用WordPress网站构建的。 WordPress是最好的本地化开源程序之一。它完全支持i18n协议。本地粉丝也对其进行了本地化。 WordPress中文团队一直在本地化它。WordPress是可扩展的&#xff0c;WordPress是…

22个优秀的网站后台管理面板模版

在一些网站开发过程中&#xff0c;有非常多的例子是关于怎么学习如何创建网站前台设计&#xff0c;但是处理后台的文章是非常少&#xff0c;这篇文章将整理出22个非常优秀的管理后台面板模版帮助你减少网站的后台开发&#xff0c;节省时间。访问下面这些列表&#xff0c;选择您…

layui后台模板_大气漂亮美观的三个网站后台数据管理模板 大大提升你的开发效率...

今天整理了三个我做项目经常使用的三个网站后台模板&#xff0c;这三个模板都是开源的&#xff0c;可以下载商用&#xff0c;可基于它们开发任何网站&#xff0c;做为后台管理数据。这样能为你开发后台功能节约大量的时间。一.ok-admin一个很赞的&#xff0c;扁平化风格的&…

访问网站的拓扑图

大型网站系统的拓扑图:浏览器访问区域代理服务器的过程&#xff1a;转载于:https://blog.51cto.com/baiyan425/613397

一个php网站加入背景音乐,html页面中如何添加背景音乐

如果我们要在html页面中添加背景音乐效果&#xff0c;可以使用如下几种方式。方法一&#xff1a;在html文件中添加如下代码即可(音频文件根据需要进行更改)src"http://demo.mimvp.com/html5/take_you_fly.mp3">你的浏览器版本太低&#xff0c;不支持audio标签说明…

[关于百度] 网站描述description测试数据

为什么80%的码农都做不了架构师&#xff1f;>>> escription是网页内容的描述容器&#xff0c;早期搜索引擎根据这个来判定网页的主题和内容&#xff0c;现在的有几重的作用&#xff0c;一是&#xff1a;在搜索引擎网页收集的时候&#xff0c;会根据description进行…

学用MVC4做网站:序

重新整理的目录 序 一、用户 二、用户组 三、栏目 听说Win8和v2012发布,今天心血来潮重装了系统 感觉界面还是不错的。 安装一下vs2012学习一下mvc4,居然没找到Vs2012专业版破解的&#xff0c;干脆下载Express for Web ,算是支持正版吧&#xff01; 509M很快就下载完&#…

nginx建立的网站客户端点击下载docx的文档的时候能.zip的文件的解决方法

今天公司上传了一个网站&#xff0c;里面有个页面有个点击下载docx的链接&#xff0c;可是客户端用IE点击下载的时候却成了.zip的文件&#xff0c;而且打不开: google搜了一下说nginx不识别docx的扩展名&#xff0c;下面是原话&#xff1a; 导致原因&#xff1a; 从IIS或者Tomc…

网站性能分析(下)-让网站并行加载但顺序执行JS

如果网站不支持JavaScript&#xff0c;复杂的功能将无法正常工作。在开发当中通常有几个脚本会写在HTML文件的头部。你嵌入的越多&#xff0c;网站的速度潜在的变得越慢。因此提高并行加载速度变得非常有必要&#xff0c;在前面的文章当中我已经提供了2种提高网站响应速度的方法…

把图标变成圆形的html_如何让网站变成灰色?

是不是一晚上的时间&#xff0c;发现各大平台的网站页面都变成了灰色了&#xff0c;包括微信支付图标&#xff0c;那么如何让网站变成灰色呢&#xff1f;今天在代码中以一张简单的图片为示例。【1】在代码中以一张简单图片为例Document【1.2】网页效果图&#xff1a;【2】在sty…

搜java题的公众号_微信SEO,搜一搜,公众号排名优化策略详解!

微信SEO什么意思&#xff0c;搜一搜&#xff0c;公众号排名优化策略是什么&#xff1f; 这对于新媒体运营者而言&#xff0c;可能短时间内&#xff0c;并不能快速的做出回答&#xff0c;但是作为一名SEO人员&#xff0c;通常我们都可以理解微信SEO优化是什么意思&#xff01; 什…

从哪些角度改变,对网站转化率提升有帮助

有流量&#xff0c;零转化。此种现象&#xff0c;想必是很多的网站管理者都遇到过&#xff0c;是让他们最头疼的事情。这样的现象也充分的反应出了一点&#xff0c;网站的权重上没有什么问题&#xff0c;关键的是在于用户体验方面&#xff0c;有待提升。遇到问题&#xff0c;关…

用户 Outlook 2007 附件突然不能预览,在国外网站找了解决方案。

Outlook 2007 附件突然不能预览&#xff0c;在国外网站找了解决方案。服务器版本&#xff1a; exchange 2010 错误截图如下&#xff1a;解决方案&#xff1a;大体意思就是编辑一个注册表文件&#xff0c;导入进去就可以了。It doesnt work because it wasnt a valid registry f…

python 登录网站

为什么80%的码农都做不了架构师&#xff1f;>>> 有些网页需要你登录之后才可以访问&#xff0c;你需要提供账户和密码。 只要在发送http请求时&#xff0c;带上含有正常登录的cookie就可以了。 1、首先我们要先了解cookie的工作原理。 cookie是由服务器端生成&a…

触摸屏网站开发系列(一)-ios web App应用程序(ios meta)

触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了&#xff0c;触摸屏设备IOS、Android、BBOS6等系统自带浏览器均为WEBKIT核心&#xff0c;这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里&#xff0c;极大的减少了工作量和资料的缺乏。 这篇文章讲述关于IOS触屏网…

可疑文件:/member/buy_action.php,织梦DedeCMS网站安全设置指南

自织梦CMS问世&#xff0c;很多站长都爱上了这款简单易用的开源程序&#xff0c;但同时也有很多站长嗤之以鼻&#xff0c;理由最多的无外乎织梦的安全问题。事实上&#xff0c;一个网站的安全是多方面的&#xff0c;但总的来说就两个&#xff1a;一方面是程序问题&#xff0c;另…

大型网站数据库优化及浅析大型网站的架构(转)

大型网站数据库优化 千万人同时访问的网站&#xff0c;一般是有很多个数据库同时工作&#xff0c;说明白一点就是数据库集群和并发控制&#xff0c;这样的网站实时性也是相对的。这些网站都有一些共同的特点&#xff1a;数据量大&#xff0c;在线人数多&#xff0c;并发请求多&…