「FreeScriptの練習2」の版間の差分

提供:yonewiki
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の22版が非表示)
1行目: 1行目:
[[FreeScriptの練習7]]
[[FreeScriptの練習26]]
<yjavascript></script>
<yjavascript></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
6行目: 6行目:
<script src="https://wiki.yo-net.jp/custom.js"></script>
<script src="https://wiki.yo-net.jp/custom.js"></script>
<script></yjavascript>
<script></yjavascript>
 
<freescript></script><!--data-line-num-start="1" data-line-highlight="3, 10-" data-max-lines="10"--><div class="hljs-wrap"><pre data-label="GoogleSearchVBAFunction.bas" class="pre-wrap"><code class="language-cpp">#include <iostream>
 
#include <fstream>
<freescript></script>
#include <string>
<!--  
#include <vector>
data-line-num-start="1"
#include <filesystem>
data-line-highlight="3, 10-"
#include <windows.h>
data-max-lines="10"
#include <winhttp.h>
-->
#include <typeinfo>
<div class="hljs-wrap"><pre data-label="GoogleSearchVBAFunction.bas" class="pre-wrap">
<code class="language-vbnet">Public Sub グーグル検索()
\<span style="font-weight: 900 !important;"\>#include <zip.h>\</span\>
&nbsp;&nbsp;Dim driver As Selenium.EdgeDriver
&nbsp;&nbsp;Set driver = New Selenium.EdgeDriver
#pragma comment(lib, "winhttp.lib")
&nbsp;   
#pragma comment(lib, "Version.lib")
&nbsp;&nbsp;With driver
#pragma comment(lib, "zip.lib")
&nbsp;&nbsp;&nbsp;&nbsp;.Start
&nbsp;&nbsp;&nbsp;&nbsp;.Get "https://www.google.com/"
std::string GetVersion(const std::string& path) {
&nbsp;&nbsp;&nbsp;&nbsp;.FindElementByName("q").SendKeys ("Yonewiki")
  DWORD handle;
&nbsp;&nbsp;&nbsp;&nbsp;.FindElementByCss("input.gNO89b").Click '.FindElementById("btnK").Click
  DWORD size = GetFileVersionInfoSizeA(path.c_str(), &handle);
&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print .FindElementById("search").Text
  if (size == 0) {
&nbsp;&nbsp;&nbsp;&nbsp;.Quit
    throw std::runtime_error("Failed to get version info size.");
&nbsp;&nbsp;End With
  }
End Sub
 
  std::vector<char> data(size);
Public Sub グーグル検索()
  if (!GetFileVersionInfoA(path.c_str(), handle, size, data.data())) {
   Dim driver As Selenium.EdgeDriver
    throw std::runtime_error("Failed to get version info.");
   Set driver = New Selenium.EdgeDriver
  }
 
   With driver
  VS_FIXEDFILEINFO* versionInfo;
    .Start
  UINT len;
    .Get "https://www.google.com/"
  if (!VerQueryValueA(data.data(), "\\", (LPVOID*)&versionInfo, &len)) {
     .FindElementByName("q").SendKeys ("Yonewiki")
    throw std::runtime_error("Failed to query version info.");
     .FindElementByCss("input.gNO89b").Click '.FindElementById("btnK").Click
  }
     Debug.Print .FindElementById("search").Text
    .Quit
  DWORD major = (versionInfo->dwFileVersionMS >> 16) & 0xffff;
  End With
   DWORD minor = versionInfo->dwFileVersionMS & 0xffff;
End Sub</code></pre><div>
   DWORD build = (versionInfo->dwFileVersionLS >> 16) & 0xffff;
   DWORD revision = versionInfo->dwFileVersionLS & 0xffff;
  return std::to_string(major) + "." +
     std::to_string(minor) + "." +
     std::to_string(build) + "." +
     std::to_string(revision);
}</code></pre><div>
<script></freescript>
<script></freescript>



2024年12月29日 (日) 21:42時点における最新版

FreeScriptの練習26

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <filesystem>
#include <windows.h>
#include <winhttp.h>
#include <typeinfo>
 
\<span style="font-weight: 900 !important;"\>#include <zip.h>\</span\>
 
#pragma comment(lib, "winhttp.lib")
#pragma comment(lib, "Version.lib")
#pragma comment(lib, "zip.lib")
 
std::string GetVersion(const std::string& path) {
  DWORD handle;
  DWORD size = GetFileVersionInfoSizeA(path.c_str(), &handle);
  if (size == 0) {
    throw std::runtime_error("Failed to get version info size.");
  }
 
  std::vector<char> data(size);
  if (!GetFileVersionInfoA(path.c_str(), handle, size, data.data())) {
    throw std::runtime_error("Failed to get version info.");
  }
 
  VS_FIXEDFILEINFO* versionInfo;
  UINT len;
  if (!VerQueryValueA(data.data(), "\\", (LPVOID*)&versionInfo, &len)) {
    throw std::runtime_error("Failed to query version info.");
  }
 
  DWORD major = (versionInfo->dwFileVersionMS >> 16) & 0xffff;
  DWORD minor = versionInfo->dwFileVersionMS & 0xffff;
  DWORD build = (versionInfo->dwFileVersionLS >> 16) & 0xffff;
  DWORD revision = versionInfo->dwFileVersionLS & 0xffff;
 
  return std::to_string(major) + "." +
    std::to_string(minor) + "." +
    std::to_string(build) + "." +
    std::to_string(revision);
}

test string.