C#IEは、単語の記事をアップロードして操作します

シーン:

プラグインとOA、オンラインオフィスシステムは、唯一のIEブラウザ、あなたがページを開く単語のオンライン版を使用することができますが、F12で開発者ツールは、要素を参照してくださいに失敗します。あなたはChromeブラウザで動作することはできません。

手動でアップロードファイルの実践は、次のとおりです。コンピュータ上の開いているWord文書、CTRL + Aは、CTRL + Cをコピーするために、すべてを選択し、次にペーストするページ、CTRL + Vを開きます。

また、そこにWebページ上にあり、入力要素を提出するが、幸いこの2つの要素が選択され、開発ツールで提出することができます。

思考:C#の言葉がすべてを選択し、クリップボードにコピーし、閉じ語、読ん; SHDocVw.InternetExplorer、ページ上で開いてフォーカス制御ワードとオープンIE、CTRL + V送信し、再フィル入力をして提出して提出します。

コード: 

        プライベート ボイドが記事ToolStripMenuItem_Click(作られたオブジェクト送信者、EventArgsのE)
        { 
            この .WindowState = ; FormWindowState.Minimized
             // オープンディレクトリ・ワード文書
             // 、戻り値の型があるのFileInfoファイルフォルダを取得する

            文字列のパス= @ " \:IをMyNews " ; 
            DirectoryInfoルート = 新しい新しいDirectoryInfo(パス)
            のFileInfo []ファイル = root.GetFiles(); 

            Microsoft.Office.Interop.Word.Applicationアプリ = 新しい新しいMicrosoft.Office.Interop.Word.Application();
             オブジェクトファイル= fnameに[ 0 ] .FullName;
             文字列の fnamestr =ファイル[ 0 ] .nameの、
             VARの DOC = app.Documents.Open(REFのFNAME); 
            レンジレンジ = doc.Range(); // レンジ()が通過しない場合引数は、全範囲のドキュメントを取得する範囲
            Range.Copyメソッド(); 
            doc.close(); 
            app.Quit(); 
            アプリケーション = ヌル; 
            System.Threading.Thread.Sleep(300 );
             // プロセス-発行-文書タイプワードスイッチング 
            SHDocVw.InternetExplorerのIE = 新しい新しいSHDocVw.InternetExplorerを();
            オブジェクト空= 0 オブジェクトの URL = " http://192.168.132.80/docs/docs/DocAddExt.jsp?mainid=15&secid=1143&subid=49&topage=&showsubmit=1&prjid=&coworkid=&crmid=&hrmid=&docType=.doc&docsubject=&from=&userCategory=0&invalidationdate= " ; 
            IE.Visibleは = ; 
            IE.Navigate2(REF URL、REF、空REF、空REF、空REF 空)。
            System.Threading.Thread.Sleep(10000 );
            // System.Windows.Forms.SendKeys。送信( "^ V"); //これは信頼できない、フォーカスを切り替えるコマンドを引き起こしているようです。
            KC = KeyBordClick 新しい新KeyBordClick(); 
            kc.KeyBordPaste(); 
            // ファイル名に塗りつぶし 
            fnamestr = fnamestr.Replace(" .docxの""" ); 
            fnamestr = fnamestr.Replace(" .DOC """ ); 
            ((IE.Document AS mshtml.HTMLDocument).getElementById(" DocSubject "AS mshtml.HTMLInputElement).Valueの= fnamestr; 
            System.Threading.Thread.Sleep(1000 )。
            // 送信ボタンを見つける
            のvar btntsを=(IE.Document AS mshtml.HTMLDocument).getElementsByTagName(" ボタン" );
             foreachの(mshtml.HTMLButtonElement btnt btnts)
            { 
                IF(btnt.innerText == " サーバーに保存" 
                { 
                    btnt .click(); 
                    ファイル[ 0 ] .Delete();
                     BREAK ; 
                } 

            } 
  
        }
    クラスKeyBordClick 
    { 
        [DLLIMPORT(" user32.dllの"、エントリーポイント= " keybd_event "、SetLastError = )]
         プライベート 静的 にextern  ボイド keybd_event(キーBVK、バイト BSCAN、UINT dwFlagsパラメータ、UINT dwExtraInfo)。
        const  int型 KEYEVENTF_KEYUP = 0x02のconst  int型 KEYEVENTF_KEYDOWN = 0x00で

        // 相当于按下Ctrl + V、然后回车
        公共 のボイド KeyBordPaste()
        {
            keybd_event(Keys.ControlKey、0、KEYEVENTF_KEYDOWN、0 ); 
            keybd_event(Keys.V、000 ); 
            keybd_event(Keys.ControlKey、0、KEYEVENTF_KEYUP、0 ); 
            keybd_event(Keys.Enter、000 ); 
        } 
    }

 

おすすめ

転載: www.cnblogs.com/pu369/p/12396438.html