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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0228
バルバトス〜時間後にシャットダウン10解決


バルバトス

リンク

2008/2/28(Thu) 15:22:35|NO.13798

〜時間後に電源を切るプログラムを作りたくて、
#include "hspext.as"
width 300,300,300,300
pos 25,50
font "",25
x=5
input x,100,20
pos 127,50
font "",17
mes"時間後にシャットダウン"
pos 190,100
button"OK",*off
stop
*off
pos 20,200
mes x
pos 50,200
mes"時間後にシャットダウンします。"
t=x*360000
wait t
sysexit 0
sysexit 2
sysexit 3
end

このようなスクリプトを作成したのですが、
これじゃシャットダウンできません・・・
どうかシャットダウンする方法を教えてください。お願いします。



この記事に返信する


begriff

リンク

2008/2/28(Thu) 15:37:24|NO.13801

ヘルプから引用
〜sysexit〜
>WindowsNTや2000 などリソース権限があるOSでは、管理者権限でログオンして
>いないと、この命令を実行することはできません。



バルバトス

リンク

2008/2/28(Thu) 17:09:09|NO.13806

返信ありがとうございます。
しかし、ログオフはできるんです。
シャットッダウンができません・・・



inovia

リンク

2008/2/28(Thu) 20:14:23|NO.13808

sysexit 0
が先に実行されているのでシャットダウンができないのでは?
sysexit 0はログオフなので・・・



バルバトス

リンク

2008/2/28(Thu) 23:14:26|NO.13815

ありがとうございます!
しかし、
sysexit 2
だけでも試してみたのですが、やはりできないのです・・・



YRIN

リンク

2008/2/29(Fri) 03:25:39|NO.13821

exec "shutdown -c \"コメント\" -s -t 10000"
1万秒後にシャットダウンします@winxp

一応これでもできます。



inovia

リンク

2008/2/29(Fri) 06:58:08|NO.13823

sysexit 2
sysexit 3
は同時に指定してください。

それと、スクリプトエディタは保存していないと終了がキャンセルされます。
もしかしたら、終了を阻害しているプログラムがあるかもしれません。



begriff

リンク

2008/2/29(Fri) 08:01:53|NO.13824

プロセスに"SeShutdownPrivilege"権限を与えないとできないようです。
こちらが参考になります。
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200604/06050024.txt



begriff

リンク

2008/2/29(Fri) 08:25:35|NO.13825

上のやつを参考にしてみました。

#module #uselib "kernel32.dll" #cfunc GetCurrentProcess "GetCurrentProcess" #uselib "advapi32.dll" #func OpenProcessToken "OpenProcessToken" sptr,sptr,sptr #func LookupPrivilegeValueA "LookupPrivilegeValueA" sptr,sptr,sptr #func AdjustTokenPrivileges "AdjustTokenPrivileges" sptr,sptr,sptr,sptr,sptr,sptr #deffunc get_ssp OpenProcessToken GetCurrentProcess(),$28,varptr(token) LookupPrivilegeValueA 0,"SeShutdownPrivilege",varptr(pluid) newstate(0)= 1, pluid, 0, 2 AdjustTokenPrivileges token,0,varptr(newstate),0,0,0 return #global #include "hspext.as" get_ssp //プロセスに権限を与えている。 mes "五秒後に終了します。" wait 500 sysexit 2 sysexit 3



バルバトス

リンク

2008/2/29(Fri) 16:13:08|NO.13831

皆さん本当にありがとうございます!!!
おかげさまでうまくいきました( ^ω^)



バルバトス

リンク

2008/2/29(Fri) 16:45:15|NO.13832

ありがとうございました!



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