突然書き込み申し訳ございません
ネットゲームが好きですか?*^v^*
このサイトをおすすめ。各ゲームの激安販売を提供します。
当サイトは信用第一 安心 安全 簡単な取引場所を提供していたします
遊びに行きましょう
www.rmt0120.com
rmtsale@hotmail.com
2006年 08月 17日 15時 39分 03秒 に私が記載した質問
(VBScript5.1の環境で、クラス内に配列要素をもたせられない)について
試行錯誤して、回避策を見つけました。以下に記述します。
Class TestClass
Private a() '<-変更点1
Private Sub Class_Initialize()
Dim i
Redim a(9) '<-変更点2
For i = 0 To 9
a(i) = 0
Next
End Sub
End Class
−−−−
変更点は、
1・動的配列で宣言する。
2・Redimで領域を確保しなおす。
※静的配列だとだめみたいです。
以上、ご参考まで。
ちゃっぴさんってひとのあげあしをとるのが得意ですよね。
そんなことを笑っているようじゃ、たいした人間じゃないんでしょうね。
どうでもいいことですけど(笑)
WSHやVBSでカーソルイメージを変更させる事はできますか?
初心者です。
Xpを使用していますが、ログオン直後にWSHを使用してXpの起動完了
を把握することは出来るでしょうか。
アプリが起動できる状態になってもまだIME関係や常駐アプリ系の作
業を続けているので、これらすべての起動が完了できたという状態
を確認したいのです。
よろしくお願いします。
ちゃっぴさん、
わかりました。回答ありがとうございます。
ご親切に sample まで用意して頂いて、本当にありがとうございました。
> 次回起動時にも繁栄させるには、
では "繁栄" させてみましょう(笑)
Const THIS_PROGRAM_NAME = "BreedingSample"
Const REG_PATH_PREVIOUS_VALUE = "HKCU\Software\TyappiSoft\BreedingSample\PreviousValue"
Const PROMPT_MESSAGE = "繁栄させましょう!"
Dim objWshShell
Dim strDefault
Dim strInput
On Error Resume Next
Set objWshShell = CreateObject("WScript.Shell")
strDefault = objWshShell.RegRead(REG_PATH_PREVIOUS_VALUE)
On Error Goto 0
strInput = InputBox(PROMPT_MESSAGE, THIS_PROGRAM_NAME, strDefault)
If IsEmpty(strInput) = False Then
On Error Resume Next
objWshShell.RegWrite REG_PATH_PREVIOUS_VALUE, strDefault & " " & strInput, "REG_SZ"
On Error Goto 0
WScript.Echo strInput
End If
WSH の実行が終了した場合、memory に入っていた data はすべて破棄されます。
したがって、data の永続化を図りたい場合には、外部(file, registry 等)に保存してから終了する必要があります。
上記 sample では、保存する対象に registry を選択しています。
初心者なので初歩的な質問ですいません。
例えば、インプットボックス等で入力した値を
次回起動時にも繁栄させるには、
どのような手段がありますか?
To: 魔界の仮面弁士さん、
通常のショートカットのパターンでした。RunメソッドでアプリBを起動してフォルダAを引き渡すことができるのですね、理解不足でした。
WshShell.Run アプリBのパス & フォルダAのパス
でうまく行きました。ありがとうございました。
VBScript5.1の環境で以下の問題に遭遇しています。
クラスに配列要素を持たせることはできないのでしょうか?
以下のようなコードを書くと、実行時エラーになってしまいます。
Class TestClass
Private a(9)
Private Sub Class_Initialize()
Dim i
For i = 0 To 9
a(i) = 0
Next
End Sub
End Class
Dim o
Set o = New TestClass
------------------------------------------------------------
実行時エラーの内容は以下のとおり。
C:\TestClass.vbs(6, 7) Microsoft VBScript 実行時エラー: 型が一致しません。: 'a'
Class_Initializeで配列に0を代入するところでエラーになってしまうようです。
同じソースをVBScript5.6の環境で動かすとエラーにならないので
VBScript5.1特有の問題かと思うのですが、回避策・別解などご存知の方はいらっしゃいませんでしょうか?
以上、よろしくおねがいいたします。
はぐれ さん、こんにちは。
そのセキュリティアプリ B の細かい仕様等が不明なので、具体的なコードまでは示すことが
できませんが、もしもそのショートカットアイコンが、シェルエクステンションとして
登録されたタイプのものだとしたら、スクリプトからの制御は困難かもしれません。
ただし、フォルダAをエクスプローラ上で右クリックした時に、そのフォルダを
アプリBに引き渡すためのコンテキストメニューが表示されるようであれば、
FolderItemVerb オブジェクトなどを用いて呼び出すことができるかも知れません。
あるいは、それがシェルエクステンションを用いていない通常のショートカットであり、
単にコマンドラインとしてドロップされたアイテムを受け取るだけの物だとすれば、
WshShell.Run メソッドを用いる事で、アプリBにフォルダAを渡して起動できるかと思います。
To: jjさん
回答ありがとうございます。jscriptで記述されているようですので100%は理解できていませんが、どうも私が欲しているものとは違うようです。説明が不十分だったようです。
デスクトップに、フォルダAとアプリケーションBのアイコンがあります。アプリケーションBは簡易なセキュリティアプリで、フォルダAをこのアプリケーションBのアイコンの上にDrag & Dropするとアプリが起動し、「フォルダをエクスプローラから見えないようにしますか?」のようなダイアログが表示されます。
あるvbsを記述し、このvbsを起動するとフォルダAをアプリケーションBのアイコン上にDrag & Dropして上記のダイアログが表示されるようにすることは可能でしょうか?このような処理をするvbsが記述できるのかどうかを知りたいのです。宜しくお願いします。
//////////////////////////////////////////////////////////////////////
//
// 名 称:getDragDropFileName()
//
// 機 能:Drag & DropされたFileのPath+FileNameを取得します
// :ただし、取得するのは最初の1件だけです
//
// 戻り値:Drag & Drop有り→"C\WINDOWS\デスクトップ\hogehoge.txt"
// :Drag & Drop無し→""
//
// 履 歴:2003-02-22
//
function getDragDropFileName()
{
var args = WScript.Arguments;
// コマンドラインの引数の有無確認
if (args.count() != 0)
{
return args(0);
}
else
{
return "";
}
}
vbs初心者です。
ファイルやフォルダのアイコンをアプリケーションのアイコンへDrag & Dropして使用するタイプのものがありますが、このファイルやフォルダのアイコンをアプリケーションのアイコンへDrag & Dropする作業自体(or同等の効果を生む作業)をvbsで記述することが可能でしょうか?
あちこち情報が探してみたのですが、見つからず困っております。もし可能であればシンプルなvbsサンプルを教えていただけないでしょうか。よろしくお願いします。
To: アズキ さん
If Instr(1,I.LocationURL,"file:")<>0 Xor Len(I.LocationURL)=0 Then
End If
を削除すればIEも閉じると思います。
# しかしまだ経験の浅いときに作ったので変数名のつけ方がめちゃくちゃですね(汗
Aptana IDE for JavaScript, CSS and HTML.(Win,Mac,Linux)
http://www.aptana.com/
説明用動画
http://www.aptana.tv/
EVEREST Home Edition v2.20
で取得できる情報の抜粋です
以下------------------------------
要約
コンピュータ:
OS Microsoft Windows XP Professional
サービスパック Service Pack 2
DirectX 4.09.00.0904 (DirectX 9.0c)
コンピュータ名 xxx-xxxx
ユーザー名 xxxx
マザーボード:
CPUタイプ AMD Athlon 64, 2000 MHz (10 x 200) 3200+
マザーボード名 Asus A8N-E (3 PCI, 2 PCI-E x1, 1 PCI-E x4, 1 PCI-E x16, 4 DDR DIMM, Audio, Gigabit LAN)
マザーボードチップセット nVIDIA nForce4 Ultra, AMD Hammer
システムメモリ 1024 MB (PC3200 DDR SDRAM)
BIOSタイプ Award (06/08/05)
Pコミュニケーションポート 通信ポート (COM1)
Pコミュニケーションポート ECP プリンタ ポート (LPT1)
ディスプレイ:
ビデオカード NVIDIA GeForce 6600 (256 MB)
3Dアクセラレータ nVIDIA GeForce 6600 PCI-E
モニタ Mitsubishi TFT RDT178M (Analog) [17" LCD] (xxxxxxxTJ)
ストレージ:
IDEコントローラ 標準デュアル チャネル PCI IDE コントローラ
IDEコントローラ 標準デュアル チャネル PCI IDE コントローラ
IDEコントローラ 標準デュアル チャネル PCI IDE コントローラ
フロッピードライブ フロッピー ディスク ドライブ
ディスクドライブ ST3250823AS (250 GB, 7200 RPM, SATA)
ディスクドライブ Generic STORAGE DEVICE USB Device
ディスクドライブ Generic STORAGE DEVICE USB Device
ディスクドライブ FUJITSU MCG3064AP USB Drive
CD/DVDドライブ HL-DT-ST DVDRAM GSA-4120B USB Device (DVD+R9:2.4x, DVD+RW:12x/4x, DVD-RW:8x/4x, DVD-RAM:5x, DVD-ROM:16x, CD:40x/24x/40x DVD+RW/DVD-RW/DVD-RAM)
CD/DVDドライブ HL-DT-ST DVDRAM GSA-4167B (DVD+R9:8x, DVD-R9:4x, DVD+RW:16x/8x, DVD-RW:16x/6x, DVD-RAM:5x, DVD-ROM:16x, CD:48x/32x/48x DVD+RW/DVD-RW/DVD-RAM)
HDDのSMARTステータス OK
パーティション:
C: (NTFS) 47692 MB (30484 MB 空き)
D: (NTFS) 95385 MB (80892 MB 空き)
E: (NTFS) 95385 MB (84067 MB 空き)
総容量 232.9 GB (190.9 GB 空き)
入力デバイス:
キーボード 日本語 PS/2 キーボード (106/109 キー Ctrl+英数)
マウス Microsoft PS/2 Port Mouse (IntelliPoint)
マウス Microsoft USB Wireless Mouse (IntelliPoint)
ネットワーク:
ネットワークアダプタ Efficient Networks Enternet P.P.P.o.E Adapter - パケット スケジューラ ミニポート (xxx.xxx.xx.xxx)
ネットワークアダプタ NVIDIA nForce Networking Controller - パケット スケジューラ ミニポート (xxx.xxx.xx.x)
デバイス:
プリンタ EPSON PX-G900
USB1コントローラ nVIDIA MCP04 - OHCI USB Controller
USB2コントローラ nVIDIA MCP04 - EHCI USB 2.0 Controller
USBデバイス USB Storage Adapter (TPP)
USBデバイス USB ヒューマン インターフェイス デバイス
USBデバイス USB 印刷サポート
USBデバイス USB 大容量記憶装置デバイス
USBデバイス USB 大容量記憶装置デバイス
USBデバイス 汎用 USB ハブ
迄------------------------------
要約だけでもこんなで
明細は
cpuでは
以下------------------------------
CPUinfo EVEREST Home Edition c 2003-2005 Lavalys, Inc.
AddressWidth: 32 CPUのプロパティ:
Architecture: 0 メーカー AMD
Availability: 3 バージョン AMD Athlon? 64 Processor 3200+
Caption: x86 Family 15 Model 47 Stepping 2 外部クロック 200 MHz
ConfigManagerErrorCode: 最大クロック 3700 MHz
ConfigManagerUserConfig: 現在のクロック 2000 MHz
CpuStatus: 1 タイプ Central Processor
CreationClassName: Win32_Processor 電圧 1.4 V
CurrentClockSpeed: 2010 ステータス 有効
CurrentVoltage: 14 ソケット Socket 939
DataWidth: 32
Description: x86 Family 15 Model 47 Stepping 2 CPUのプロパティ:
DeviceID: CPU0 CPUタイプ AMD Athlon 64 3200+
ErrorCleared: CPU別名 Venice S939
ErrorDescription: CPUのステッピング DH-E6
ExtClock: 200 CPU名 AMD Athlon? 64 Processor 3200+
Family: 2 リビジョン 00020FF2h
InstallDate:
L2CacheSize: 512 CPUスピード:
L2CacheSpeed: CPUクロック 2009.95 MHz
LastErrorCode: CPU倍率 10.0x
Level: 15 CPU FSB 200.99 MHz (オリジナル: 200 MHz)
LoadPercentage: 0 メモリバス 200.99 MHz
Manufacturer: AuthenticAMD
MaxClockSpeed: 2010 CPUキャッシュ:
Name: AMD Athlon? 64 Processor 3200+ L1コードキャッシュ 64 KB (Parity)
OtherFamilyDescription: L1データキャッシュ 64 KB (ECC)
PNPDeviceID: L2キャッシュ 512 KB (On-Die, ECC, Full-Speed)
PowerManagementCapabilities:
PowerManagementSupported: FALSE CPUのプロパティ:
ProcessorId: 078BFBFF00020FF2 CPUタイプ AMD Athlon 64, 2000 MHz (10 x 200) 3200+
ProcessorType: 3 CPU別名 Venice S939
Revision: 12034 CPUのステッピング DH-E6
Role: CPU 命令セット x86, x86-64, MMX, 3DNow!, SSE, SSE2, SSE3
SocketDesignation: Socket 939 最小 / 最大 CPU倍率 4x / 10x
Status: OK L1コードキャッシュ 64 KB (Parity)
StatusInfo: 3 L1データキャッシュ 64 KB (ECC)
Stepping: 2 L2キャッシュ 512 KB (On-Die, ECC, Full-Speed)
SystemCreationClassName: Win32_ComputerSystem
SystemName: xxxx-xxxx CPU物理情報:
UniqueId: パッケージタイプ 939 Pin uOPGA
UpgradeMethod: 18 パッケージサイズ 4.00 cm x 4.00 cm
Version: モデル 15, ステッピング 2 トランジスター 68.5 million
VoltageCaps: プロセス技術 11Mi, 90 nm, CMOS, Cu, SOI
ダイサイズ 84 mm2
コア電圧 1.100 - 1.450 V
I/O電圧 1.2 V + 2.5 V
最大消費電力 67.0 W
CPUメーカー:
会社名 Advanced Micro Devices, Inc.
製品情報 http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html
迄------------------------------
のような感じでものすごい量の情報が取得できます
他にもこんなソフトはあるのでしょうか
ここまでとはいいませんが
スクリプトでどこまで取得できるのかと思っています
アドバイスありましたらよろしく御願い致します
http://www.geocities.jp/sinapusu2002/suugaku/fish.htm
魚ですが
画面が重なっているのを修正してちょっと楽しい感じにしてみました。
お世話になります。
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/download.htm
allclose.lzh
なのですが、ie を閉じることは出来ないのでしょうか?
WinXP SP2 なのですが、ie 以外のフォルダしか閉じないように思えます。
よろしくお願い申し上げます。
WMIで、ググってみて
CPUinfo、Momitorinfoのスクリプトを見つけることは出来たのですが
[ Mitsubishi TFT RDT178M (Analog) ]
モニタのプロパティ:
モニタ名 Mitsubishi TFT RDT178M (Analog)
モニタID MELXXX
モデル RDT178M
モニタタイプ 17" LCD
製造日 39 週 / 2003
シリアルナンバー 3XXXXXX1TJ
は取得できませんでした
アドバイスありましたらよろしく御願い致します
参考
Momitorinfo
http://www.codecomments.com/archive305-2004-3-158932.html
エクセルVBAに修正してます
Public Sub MonitorINFO()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor", , 48)
strD = ""
For Each objItem In colItems
strD = "SystemName: " & objItem.SystemName
strD = strD & vbCrLf & "Caption: " & objItem.Caption
strD = strD & vbCrLf & "MonitorManufacturer: " & objItem.MonitorManufacturer
strD = strD & vbCrLf & "MonitorType: " & objItem.MonitorType
strD = strD & vbCrLf & "Name: " & objItem.Name
strD = strD & vbCrLf & "Description: " & objItem.Description
strD = strD & vbCrLf & "DeviceID: " & objItem.DeviceID
strD = strD & vbCrLf & "DisplayType: " & objItem.DisplayType
strD = strD & vbCrLf & "ScreenHeight: " & objItem.ScreenHeight
strD = strD & vbCrLf & "ScreenWidth: " & objItem.ScreenWidth
strD = strD & vbCrLf & "PixelsPerXLogicalInch: " & objItem.PixelsPerXLogicalInch
strD = strD & vbCrLf & "PixelsPerYLogicalInch: " & objItem.PixelsPerYLogicalInch
Next
MsgBox strD
End Sub
CPUinfo
取得先メモ忘れしました
Sub CPUINFO()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
strD = ""
For Each objItem In colItems
strD = "AddressWidth: " & objItem.AddressWidth
strD = strD & vbCrLf & "Architecture: " & objItem.Architecture
strD = strD & vbCrLf & "Availability: " & objItem.Availability
strD = strD & vbCrLf & "Caption: " & objItem.Caption
strD = strD & vbCrLf & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
strD = strD & vbCrLf & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
strD = strD & vbCrLf & "CpuStatus: " & objItem.CpuStatus
strD = strD & vbCrLf & "CreationClassName: " & objItem.CreationClassName
strD = strD & vbCrLf & "CurrentClockSpeed: " & objItem.CurrentClockSpeed
strD = strD & vbCrLf & "CurrentVoltage: " & objItem.CurrentVoltage
strD = strD & vbCrLf & "DataWidth: " & objItem.DataWidth
strD = strD & vbCrLf & "Description: " & objItem.Description
strD = strD & vbCrLf & "DeviceID: " & objItem.DeviceID
strD = strD & vbCrLf & "ErrorCleared: " & objItem.ErrorCleared
strD = strD & vbCrLf & "ErrorDescription: " & objItem.ErrorDescription
strD = strD & vbCrLf & "ExtClock: " & objItem.ExtClock
strD = strD & vbCrLf & "Family: " & objItem.Family
strD = strD & vbCrLf & "InstallDate: " & objItem.InstallDate
strD = strD & vbCrLf & "L2CacheSize: " & objItem.L2CacheSize
strD = strD & vbCrLf & "L2CacheSpeed: " & objItem.L2CacheSpeed
strD = strD & vbCrLf & "LastErrorCode: " & objItem.LastErrorCode
strD = strD & vbCrLf & "Level: " & objItem.Level
strD = strD & vbCrLf & "LoadPercentage: " & objItem.LoadPercentage
strD = strD & vbCrLf & "Manufacturer: " & objItem.Manufacturer
strD = strD & vbCrLf & "MaxClockSpeed: " & objItem.MaxClockSpeed
strD = strD & vbCrLf & "Name: " & objItem.Name
strD = strD & vbCrLf & "OtherFamilyDescription: " & objItem.OtherFamilyDescription
strD = strD & vbCrLf & "PNPDeviceID: " & objItem.PNPDeviceID
strD = strD & vbCrLf & "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities
strD = strD & vbCrLf & "PowerManagementSupported: " & objItem.PowerManagementSupported
strD = strD & vbCrLf & "ProcessorId: " & objItem.ProcessorId
strD = strD & vbCrLf & "ProcessorType: " & objItem.ProcessorType
strD = strD & vbCrLf & "Revision: " & objItem.Revision
strD = strD & vbCrLf & "Role: " & objItem.Role
strD = strD & vbCrLf & "SocketDesignation: " & objItem.SocketDesignation
strD = strD & vbCrLf & "Status: " & objItem.Status
strD = strD & vbCrLf & "StatusInfo: " & objItem.StatusInfo
strD = strD & vbCrLf & "Stepping: " & objItem.Stepping
strD = strD & vbCrLf & "SystemCreationClassName: " & objItem.SystemCreationClassName
strD = strD & vbCrLf & "SystemName: " & objItem.SystemName
strD = strD & vbCrLf & "UniqueId: " & objItem.UniqueId
strD = strD & vbCrLf & "UpgradeMethod: " & objItem.UpgradeMethod
strD = strD & vbCrLf & "Version: " & objItem.Version
strD = strD & vbCrLf & "VoltageCaps: " & objItem.VoltageCaps
Next
MsgBox strD
End Sub
ちょっと気晴らしに
http://www.geocities.jp/sinapusu2002/suugaku/fish.htm
泳ぐ魚っぽいの作ってみました。
結構簡単に使えると思います。
SGMLでなくてSVGでした。
SVG使ったことが無いので疑問だらけなのですが
SVGって大量に曲線とかを表示して動かしたり
色を変えたりする処理って向いてますかね?
後花火が爆発した時にその周辺の背景の明るさを
変えたりするために重ね合わせたりとか出来ますか?
煙っぽい画像を重ね合わせたりとかもしてみたいのですが。
変数をいじっているうちに花火少しましになってきました。
でも現状まだダメだめです。
http://www.geocities.jp/sinapusu2002/suugaku/test3Dhanabi.htm
なにが悪いのか改善しなきゃいけない部分は大量にあるのですが
どういうコードを書いて表現すればよいのやら???です。
ブラウザで曲線を表示したりする技術SGMLでしたっけ?
これを使って線花火を再現しようと思います。
これって動作はおもいのでしょうか?
こんにちは よろしく御願い致します
PC環境取得フリーソフト
EVEREST Home Edition v2.20
http://www.altech-ads.com/product/10000755.htm
で
モニタ ページ
[ Mitsubishi TFT RDT178M (Analog) ]
モニタのプロパティ:
モニタ名 Mitsubishi TFT RDT178M (Analog)
モニタID MELXXX
モデル RDT178M
モニタタイプ 17" LCD
製造日 39 週 / 2003
シリアルナンバー 3XXXXXX1TJ
が取得できるのですが、
wsh、wmi等で同様な情報の取得は出来るでしょうか
よろしく御願い致します
http://www.geocities.jp/sinapusu2002/suugaku/test3Dhanabi.htm
花火が3Dになりました。
まだなんか色々変な感じなのですが取り合えず出来たので
一つ見てください。
現状画像を準備する時の処理が重いのとIE6以外で
テストしてないので他のブラウザで動くのかどうかが問題です。
>>a3さん
なるほど、そういう訳だったのですね。ありがとうございました。
元ネタのソフトウェアの方を直さなければダメなのですね。
>>エルモ さん 2006年 07月 20日 02時 07分 06秒
難しいとおもいますよ。
理由は、取得しようとしているWebページにEUCとShift-JISが混在しているため。(改行コードも複数混在してます。)
なんとかしようと思えば、W3getのコード変換指定で
EUCに変換するとか(改行コードはうまく変換されませんが・・・)
rc = bobj.W3get("-d c:\static\ -o test.htm -j euc http://seminaru.jp/index.php")
To Meru さん 2006年 07月 22日 11時 25分 21秒
Batch で reg save を利用したほうが簡単でしょう。
はじめまして。
現在WSHにてレジストリ操作部分をこちらの「VBスクリプト講座」にて
勉強中ですが、最終的にVBスクリプトを使ってレジストリの特定キーの
バックアップ操作をしたいのですが、可能なのでしょうか?
記述などに関してはこれから勉強しますが、可能かどうかの判断すら
出来ない状況ですので、可能・不可能がわかる方がいらっしゃいましたら、
それだけで良いので、今後の勉強のためにぜひ教えてください。
よろしくお願いいたします。
HTAには出来ませんでしたが
解説を付け加えてみました。
ある程度スクリプトを書ける方が解説を元に
応用して花火の発射順序や手順を設定できる説明に
なってるかどうか全く自信がありません。
http://www.geocities.jp/sinapusu2002/suugaku/hanabitest4.htm
ちょっと評価していただけませんか?
本物の花火って長い曲線みたいになって点じゃないですよね。
どうやってそんなの表現しようかちょっと悩んでます。
BASPのw3getでWebぺージをファイル保存しようとしたところ、文字化けが発生して失敗しました。確認の為に秀丸で開いたところ、66カ所でEUC絡みの変換エラーが発生していました。w3getで文字化けが起きないようにページを取得することは可能でしょうか?
ソースコードは下記の通りです。
Set bobj = wscript.CreateObject("basp21")
rc = bobj.W3get("-d c:\static\ -o test.htm http://seminaru.jp/index.php")
IE6でしかテストをしてないのですが。
取り合えず完成しましたので見ていただきたいのですが。
ページはこちらです。
http://www.geocities.jp/sinapusu2002/suugaku/hanabitest4.htm
ただ単に空気抵抗アリの条件で放物線を描いて飛ぶ玉を無数に発射しているだけなのですがとりあえずまあまあ良い感じだと思います。
CPU使用率から計算して
現状画像処理がCPU使用率の7割以上を閉めてネックになってるようなので
なんかよい方法を知りたいのですが。
例えば何の工夫もしないとIMGのTopとかLeftの位置を変更するごとに
画面更新が行われるからそれを止めておくとか。
なんか色々あると思うんですけど自分で調べてもよく分からないです。
と思いましたら、ネットウォッチしながら
漫然と作ってましたらなんかもう出来てしまいました。
後は機能を増やして関数の数を作りこむだけなのですが
表示してみたら予想と違ってなんか綺麗じゃないですし、
火花の数、スムーズに動かすとなると200くらいが限界みたいで
千個位をスムーズに動かすのは無理そうです。
それくらいの数動かさないと綺麗に見えないはずなんで悩んでます。
重力をでかくして計算速度を落として表示範囲を小さくし
時間の経過速度を遅くすればごまかせるかなとか考えているのですが。
後やっぱ本物の花火は煙が出たりかぜで流れたり微妙に揺れながら飛んだり
途中で色が変わったり背景の夜空も均質でないですし。
煙は無理でも火花の色変えくらいは何種類もちいさな火花の絵
を用意して時間経過と共に変更するようにする処理を
作ればできるかなとか。
一応花火の位置指定とかユーザーの方で設定できる入力画面を作りこんで
そのうちアップしますんでアドバイスお願いしたいのですが。
AkAさんどうもです。
実はそんなに凄いものじゃないです。
どちらかというと勉強用ですね。
高校生レベルでして簡易計算の空気抵抗アリの状態で星型や楕円の花火を
関数一つで表示するやつでして。
バグフィックスや作りこみも含めて後2〜3日ってところでしょうか。
私驚異的なほどに頭の中で考えていることと記述内容がずれるんで
、つまり書き間違いだらけなんですがそれで結構時間かかるんです。
まあ2〜3日といっても
処理スピードしだいなんで処理がやたら重かったらやり直しですが。
TV番組でしたらBSで月曜朝5時頃にやっている番組いい感じですよ。
8台参加のキャンピングカーレース
曲がるたびに後部のキャンピング部分が曲がりきれず
観客の目の前で曲がり角のたびに大破、
挙句の果てに他の車の残骸に突っ込んでおじゃん
完走一台もなし。
インラインスケートを履いてのバスケ。
全然動かないワニレース。インディアンの伝統競技大会。
世界きこり選手権。
毎回凄い取材力でしょうもない大会を見つけ出します。
>AKA さん 2006年 07月 15日 20時 27分 26秒
>Win2000の為、ZIP圧縮フォルダについては試すことができないのでわからないですが、タイマー、というのはWScript.Timeoutの事では・・・ないですよね(^^;)
Win2Kでも動きますよ。テキストファイル作成→ファイルヘッダ書き込み→Wscript or Scripting Runtime 或いは IE の持っている Copyhere メソッドでファイル「追加」という仕掛けです。
http://www.vector.co.jp/soft/winnt/util/se355605.html
なお、WScript.Timeoutではないです。圧縮の同期をとるためsleepで待ち合わせをしています。
>>マックスウェル さん 2006年 07月 15日 17時 45分 20秒
Win2000の為、ZIP圧縮フォルダについては試すことができないのでわからないですが、タイマー、というのはWScript.Timeoutの事では・・・ないですよね(^^;)
#ばんのしゃーによかばんたさんのCAB圧縮のスクリプトもWin2000では動かないんですよね・・・
個数が予定数に達したら、という事ならば、1つずつ圧縮してみたらダメでしょうか?全くわからないので違う事言ってるかもしれないですが・・・
誰か〜XPの人ヘルプ〜。
-------------------------------------------------------------------------------
>>sss さん 2006年 07月 15日 08時 57分 01秒
何か凄そうですね。
非常に面白そうなのでHTAとかにしてUPしてくれると嬉しかったりして・・・
注意、とかは私にはわからないですが、スクリプトでそういう処理をやるのって色々大変だったりするんじゃないでしょうか。
スクリプト自体も遅いし、もしインターネットを通すのだとするとさらに遅くなるのではないでしょうか。IEも色々不気味な動きしますし・・・
-------------------------------------------------------------------------------
>>ちゃっぴ さん 2006年 07月 10日 22時 56分 21秒
だって「DOS用の」って書いたじゃん(^^;)
Win32コンソールアプリは絶対にDOSじゃ動かないからDOS用ったらDOSアプリだし。「DOSプロンプト用」だったら確かにそうかもしんないけど。
わかってるんなら、
list153
>まろ さん 2006年 03月 11日 22時 39分 10秒
>WIN2000のSUBSTはDOSアプリではないのでしょうか?
みたいなの、何で教えてやんないのよ?まあオレも教えてないけど(^^;)
#関係ないけど9xでNTと同じようにデバイスコントロールするのかなりややこいんだよね・・・まあ面白いんだけど。
あまり作り込んでませんが、Outlook Expressのプレビュー画面を盗み、履歴を取ってしまうスパイDLLを作ってみました。ただし取り扱いが少し面倒です・・・
DSPY001.LZH:Outlook Expressのdocumentオブジェクト使用履歴を取るスパイDLL
http://winscript.s41.xrea.com/upload/source/No_0020.lzh
-------------------------------------------------------------------------------
>>mm さん 2006年 06月 26日 09時 48分 11秒
>>管理人むたぐち さん 2006年 07月 02日 15時 05分 37秒
>未確認ですがTextStreamでは無理なんじゃないかと思います。
mmさんはTextStream.Write &H1Aってやったんでしょ?
TextStream.Write Chr(&H1A)なら大丈夫です。
-------------------------------------------------------------------------------
>>管理人むたぐち さん 2006年 07月 10日 00時 24分 53秒
>OS標準の機能でやるなら、http://santamartadotnet.hp.infoseek.co.jp/documents/dotnettips/tips017.html
>にあるコードをenumwindows.csと名前をつけて保存し、
>csc.exe(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe)でコンパイルし
>(csc.exe enumwindows.cs)、生成したenumwindows.exeをWshShell.Execメソッドで呼び出し、
>標準入力をWshExecオブジェクトを通して読むと良いでしょう。
「OS標準の機能」と言うのは何かヘンな気が・・・(^^;)
DWもソースコードがついてるのでこれもcl.exeでコンパイルして使うとOS標準って事になるのでしょうか??
>DynamicWrapperの元になったDynamicCallではEnumWindows >Win32API関数を使うことができないですね。
何か少し違うような気が・・・(^^;)使うことができないという部分は合ってますが。
そうそう、遅くなりましたが、MSMVP賞授賞おめでとうございます。私ももっと頑張らねばダメですね。
-------------------------------------------------------------------------------
アニメもいいですが、皆さん、NHK-BS2で月〜木00:00から放送中の「懐かしの海外ドラマ」シリーズ観てますか?
「コンバット」/「ローハイド」/「逃亡者」(デビッドジャンセン)/「アイラブルーシー」がやってます。
観てないなら一度は観てください。絶対に損はさせませんので。
ZIP圧縮をVBScriptで処理しています。ieをバックグラウンドで起動しCopyHereで圧縮する方法です。この圧縮処理をタイマー監視で打ち切りできるようにしたいのですが、お知恵を拝借いたしたく。お願いします。
非同期の圧縮なので圧縮された個数を見て予定数に達したら抜ける処理なのですが、リモートで実行した場合、コピーダイアログも見えず「キャンセル」ボタンを押せないためこのタイマー監視を入れています。
問題は解決したのですが。
余り頭がよくないもので大量に画像を動かしても
処理スピードの点でうまくいくかどうか自信がありません。
JSCRIPT+DHTMLで大量に画像を扱って動かす場合
画面を綺麗にしたりちらつきを押さえたり
特に注意しなくてはいけないことはなんでしょうか?
IE6+DHTML+Jscript
のIMGタグに関する質問なのですが。
関数の中でIMGタグをクリットエレメントで
作成しBタグをtag変数として
a=tag.insertBefore(img, null)
a.style.top=50
でこれを関数の外にあるグローバル変数の
b変数にb.push(a)として
入れたのです。
ここまではよかったのですが
関数終了後に
このb変数にいれたデータを
b[0].style.top=100
みたいな形で変更してみても画面になんの
変化も現れず画像の位置が50のまま全く変化しませんでした。
いったいこれはどういうことなのでしょうか?
変数の中身を調べてみてもTopの値は50であり
変数に間違いがあるわけでもなくIMGタグは
ちゃんと変数に入っているようです。
目的としては画像を大量に作りそれを計算に基づき
少しずつ動かしたいのですが。
AKA さん わざわざ作って頂けるとは思っていませんでした。
ありがとうございます。
ただ、皆さんの書き込まれている内容が私にはほとんど、通じません・・・
また、初歩的な事を聞いてしまうかもしれませんが、指導の方よろしく
お願いします。
To AKA さん 2006年 07月 10日 22時 33分 23秒
>一応言っておくけど、DOSアプリが32ビットAPIを使う事はないのよ。
あ、ホンマモンの DOS application でしたか、
WIN32 console application ではなく。
それは失礼しました。
>>ちゃっぴ さん 2006年 07月 10日 01時 54分 26秒
>思いっきり推測ですが、その手のものは Win32API >DeviceIoControl を
>使用していると思われるので、その影響でしょう。
一応言っておくけど、DOSアプリが32ビットAPIを使う事はないのよ。
ただ単に9xなりNT(NTVDM)なりがDOSアプリに16ビット、しかもリアルモード用のサービスを提供しているかどうかの問題。(大体INTね)
9xは提供していてNTはしていない。まあ9xは半分DOSみたいな物だから提供するのにさほど問題はないのだろうけど、NTはDOSとは全然違うからそもそも不可能な所があるののかも。
NTの方が上と思われているけど、実際は9xのテクノロジーには本当に驚かされる。V86モードを本格的に使っている事も本当に驚異だと思う。NTにはそんなものないし。
アセンブラ的にはGDT/IDTにアクセスできたりページテーブルさえも操作できるのが激面白いのだがなぜか9xを使ってると言うと叩かれる事が多くて本当にツマラン。
>>domingo さん
何か使えない話をしてしまったので、代わり、というか、CDドライブのトレイ開け閉めを行うコマンドラインツールのCサンプルを作りましたので参考にして下さい。ただし、9xでは動きません。
EJCL001.LZH:CD-ROMトレイ開閉を行うサンプル(C)
http://winscript.s41.xrea.com/upload/source/No_0018.lzh
でも短いコードなのでDWはもとより、Win32Xとかでもできると思うけど・・・
ってもうちゃっぴさんに書かれてたか。
>>管理人むたぐち さん 2006年 07月 10日 00時 24分 53秒
なるほど〜。DVD-RAMではできたりするんですか。これはますます謎が深まった・・・
>DWではできるんですよね?>AKAさん
できません(^^;)構造体にしかAddressOfは作ってないからです。(ややこしい事をすればコールバックも使えないことはないですが・・・)
DeskTopWindowから辿るしかないです。ただ、MSDNでも言われてるようにこの方法は抜ける事があるわけですが・・・
コールバックが使えるようにする構想はあるんですけど、ここの所忙しくて・・・
To AKA さん 2006年 07月 09日 21時 24分 00秒
> 「DOS用のコマンドライン型CD-ROMプレイヤーとかで閉じる事は可能」と
> 書きましたが、私が昔入手したものでやったら、どうも9xでしか
> 通用しないようです。
> Win2000だと例外が発生してしまいました・・・
> 多分他のプレイヤーでもそうなる可能性が高いです。どうもすみません。
思いっきり推測ですが、その手のものは Win32API DeviceIoControl を
使用していると思われるので、その影響でしょう。
DeviceIoControl (8 Parameters) function [Base]
http://msdn.microsoft.com/library/en-us/devio/base/deviceiocontrol.asp?frame=true
このように Application Compatibility Guide でも書かれています。
Use DeviceIoControl and Control Codes to Retrieve the Physical Drive Number
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apcompat/apcompat/use_deviceiocontrol_and_control_codes_to_retrieve_the_physical_drive_number.asp
Win32API が使えれば、DeviceIoControl で
IOCTL_STORAGE_EJECT_MEDIA, IOCTL_STORAGE_LOAD_MEDIA あたりで
いけそうな気がしますがね。
って思いっきり script と関係ないの失礼しました。
To: AKA さん 2006年 07月 08日 20時 33分 04秒
> 閉じるのですが、これは私も95時代からずっと不思議に思ってたんですが、エクスプローラでCDドライブを右クリックしても開ける方しかないですよね? なぜなんでしょう?
私の持っているDVD-RAMドライブは、ちゃんとトレイを閉めることもできます。
(右クリックメニューから「ロード」)
Windows XPの機能なのか、DVD-RAM Writerの機能なのかちょっと分からないですが。
To: 見習いMCSE さん
> @ITのチェック式WSH入門を拝見しましたが、ハルヒ好きですね?
> これからも分かる人にはわかるネタとしていろいろ混ぜてくださいw
読んでいただきありがとうございます。
ちょっといろんな意味でハズした感が強いのですが、また気が向いたら?入れていこうと思います。
To: domingo さん
> >ウィンドウのキャプションは例によってスキル低い私にはわからないですが、DWだと一応できます。
> DWってなんでしょう?勉強不足ですみません。
DynamicWrapperの元になったDynamicCallではEnumWindows Win32API関数を使うことができないですね。
(VBSにはコールバック関数のポインタを設定するAddressOf演算子がないから)
DWではできるんですよね?>AKAさん
OS標準の機能でやるなら、http://santamartadotnet.hp.infoseek.co.jp/documents/dotnettips/tips017.html
にあるコードをenumwindows.csと名前をつけて保存し、
csc.exe(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe)でコンパイルし
(csc.exe enumwindows.cs)、生成したenumwindows.exeをWshShell.Execメソッドで呼び出し、
標準入力をWshExecオブジェクトを通して読むと良いでしょう。
AKA さん ありがとうございます。
DynamicWrapperですか、検索してみます。
また何かの時にはよろしくお願いします。
>>domingo さん 2006年 07月 03日 22時 53分 02秒
「DOS用のコマンドライン型CD-ROMプレイヤーとかで閉じる事は可能」と書きましたが、私が昔入手したものでやったら、どうも9xでしか通用しないようです。Win2000だと例外が発生してしまいました・・・多分他のプレイヤーでもそうなる可能性が高いです。どうもすみません。
DynamicWrapperはカスタムコンポーネントなのでカスタムコンポーネントを追加してもいいのであれば過去ログを参照してください。
-------------------------------------------------------------------------------
>>新米MCP さん 2006年 07月 02日 22時 50分 20秒
>ねじゅみ さん (null) 2006年 06月 30日 10時 13分 48秒
のコードの
>Src.CopyTo Dst
の部分を
Do While True
X = Src.ReadText(1)
If Len(X) = 0 Then
Exit Do
End If
If Asc(X) <> &HD Then
Dst.WriteText X
End If
Loop
とかに書き換えるんじゃダメ?
AKA さん ありがとうございます。
>DOS用のコマンドライン型CD-ROMプレイヤーとかで閉じる事は可能だと思います。
探してみます。
>ウィンドウのキャプションは例によってスキル低い私にはわからないですが、DWだと一応できます。
DWってなんでしょう?勉強不足ですみません。
牟田口さん
WSH利用の際、いつもお世話になっております。
@ITのチェック式WSH入門を拝見しましたが、ハルヒ好きですね?
これからも分かる人にはわかるネタとしていろいろ混ぜてくださいw