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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1203
ヘビウィンドウ取得 サイズ変更2未解決


ヘビ

リンク

2013/12/3(Tue) 20:32:24|NO.58573

#include "user32.as" 
if ( aa == 1 ) { GetForegroundWindow hnd = stat a = "" z = 128 GetWindowText hnd, varptr(a), z if ( a == "タイトル名" ) { wait 60 nWidth = 800 nHeight = 600 FindWindow "クラス名",0 : hwnd_schat=stat dim rect, 4 GetWindowRect hwnd_schat, varptr(rect) MoveWindow hwnd_schat, rect(0), rect(1), nWidth, nHeight, 1 } }


指定したウィンドウを取得し、そのウィンドウのサイズ変更。
と言うソースなんですが

#uselib "user32.dll"
#func MoveWindow "MoveWindow" int, int, int, int, int, int
#func GetWindowRect "GetWindowRect" int, int
#func GetWindowText "GetWindowTextA" int, int
#cfunc FindWindow "FindWindowA" sptr, sptr
に変えると実行できません。
どうすればよいでしょう?



この記事に返信する


掘木

リンク

2013/12/3(Tue) 21:16:05|NO.58574

〜〜ですが、〜〜に"変える"と"実行できない"といっても

何を変えたのか
実行できないってのは具体的にどういう状況なのか。エラーメッセージが出ているのか?

がよく分かりかねるが最初の行の#include文をその5行と差し替えたとして取ってみる。
するとコンパイルが通らない。(これが"実行できない"なのか?)
以下のようなメッセージがコンパイル失敗を知らせる。

???(xx) : error 2 : 文法が間違っています (xx行目)
--> getforegroundwindow

if ( aa == 1 ) {の次の行(xx行目)の
GetForegroundWindow
ってなにさ?その後に=とか++とかがないから変数じゃないけどそんな命令しらないよ?と言ってきている。

#funcもしくは#cfunc忘れではなかろうか。



MillkeyStars

リンク

2013/12/4(Wed) 13:20:44|NO.58578

いろいろと間違っているが、答えはだいたい掘木さんの回答だ。

#func は命令であり、#cfunc は関数である。
改良スクリプトを見る限り、関数に変更したはずなのに、命令として実行しようとしている。
命令の戻り値は基本 stat に代入されるが、関数の戻り値は、以下の通りです。
[命令の場合]

FindWindow "クラス名",0 : hwnd_schat=stat

[関数の場合]

hwnd_schat = FindWindow("クラス名",0)



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