今回からはWShellオブジェクトについて解説する。最初は外部プログラムの起動や制御を行うRun、AppActivate、SendKeysメソッドについて解説。 (1/2)
ShellExecute; 機能: 指定ファイルを指定した動作で実行します。 宣言: Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long: 引数: hWnd: ShellExecuteを呼び出すウィンドウのハンドル
別の VBScript ファイルに引数を渡す場合、起動するスクリプト名に続けてスペース区切りで引数を記述します。 launcher.ShellExecute(cmd, param, "", "open", 0); ShellExecuteという名前はWin32APIから来ています。 他の言語であっても同名で似たような動作をする関数が大概存在しますが、 当然、名前を一緒にしただけなので引数などのインターフェースが違ってきます。 Acrobatに引数を渡してPDFファイルをVBで作ったEXEから印刷させたいです。イメージ的には「ShellExecute(NULL,NULL,”acrobat.exe”,aaaaaa.pdf,NULL,SW_SHOWNORMAL);」のようなことをしたいです。開くだけでなくデ… もし同じであれば、(1)のサイトの「ShellExecute」の引数が、(2)のサイトの説明では、どの引数に該当するのか教えて頂きたいです。 違うのであれば、(1)のサイトで使用している「ShellExecute」の使い方を教えて頂きたいです。 色々調べて、WshShell.Run """C:\abcd.vbs ””10 20" とすれば引数10,20を渡してVBSを起動できることは分かりました。しかし、変数AA=10、BB=20としてWshShell.Run """C:\abcd.vbs ””AA BB” では文字列AA、BBが渡されてしまい、変数を VBSで設定系のスクリプトをWindows 7などで実行すると,UACにひっかかって Access Denied あたりのエラーがでちゃってうまく動作しません。 これを回避する方法をいろいろ調べたのですが。次のサイトなどにあった情報で解決できました。 ShellExecute 関数では,第 2 引数の値を runas にすると,ShellExecute 関数で起動するアプリの実行時に「ユーザアカウント制御」ダイアログを表示して,管理者に昇格して実行できます.
ShellExecute( hWnd, "open", "calc", NULL, NULL, SW_SHOWNORMAL ); などで行えます このときコマンドラインからでも起動できるプログラムの場合は 色々調べて、WshShell.Run """C:\abcd.vbs ””10 20" とすれば引数10,20を渡してVBSを起動できることは分かりました。しかし、変数AA=10、BB=20としてWshShell.Run """C:\abcd.vbs ””AA BB” では文字列AA、BBが渡されてしまい、変数を ShellExecute: Declare Function Api_ShellExecute& Lib "shell32" Alias "ShellExecuteA" (ByVal hWnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) Shell関数はVBAからメモ帳などの他のアプリケーションを起動することができます。 起動する際にアプリケーションに引数を渡すことも可能なため、任意のファイルをメモ帳で開く、ということも可 … ShellExecute の3番目の引数が省略されていますが、これは作業ディレクトリの指定で、このパラメータを指定しない場合、現在の作業ディレクトリが使用されます。 ShellExecute の5番目引数は、ウインドウの表示方法で、1 は、ノーマル表示を意味します。 launcher.ShellExecute(cmd, param, "", "open", 0); ShellExecuteという名前はWin32APIから来ています。 他の言語であっても同名で似たような動作をする関数が大概存在しますが、 当然、名前を一緒にしただけなので引数などのインターフェースが違ってきます。 Acrobatに引数を渡してPDFファイルをVBで作ったEXEから印刷させたいです。イメージ的には「ShellExecute(NULL,NULL,”acrobat.exe”,aaaaaa.pdf,NULL,SW_SHOWNORMAL);」のようなことをしたいです。開くだけでなくデ… Windows 7 - お世話になります。 業務上の必要に迫られているため、質問させて頂きます。 恐縮ですが、ご存じの方、御教示頂けますでしょぅか? VBSでコマンドプロンプトを管理者モードで起動し Shell. 引数を1個渡す場合; 引数を2個以上渡す場合; 戻り値を受け取ったり、同期実行・非同期実行を切り替える方法; 引数を1個渡す場合.
ShellExecute; 機能: 指定ファイルを指定した動作で実行します。 宣言: Declare Function …