HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
1024
zrs90(5さい)スープの付け合わせ3解決


zrs90(5さい)

リンク

2021/10/24(Sun) 02:18:39|NO.94231

この内容は、zrs90(5さい)が独自で見つけた物であり
動作保証等は、全くない事を前提で、ご覧下さい。
スマホ投稿の為、誤字等があるかも。
気が向いたら、また何か、書かせてもらいます。

今回は、動作非推奨になってしまった
llmod3のstrtointの動かし方。

2013/3/5 hsp3.3書籍版+Xpsp2
最近、hsp3.6+7pro32ビットで動作確認
※7proのllmod3は、3.4か3.5からコピーした物を使用。


この命令、サンプルが動きませんが
デバッグウィンドウのモジュールに、チェックを入れた所
_stat@llmod3に変換データが入ってました。

下記のようにすると、とりあえず出力出来ます。

#include "llmod3/llmod3.hsp"
#include "llmod3/misc.hsp"

strtoint "111101",2 // 2進数とみなして変換
mes ""+_stat@llmod3

strtoint "0x1F" // 先頭が"0x"だと16進数とみなされる(Base省略時)
mes ""+_stat@llmod3

// ここでは、省きますが、同様にすると
// サンプルの7進数と36進数変換も動きます。
// 10進変換後の値が、−、小数点付きの値になるものは変換出来ないようです。


多分、ある程度の実力のある方は、llmod3関係のモジュールを直したり
api?から呼び出したりして、対処していたかと...
一応、この掲示板では、動作例は見つけられませんでした。
過去ログで一件だけ、動かなかったという例は、見た記憶があります。



この記事に返信する


zrs90(5さい)

リンク

2021/10/28(Thu) 03:35:46|NO.94243

お約束は、上の投稿と同じです。
最近、11や10のos判定で、色々な投稿が
出てるので、今回はこれで。

/*
os標準機能 dxdiag.exe を使ったPC情報の抜き出し
Windows7pro32ビット
- HSP3.6 2021/10/27 zrs90(5さい)

情報の抜き出し方次第ですが、ある意味、HSPのサンプルより楽?
(※もちろん、今回の方法は邪道です。)

PCに繋がって認識された物(※各ドライブ容量、モニタ、ゲームパッド等)も
表示出来てるはず?なので、必要な行の情報を引きずり出せば良いです。

難点は、必要な行を、自分でdxdiag.txtから探さなければならないのと
引きずり出した情報から、str系命令で不要部分を切り出す事です。

追記。
本当は、表示してる、dxdiag.txtに行番号つける予定でしたが
64KBの壁でエラーになる可能性の為、やめました。

スマホ投稿の為、単純な誤字があるかも。
後、インデントが入ってません。申し訳ない。
PCで作って、スマホで書いてるから
2回作ってるのと、変わんないんだよなぁ...
*/


#packopt name "pc情報(ミニ)

screen 0,1080.800
title "PC情報(ミニ) (※dxdiag.txtが無い場合、生成完了まで時間がかかります。)"
gsel 0,2
font "MS Pゴシック",16,17

exedir = dir_cur

exist "dxdiag.txt"

if strsize = -1 :{
exec “dxdiag.exe /t"
wait 1500 // 約50KBのテキストファイル作ってるから取ってはダメ。エラーになる。
dialog "dxdiag.txt作成完了", 0 ,"確認"


sdim dxdiag_info,64000
sdim user_info,4000
sdim pc_data,1024

notesel dxdiag_info
noteload "dxdiag.txt"

repeat 16 //取りたい行はご自由に。

notesel dxdiag_info
noteget pc_data,cnt

notesel user_info

// 欲しい所だけ情報取得。私のPCなので、ズレがあるかも。
// 後は適当に文字変数に代入、文字の切り出しをして下さい。

if cnt = 0 : noteadd ""+pc_data
if cnt = 1 : noteadd ""+pc_data
if cnt = 2 : noteadd ""+pc_data

if cnt = 3 : noteadd ""+pc_data // dxdiag取得日時
if cnt = 5 : noteadd ""+pc_data //OS名、バージョン他
if cnt = 6 : noteadd ""+pc_data // 言語(国)
if cnt = 10 : noteadd ""+pc_data // CPU型番、データ他
if cnt = 11 : noteadd ""+pc_data // 搭載メモリ(MB)
if cnt = 15 : noteadd ""+pc_data // DirectX

loop

objmode 2

pos 0,0 : mesbox user_info,1080,320,4
pos 0,334 : mes "●dxdiag自体↓"
pos 0,360 : mesbox dxdiag_info.320,4

/*
// dxdiag.txtを削除。(※個人情報保護/ハード構成の変わる方用?)

chdir ""+exedir
exist "dxdiag.txt"

if strsize = -1 : delete "dxdiag.txt"
*/
stop



zrs90(5さい)

リンク

2021/10/28(Thu) 09:59:15|NO.94245

訂正。

ソース上部、screen命令の 1080.800 を 1080 , 800 へ
ソース下部 mesbox命令の dxdiag_info.320,4 を dxdiag_info , 320 , 4へ
ソース下部 if strsize = -1 を if strsize ! -1 へ

書き換えて下さい。
申し訳ありません。



zrs90(5さい

リンク

2021/10/29(Fri) 20:20:35|NO.94247

昨日は、掲示板、私以外誰も書き込みがなく、ほぼ、貸切状態。
私が立てたスレッド自体、見てる方はいないはず...なので
勝手にやらせてもらってますが...(※ほぼ違法廃棄物レベル)

訂正(その2)...やはり私は、スマホ投稿では無理だな。

● 一番最初。#packopt の行 " が抜けてる。
● 画面上部、font命令、普通の MS ゴシック に変更して下さい。
...字下げがバラバラになってました。

...まだあるかも。間違い。
PCだとコピペで貼り付けられるんですよね。この掲示板。

−追記ー
dxdiag.exe 自体は、使った事があっても
dxdiag.txt を作ってみた方は、ほとんどいないと思います。

この方法は、WinApi使わずに、数百行以上の情報が引き出せます。
(※Windows7HOMEでは、試してない。)
...osの電源設定、dpi設定、各種ドライバー...等々。
ただし、この情報を扱って何かするなら、当然、それなりの技量が必要です。

後、本体のBIOSや、ドライバーが古いと、私のPCみたいに
Disk情報が、SCSI ドライブ(※業務用機種ですが、SCSI は流石に使ってない。)
になったりするので、注意が必要です。

ただし、本体のBIOSや、ドライバーのアップデートで
不具合が起きる事もあるので、問題なく動いている
場合は、おすすめしません。



ONION software Copyright 1997-2023(c) All rights reserved.