積雲が映像制作したMV『RANGEFINDER』公開中
専門88IO

32ビット/64ビット識別ソフト for Windows

専門

前回、ThinkPadのUSBキーボードについてレビューした時に問題となったアプリのビット数。これを簡単に取得できるアプリを作成しました。


経緯としては、こちらをお読みください。

レビュー「ThinkPad USB TrackPoint Keyboard」
大学合格記念のRyzen自作PCに挑戦後、ひとつ不満が残っていました。

この記事ではVimを使って解決したのですが、

  • 手順が多い
  • 初心者は理解できない

といったデメリットも抱えていました。

そこで判別アプリについてググってみたのですが、どうやらVisual Studioが必要なようです。正直、これも初心者に向いてない。というよりも、開発環境なので僕も手軽には使いづらい。

なので大学で授業のなかった1時間のうちにチャチャっと作ってみました。

また、実装はPythonを用いました。Pyinstallerを使ってEXEファイル化しているので、Python環境がない人でもすぐに使うことができます。


ビット解析 ー0.0.1

ダウンロード

ダウンロード:AnalyzePrograms.zip


実装

先程も書きましたがPythonで書きました。ソースコードも別途付属してあります。

今回はまだ改良予定なので拡張しやすい書き方にしてあります。

# coding: utf-8
# author: 88IO

from ctypes import windll
import os
import sys


class AnalyzePrograms:
    def __init__(self, args):
        self.user32 = windll.user32
        self.ext = [".exe", ".dll"]
        self.program32 = []
        self.program64 = []
        self.others = []

    def getType(self):
        for fpath in sys.argv[1:]:
            if fpath[-4:] in self.ext and os.path.isfile(fpath):
                with open(fpath, "rb") as f:
                    hex_data = f.read().hex()
                if hex_data.find("504500004c01") != -1:
                    self.program32.append(os.path.basename(fpath))
                elif hex_data.find("504500006486") != -1:
                    self.program64.append(os.path.basename(fpath))
                else:
                    self.others.append(os.path.basename(fpath))

    def showMessages(self):
        if self.program32 != []:
            self.user32.MessageBoxW(0, "\n".join(self.program32), "32ビット", 0x00000040)
        if self.program64 != []:
            self.user32.MessageBoxW(0, "\n".join(self.program64), "64ビット", 0x00000040)
        if self.others != []:
            self.user32.MessageBoxW(0, "\n".join(self.others), "例外", 0x00000040)


if __name__ == "__main__":
    ap = AnalyzePrograms(sys.argv[1:])
    ap.getType()
    ap.showMessages()

使い方

(こちらもZIPファイル内の「readme.txt」に記載してあります。)

  1. 調べたいファイル(EXE、DLLに限る)を「get_type.exe」にドラッグアンドドロップ(複数ファイルの同時ドロップにも対応しています)
  2. 最大で「32ビット」「64ビット」「例外」の3つのメッセージボックスが表示され、各ファイル名が出力されます。

配布はしますが、僕が欲しかったので作っただけのものです。パソコンが壊れることはありませんが、効率の悪い部分もあるのはご了承ください。

ですが、要望やアドバイスなどは是非是非コメントしてください。励みになります。

これからもちょくちょく公開していく予定です。

コメント

タイトルとURLをコピーしました