August 11th, 2008Htm2Pic CmdLine Tool Integration Code Snippets
VB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Const PROCESS_QUERY_INFORMATION = &H400 Const STILL_ALIVE = &H103 Private Sub Command1_Click() Dim pid As Long 'change to vbHide to disable prompt window pid = Shell("c:\Htm2PicCmdLine.exe /url http://www.google.com", vbNormalFocus) hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid) Do Call GetExitCodeProcess(hProcess, ExitCode) DoEvents Loop While ExitCode = STILL_ALIVE Call CloseHandle(hProcess) MsgBox ("done") End Sub |
VC
1 2 3 4 5 6 7 8 9 10 11 12 | SHELLEXECUTEINFO ShExecInfo = {0}; ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = "c:\\Htm2PicCmdLine.exe"; ShExecInfo.lpParameters = "/url http://www.google.com"; ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_SHOW; ShExecInfo.hInstApp = NULL; ShellExecuteEx(&ShExecInfo); WaitForSingleObject(ShExecInfo.hProcess,INFINITE); |
Delphi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var SEI: SHELLEXECUTEINFO; begin with SEI do begin cbSize := SizeOf(SEI); fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpVerb := nil; lpFile := 'C:\Htm2PicCmdLine.exe'; lpParameters := '/url http://www.google.com'; lpDirectory := nil; nShow := SW_SHOW; hInstApp := 0; lpIDList := nil; end; ShellExecuteEx(@SEI); WaitForSingleObject(SEI.hProcess, INFINITE); end; |
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | using System.Runtime.InteropServices; public struct ShellExecuteInfo { public int cbSize; public uint fMask; public IntPtr hwnd; public string lpVerb; public string lpFile; public string lpParameters; public string lpDirectory; public int nShow; public IntPtr hInstApp; public int lpIDList; public string lpClass; public IntPtr hkeyClass; public uint dwHotKey; public IntPtr hIcon; public IntPtr hProcess; } public const int SW_SHOW = 5; public const uint SEE_MASK_NOCLOSEPROCESS = 64; [DllImport("shell32.dll")] public static extern bool ShellExecuteEx(ref ShellExecuteInfo lpExecInfo); [DllImport("Kernel32.dll")] public static extern uint WaitForSingleObject(System.IntPtr hHandle, uint dwMilliseconds); [DllImport("Kernel32.dll")] public static extern bool GetExitCodeProcess(System.IntPtr hProcess, ref uint lpExitCode); private void button1_Click(object sender, EventArgs e) it55.com { ShellExecuteInfo vShellExecuteInfo = new ShellExecuteInfo(); vShellExecuteInfo.cbSize = Marshal.SizeOf(vShellExecuteInfo); vShellExecuteInfo.lpFile = @"C:\Htm2PicCmdLine.exe"; vShellExecuteInfo.lpParameters = @"/url http://www.google.com"; vShellExecuteInfo.nShow = SW_SHOW; vShellExecuteInfo.fMask = SEE_MASK_NOCLOSEPROCESS; ShellExecuteEx(ref vShellExecuteInfo); WaitForSingleObject(vShellExecuteInfo.hProcess, int.MaxValue); GetExitCodeProcess(vShellExecuteInfo.hProcess, ref i); } |
Java
1 2 3 4 5 6 7 8 | try { Runtime rt = Runtime.getRuntime(); Process proc = rt .exec("C:\\Htm2PicCmdLine.exe /url http://www.google.com"); int exitVal = proc.waitFor(); } catch (Throwable t) { t.printStackTrace(); } |
use the system’s built-in “wscript.shell” activex component to run any program.
VB Script
1 2 3 4 | set ws=wscript.createobject("wscript.shell") ws.run "c:\htm2piccmdline.exe /url http://www.google.com", 0, true ws.popup "done" set ws=nothing |
Java Script
1 2 3 | var ws = new ActiveXObject("wscript.shell"); ws.run("c:\\htm2piccmdline.exe /url http://www.google.com", 0, true); document.write("done!"); |
PHP
1 2 3 4 5 | <?php $ws = new COM("wscript.shell") or die("Can't start wscript.shell!"); $ws->run("c:\htm2piccmdline.exe /url http://www.google.com", 0, true); echo "done!"; ?> |



