网址爆红怎么恢复

自己以前买了一个域名,后来各种原因360和qq报红,我后来就没有用那个网址了,直接放在那里,自己想重新拿来用。于是我直接qq和360申请,竟然直接通过了,看来也没有网上说那么难,需要交钱才可以恢复。

网址情况说明

我那个网址放了2年,基本什么内容都没有指,直接申请,内容就是简单正常网站,没有任何违规内容。

百度301跳转报可能被黑客恶意修改

因为最近自己更换了域名,通过301跳转到新的域名上面,这样子不会影响搜索引擎以前收录,结果我操作了一下,然后搜索关键词提示原来的网址报恶意修改,google搜索引擎已经替换新的域名了,这样子我只能申请恢复,还好百度反馈很快,申请一会就收到通过审核,过几个小时搜索引擎就恢复正常!

原因

  • 国内环境太差。好多网站安全意识太差,导致很多网站被恶意篡改掉了。所以百度搜索引擎对30x跳转比较敏感,不过这样子对一些真正需要跳转的网站不是那么好,貌似也会突然降低网站的权重。
  • 301跳转的网址部分没有改成新的,导致百度被恶意修改了,因为之前后台写的绝对地址,没有写相对地址,我觉得百度可以加一个内容比对,如果跳转的地址,内容没有发送特别变化,不应该出现提示,这个地方我认为可以稍微优化一下。

window远程桌面小技巧

远程桌面快速访问

我们可能多台服务器需要远程访问,但我们很少能记住IP地址,那么我可以通过远程的桌面配置另存为放在桌面,直接进行访问即可,这样子我们就可以知道哪个是访问、

图片示例

打开远程桌面,另存为
我桌面用的QQ桌面整理独立版本,挺方便,可以建立各种个字

这样子我们不用使用第三方软件,就可以很方便整理了。

远程桌面版本小技巧

服务器版本越高,远程用户体验越好,我之前用win7发现卡卡的,然后切换成2012发现速度会流畅很多,这是因为新版肯定加很多代码进行优化

c# wpf webview 屏蔽右键方法1

代码(直接copy)

 public class WebBrowserHostUIHandler : Native.IDocHostUIHandler
    {
        private const uint E_NOTIMPL = 0x80004001;
        private const uint S_OK = 0;
        private const uint S_FALSE = 1;

        public WebBrowserHostUIHandler(WebBrowser browser)
        {
            if (browser == null)
                throw new ArgumentNullException("browser");

            Browser = browser;
            browser.LoadCompleted += OnLoadCompleted;
            browser.Navigated += OnNavigated;
            IsWebBrowserContextMenuEnabled = true;
            Flags |= HostUIFlags.ENABLE_REDIRECT_NOTIFICATION;
        }

        public WebBrowser Browser { get; private set; }
        public HostUIFlags Flags { get; set; }
        public bool IsWebBrowserContextMenuEnabled { get; set; }
        public bool ScriptErrorsSuppressed { get; set; }

        private void OnNavigated(object sender, NavigationEventArgs e)
        {
            SetSilent(Browser, ScriptErrorsSuppressed);
        }

        private void OnLoadCompleted(object sender, NavigationEventArgs e)
        {
            Native.ICustomDoc doc = Browser.Document as Native.ICustomDoc;
            if (doc != null)
            {
                doc.SetUIHandler(this);
            }
        }

        uint Native.IDocHostUIHandler.ShowContextMenu(int dwID, Native.POINT pt, object pcmdtReserved, object pdispReserved)
        {
            return IsWebBrowserContextMenuEnabled ? S_FALSE : S_OK;
        }

        uint Native.IDocHostUIHandler.GetHostInfo(ref Native.DOCHOSTUIINFO info)
        {
            info.dwFlags = (int)Flags;
            info.dwDoubleClick = 0;
            return S_OK;
        }

        uint Native.IDocHostUIHandler.ShowUI(int dwID, object activeObject, object commandTarget, object frame, object doc)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.HideUI()
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.UpdateUI()
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.EnableModeless(bool fEnable)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.OnDocWindowActivate(bool fActivate)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.OnFrameWindowActivate(bool fActivate)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.ResizeBorder(Native.COMRECT rect, object doc, bool fFrameWindow)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.TranslateAccelerator(ref System.Windows.Forms.Message msg, ref Guid group, int nCmdID)
        {
            return S_FALSE;
        }

        uint Native.IDocHostUIHandler.GetOptionKeyPath(string[] pbstrKey, int dw)
        {
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.GetDropTarget(object pDropTarget, out object ppDropTarget)
        {
            ppDropTarget = null;
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.GetExternal(out object ppDispatch)
        {
            ppDispatch = Browser.ObjectForScripting;
            return S_OK;
        }

        uint Native.IDocHostUIHandler.TranslateUrl(int dwTranslate, string strURLIn, out string pstrURLOut)
        {
            pstrURLOut = null;
            return E_NOTIMPL;
        }

        uint Native.IDocHostUIHandler.FilterDataObject(IDataObject pDO, out IDataObject ppDORet)
        {
            ppDORet = null;
            return E_NOTIMPL;
        }

        public static void SetSilent(WebBrowser browser, bool silent)
        {
            Native.IOleServiceProvider sp = browser.Document as Native.IOleServiceProvider;
            if (sp != null)
            {
                Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
                Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E");

                object webBrowser;
                sp.QueryService(ref IID_IWebBrowserApp, ref IID_IWebBrowser2, out webBrowser);
                if (webBrowser != null)
                {
                    webBrowser.GetType().InvokeMember("Silent", BindingFlags.Instance | BindingFlags.Public | BindingFlags.PutDispProperty, null, webBrowser, new object[] { silent });
                }
            }
        }
    }

    internal static class Native
    {
        [ComImport, Guid("BD3F23C0-D43E-11CF-893B-00AA00BDCE1A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        internal interface IDocHostUIHandler
        {
            [PreserveSig]
            uint ShowContextMenu(int dwID, POINT pt, [MarshalAs(UnmanagedType.Interface)] object pcmdtReserved, [MarshalAs(UnmanagedType.Interface)] object pdispReserved);

            [PreserveSig]
            uint GetHostInfo(ref DOCHOSTUIINFO info);

            [PreserveSig]
            uint ShowUI(int dwID, [MarshalAs(UnmanagedType.Interface)] object activeObject, [MarshalAs(UnmanagedType.Interface)] object commandTarget, [MarshalAs(UnmanagedType.Interface)] object frame, [MarshalAs(UnmanagedType.Interface)] object doc);

            [PreserveSig]
            uint HideUI();

            [PreserveSig]
            uint UpdateUI();

            [PreserveSig]
            uint EnableModeless(bool fEnable);

            [PreserveSig]
            uint OnDocWindowActivate(bool fActivate);

            [PreserveSig]
            uint OnFrameWindowActivate(bool fActivate);

            [PreserveSig]
            uint ResizeBorder(COMRECT rect, [MarshalAs(UnmanagedType.Interface)] object doc, bool fFrameWindow);

            [PreserveSig]
            uint TranslateAccelerator(ref System.Windows.Forms.Message msg, ref Guid group, int nCmdID);

            [PreserveSig]
            uint GetOptionKeyPath([Out, MarshalAs(UnmanagedType.LPArray)] string[] pbstrKey, int dw);

            [PreserveSig]
            uint GetDropTarget([In, MarshalAs(UnmanagedType.Interface)] object pDropTarget, [MarshalAs(UnmanagedType.Interface)] out object ppDropTarget);

            [PreserveSig]
            uint GetExternal([MarshalAs(UnmanagedType.IDispatch)] out object ppDispatch);

            [PreserveSig]
            uint TranslateUrl(int dwTranslate, [MarshalAs(UnmanagedType.LPWStr)] string strURLIn, [MarshalAs(UnmanagedType.LPWStr)] out string pstrURLOut);

            [PreserveSig]
            uint FilterDataObject(IDataObject pDO, out IDataObject ppDORet);
        }

        [StructLayout(LayoutKind.Sequential)]
        internal struct DOCHOSTUIINFO
        {
            public int cbSize;
            public int dwFlags;
            public int dwDoubleClick;
            public IntPtr dwReserved1;
            public IntPtr dwReserved2;
        }

        [StructLayout(LayoutKind.Sequential)]
        internal struct COMRECT
        {
            public int left;
            public int top;
            public int right;
            public int bottom;
        }

        [StructLayout(LayoutKind.Sequential)]
        internal class POINT
        {
            public int x;
            public int y;
        }

        [ComImport, Guid("3050F3F0-98B5-11CF-BB82-00AA00BDCE0B"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        internal interface ICustomDoc
        {
            [PreserveSig]
            int SetUIHandler(IDocHostUIHandler pUIHandler);
        }

        [ComImport, Guid("6D5140C1-7436-11CE-8034-00AA006009FA"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        internal interface IOleServiceProvider
        {
            [PreserveSig]
            uint QueryService([In] ref Guid guidService, [In] ref Guid riid, [MarshalAs(UnmanagedType.IDispatch)] out object ppvObject);
        }
    }

    [Flags]
    public enum HostUIFlags
    {
        DIALOG = 0x00000001,
        DISABLE_HELP_MENU = 0x00000002,
        NO3DBORDER = 0x00000004,
        SCROLL_NO = 0x00000008,
        DISABLE_SCRIPT_INACTIVE = 0x00000010,
        OPENNEWWIN = 0x00000020,
        DISABLE_OFFSCREEN = 0x00000040,
        FLAT_SCROLLBAR = 0x00000080,
        DIV_BLOCKDEFAULT = 0x00000100,
        ACTIVATE_CLIENTHIT_ONLY = 0x00000200,
        OVERRIDEBEHAVIORFACTORY = 0x00000400,
        CODEPAGELINKEDFONTS = 0x00000800,
        URL_ENCODING_DISABLE_UTF8 = 0x00001000,
        URL_ENCODING_ENABLE_UTF8 = 0x00002000,
        ENABLE_FORMS_AUTOCOMPLETE = 0x00004000,
        ENABLE_INPLACE_NAVIGATION = 0x00010000,
        IME_ENABLE_RECONVERSION = 0x00020000,
        THEME = 0x00040000,
        NOTHEME = 0x00080000,
        NOPICS = 0x00100000,
        NO3DOUTERBORDER = 0x00200000,
        DISABLE_EDIT_NS_FIXUP = 0x00400000,
        LOCAL_MACHINE_ACCESS_CHECK = 0x00800000,
        DISABLE_UNTRUSTEDPROTOCOL = 0x01000000,
        HOST_NAVIGATES = 0x02000000,
        ENABLE_REDIRECT_NOTIFICATION = 0x04000000,
        USE_WINDOWLESS_SELECTCONTROL = 0x08000000,
        USE_WINDOWED_SELECTCONTROL = 0x10000000,
        ENABLE_ACTIVEX_INACTIVATE_MODE = 0x20000000,
        DPI_AWARE = 0x40000000
    }

怎么使用?

private WebBrowserHostUIHandler _wbHandler;

_wbHandler = new WebBrowserHostUIHandler(WebViewControl);

WebViewControl就是对应的WebView类名,c++ 也有类似方法。其实不用太关心代码细节,这个都是com接口,微软有一些文档介绍,我记得以前我用c++找到过,写过类似的代码,这份代码是从老外那里直接复制,这样子就不需要用winform webview了。后面我会介绍用js的方法屏蔽右键

inno setup 卸载程序报毒

我从网上下载了一个汉化版本,发现安装包安装后卸载程序会报毒,不知道为什么,于是我直接找到inno setup官网下载重新打包就不会报毒了.

中文包问题

下载官网版本不带中文简体,那么从官网下载语言包,然后放在目录,同时脚本也要指向这个语言包

语言包下载地址(百度网盘;提取码5wcp),因为官网有的时候打不开,你下载直接放在C:\Program Files (x86)\Inno Setup 6\Languages的目录

脚本填写下面即可,上面是我安装目录,你自己对应修改即可

[Languages]
Name: "ChineseSimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"

vps与云主机的区别

背景

自己一直用阿里云ECS,认为就是一台可以远程的连接的电脑,但后面接触到网站,挂机宝,发现价格区别很大,所以对vps与云主机区别不是很清楚。

区别

VPS: 一台真正电脑虚拟多台电脑,跟我们自己装虚拟机差不多,只是他们更加系统化,可以整体管理。那么其实所有资源都是共享这台的电脑,那么这台真正的物理电脑宕机,那么所有虚拟电脑都挂了,比喻8G的内存,用户买的2G,那么我卖4个,但一般有超卖。所以你购买他们产品都是有剩余个数,别人买了一个坑, 那么就少了一个坑。

云主机:整合各种资源,CPU,硬盘,内存,集成在一起,你可以理解多台电脑,为一群人服务,每个人资源通过前面你购买进行分配。VPS是一对多,云主机是多对多,这样子好处非常方便扩容,而且更加稳定,能更加合理利用资源。基本公司用都是云主机,个人挂软件和博客可能用vps偏多。

总结

上面只是自己肤浅理解,但大概差不多这个意思,vps由于共享IP,IP可能被污染,比喻登录微信,那么可能这个IP挂了很多微信,你登录微信软件,可能就出现异常之类。云主机我们可以单独买IP地址,vps 没有看到这个买IP地址这个说法。vps价格要比云主机价格便宜很多,如果挂软件选择vps,如果希望更加稳定的话,我觉得云主机更好。

html 入门知识记录

背景

最近用网页比较多,本来一直想把前端学习,但总没有静下来学习。所以慢慢把一些认为重要的知识点记录下来,我不想学习什么框架,我只要本质的东西

html的本质:我自己的认为

我认为只是一个描述的数据结构,比纯文本更加丰富,下面一段话是维基百科里面,突然猜想word描述文字应该和html类似的技术,因为他word可以很方便转换html,只是描述方法不一样


超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSSJavaScript一起被众多网站用于设计网页、网页应用程序以及移动应用程序的用户界面[3]网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言

HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,它被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。HTML的语言形式为尖括号包围的HTML元素(如<html>),浏览器使用HTML标签和脚本来诠释网页内容,但不会将它们显示在页面上。

HTML可以嵌入如JavaScript脚本语言,它们会影响HTML网页的行为。网页浏览器也可以引用层叠样式表(CSS)来定义文本和其它元素的外观与布局。维护HTML和CSS标准的组织万维网联盟(W3C)鼓励人们使用CSS替代一些用于表现的HTML元素[4]

元素区别

  • 块级元素:占一行
  • 内联元素:反之
  • 2者详细介绍
  • html布局

    我觉得html布局太过于复杂,因为我从windows或者android界面开发过来,突然去写html感觉不是很适应,找不到合适的布局标签来描述界面,比喻用wpf我默认用grid来简单描述大的界面很容易,然后填充控件就可以了,对其也没有那么复杂
    。不过基本都是通用的知识,html貌似没有提供那么直接的东西,必须通过div 或者 table 结合 css 来实现,对于新手要做稍微复杂的界面有点绕。不过这是他强大的原因吧。

    网上的说布局比较好的文章

  • 1:https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Introduction
  • 2:https://www.jianshu.com/p/c6673f8a6a5a
  • 3:https://blog.csdn.net/aitangyong/article/details/42775803
  • 总结:

    后续会慢慢补齐文章,布局和对齐,虽然我一直不是很喜欢写界面,更加喜欢业务逻辑代码,但是偶尔写一下也有点意思

    c#基于webview开发模块

    背景

    我们开发内容经常会变动,界面模块经常会增加功能,这个时候就可以考虑用webview来开发,比喻常见音乐播放器,QQ音乐,酷狗音乐,网易云音乐等等 PC端开发都是基于webview开发的,你用类似查看窗口工具,就可以看到他们的窗口类名,要么就是基于ie weview控件的,要么基于chrome webview控件。

    c# 使用webview

    直接添加webview控件即可,控件宽度和高度就看你需求了,自己稍微研究一下就可以了。

    webview调用c#代码

    我们肯定会用到js 调用c#代码,主要通过window.external 来访问c#方法,后面我在这块代码补充起来,现在写博客是在MAC,没法帖代码

    可能遇到问题

    • c#定义的给JS调用,必须是PUBLIC,否则会调用异常
    • 传递类型基本是必须基本类型,如果是对象,那么考虑用JSON代替
    • 想c#调用JS代码,这个想法是错误的,因为会涉及到网页加载事件,那么c#就必须监听页面事件,这样子把业务复杂,耦合太多,那么直接设置好函数,然后直接在JS中主动调用函数,一样可以达到效果,反而代码更加流畅,更加优美。记住一点:c#提供接口,JS来调用。

    总结

    记得最开始在深圳上班第一家公司是做在线教育,那个时候PC项目采用c++ 加 webview 来做PC端,从无到有自己摸索出来。想不到现在又用这个技术实现云插件。所以知识这个东西,只要明白本质就可以了,知道方案,用什么语音实现并重要。多看书,多积累一些知识点是不会错的。