13ruce Posted February 6, 2013 Author Share Posted February 6, 2013 Very nice! I plugged in the new code and it's much more like what I'm going for. Thank you so much! Link to comment Share on other sites More sharing options...
13ruce Posted February 6, 2013 Author Share Posted February 6, 2013 (edited) I noticed this in your code: <!-- February-05-13 Hta And Script By Gunsmokingman Aka Jake1Eye -->My first order of business was to update that to:<!-- February-05-13 Hta And Script By Gunsmokingman Aka Jake1Eye Any horrible abberations herein are the fault of 13ruce and are in no way to be attributed to the excellent script stylings of Gunsmokingman Aka Jake1Eye-->You're welcome. Edited February 6, 2013 by 13ruce Link to comment Share on other sites More sharing options...
gunsmokingman Posted February 6, 2013 Share Posted February 6, 2013 I only put that there so it posted here as it original writer.What you do change or I may help with you can placewhat you feel is needed. Link to comment Share on other sites More sharing options...
jaclaz Posted February 6, 2013 Share Posted February 6, 2013 (edited) I am starting to understand the requirement (about right click).If I get it right what you need is a shell extension (and not a contextual menu entry).If this is correct, I doubt you can have it. Do the following:get http://www.nirsoft.net/utils/shexview.html check which shell extensions you have on your systempost info about one that is present on your right click menu (where/when you would like to see this script entry)Before the above, try actually reading the initially given:http://www.howtogeek.com/howto/windows-vista/add-any-application-to-the-desktop-right-click-menu-in-vista/AND test itjaclaz Edited February 6, 2013 by jaclaz Link to comment Share on other sites More sharing options...
13ruce Posted February 6, 2013 Author Share Posted February 6, 2013 Before the above, try actually reading the initially given:http://www.howtogeek.com/howto/windows-vista/add-any-application-to-the-desktop-right-click-menu-in-vista/AND test itjaclazAs soon as I have a working app, I definitely will. Thanks again! Link to comment Share on other sites More sharing options...
gunsmokingman Posted February 7, 2013 Share Posted February 7, 2013 I made some changes to the HTA<!--February-06-13 Hta And Script By Gunsmokingman Aka Jake1Eye This code is property of Gunsmokingman and Or Jake1Eye and you must have his permission to use. This is only posted as example code and meant only to used as such.--><TITLE>Demo User Input2</TITLE><HTA:APPLICATION ID="UserIn2"SCROLL="No"SCROLLFLAT ="No"SingleInstance="Yes"ShowInTaskbar="No"SysMenu="No"MaximizeButton="No"MinimizeButton="No"Border="Thin"BORDERSTYLE ="complex"INNERBORDER ="No"Caption="Yes"WindowState="Normal"APPLICATIONNAME="DmUserIn2"Icon="%SystemRoot%\explorer.exe"><STYLE type="text/css">Body{Font-Size:9.25pt;Font-Weight:Bold;Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS;Color:Black;BackGround-Color:#EFE9E3;Text-Align:Center;Vertical-Align:Top;}TD{Font-Size:8.25pt;Font-Weight:Bold;Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS;Color:Black;}.Tbx{Font-Size:8.25pt;Font-Weight:Bold;Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS;Color:Black;}BUTTON{Height:15pt;width:60pt;Cursor:Hand;Font:8.05pt;Font-weight:bold;Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS;Color:#404040;Text-Align:Center;Vertical-Align:Middle;filter:progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#E5E5E5',EndColorStr='#7D7D7D');Margin:1;Margin-Top:15pt;Padding:2;Border-Left: 1px Transparent;Border-Right: 2px Transparent;Border-Top: 1px Transparent;Border-Bottom: 2px Transparent;}</STYLE><script LANGUAGE='VBScript'>'-> Resize And Place In Approx Center Of ScreenDim Wth, Hht :Wth = int(475) :Hht = int(255)window.ResizeTo Wth, HhtMoveTo ((Screen.Width / 2) - (Wth / 2)),((Screen.Height / 2) - (Hht / 2))Dim Tm1'-> Function To Process The Submit ButtonFunction MySubmit()If Len(In1.value) = 0 And Len(In2.value) = 0 And Len(In3.value) = 0 Thenalert("No Textboxes Have Any Information")ElseIf Len(In1.value) >= 1 And Len(In2.value) = 0 And Len(In3.value) = 0 Thenalert("Only TextBox 1 Information : " & In1.value & vbCrlf & _"Please Fill In Textboxes 2 And 3 Then Press Submit")ElseIf Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) = 0 Thenalert("TextBox 1 Information : " & In1.value & vbCrlf & _"TextBox 2 Information : " & In2.value & vbCrlf & _"Please Fill In Textboxes 3 Then Press Submit")ElseIf Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) >= 1 ThenIf Len(In2.value) = 5 ThenMenu.style.visibility = ""In1a.value=In1.valueIn2a.value=In2.valueIn3a.value=In3.valueElsealert("Error Needs The Last Five Digits From Invoice Number : " & In2.value)End IfEnd IfEnd Function'-> Process Varibles And Display MessageFunction ProcessInfo()Tx1.style.visibility = ""Tx1.innerHTML="Processing, " & In1.value & ", " & _In2.value & ", " & In3.valueTm1 = window.setTimeout("Part1Finish()",5000,"VBScript")End Function'-> Part 1 FinishedFunction Part1Finish()window.clearTimeout(Tm1)Part2Finish()End Function'-> Process Ant End RequestFunction Part2Finish()Tx1.style.color="#3377AD"Tx1.innerHTML = "Process Completed, Preparing To Close"Tm1=window.setTimeout("Finished()",3000,"VBScript")End Function'-> Clear Timer Close HtaFunction Finished()window.clearTimeout(Tm1)window.close()End Function</SCRIPT><BODY><!-- Customer Name Area --><TABLE><TD Style='width:101;'>Customer Name</TD><TD><INPUT Type='TextBox' ID='In1' Class='Tbx' Size='40' MAXLENGTH='128'><TD></TABLE><!-- Two Textboxes Start --><TABLE><!-- Invoice Number Area --><TD Style='width:100;'>Invoice Number</TD><TD><INPUT Type='TextBox' ID='In2' Class='Tbx' Size='5' MAXLENGTH='5'Style='Margin-Right:15;' Title="Use Only The Last Five DigitsOf The Invoice Number"></TD><!-- Type Of Job Area --><TD Style='width:89;'>Type Of Job</TD><TD><INPUT Type='TextBox' ID='In3' Class='Tbx' Size='13' MAXLENGTH='16'><TD></TABLE><!-- Buttons Start --><BUTTON ID='Bn1' OnClick='MySubmit()'>Submit</BUTTON><BUTTON ID='Bn2' OnClick='window.close()'>Close</BUTTON><!-- Text Display For Script Messages --><DIV ID='Tx1' Style="visibility:hidden;Width:100%;Text-Align:Center;"></DIV><!-- Pop Up Dialog --><DIV ID='Menu' Style="visibility:hidden;Position:Absolute;Top:9;Left:9;Width:425;Height:195;Text-Align:Left;Padding:3pt;Border-Left: 1px Solid; Border-Right: 2px Solid;Border-Top: 1px Solid; Border-Bottom: 2px Solid;filter:progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#EFEAE4',EndColorStr='#9E9E9E'); "><!-- Textboxes Customer Name To Edit --><TABLE><TD Style='width:101;'>Customer Name</TD><TD><INPUT Type='TextBox' ID='In1a' Class='Tbx' Size='40' MAXLENGTH='128'></TD></TABLE><!-- Textboxes Invoice Number To Edit --><TABLE><TD Style='width:101;'>Invoice Number</TD><TD><INPUT Type='TextBox' ID='In2a' Class='Tbx' Size='5' MAXLENGTH='128'></TD></TABLE><!-- Textboxes Type Of Job To Edit --><TABLE><TD Style='width:101;'>Type Of Job</TD><TD><INPUT Type='TextBox' ID='In3a' Class='Tbx' Size='13' MAXLENGTH='16'></TD></TABLE><!-- Text Option For Dialog --><TABLE Style='Width:100%;'><TD Style='Text-Align:Left;Padding:3;'> » Please Check To Make Sure All Information Is Correct,If Not You Can Edit Out The Wrong Information With The Correct Information.Press Either The Continue Button Or Use The Cancel To Close This App.</TD></TABLE><!-- Button To Control Dialog --><TABLE Style='Width:100%;'><TD Style='Text-Align:Center;'><BUTTON OnClick="In1.value='' :In2.value='' :In3.value='' :A=1In1.value=In1a.value :In2.value=In2a.value :In3.value=In3a.valueMenu.style.visibility = 'hidden' :ProcessInfo()">Continue</BUTTON><BUTTON OnClick='window.close()'>Cancel</BUTTON></TD></TABLE></DIV></BODY> Link to comment Share on other sites More sharing options...
13ruce Posted February 7, 2013 Author Share Posted February 7, 2013 I've added a couple more conditions to the function to ensure none of the fields are empty and cause an error. Is this the best way to accomplish it? If Len(In1.value) > 0 Then If Len(In3.value) > 0 Then If Len(In2.value) = 5 Then Dim A :A=MsgBox("Is this correct?" & vbCrlf & _ "TextBox 1 Information : " & In1.value & vbCrlf & _ "TextBox 2 Information : " & In2.value & vbCrlf & _ "TextBox 3 Information : " & In3.value & vbCrlf & vbCrlf & _ "Click OK to continue," & vbCrlf & "No to start over, or" & vbCrlf & _ "Cancel to exit",4131) If A = 6 Then alert("Script Place Holder For Yes Actions") ElseIf A = 7 Then In1.value="" :In2.value="" :In3.value="" : ElseIf A = 2 Then window.close() End If Else alert("Error: Please enter the last 5 digits of invoice number: " & In2.value) End If Else alert("Error: Please enter a job type (ie.: BC, Brochure, Flyer, etc.):") End If Else alert("Error: Please enter a client name:") End If Link to comment Share on other sites More sharing options...
13ruce Posted February 7, 2013 Author Share Posted February 7, 2013 I made some changes to the HTA Nice improvement! Link to comment Share on other sites More sharing options...
gunsmokingman Posted February 7, 2013 Share Posted February 7, 2013 What I use to make sure none of the textboxes have value, plus an additional check onthe Invoice Number, for a length of 5 digits.ElseIf Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) >= 1 Then If Len(In2.value) = 5 ThenNice try at coding, but you can use And or Or in If statementsHave you tried the updated HTA Link to comment Share on other sites More sharing options...
13ruce Posted February 7, 2013 Author Share Posted February 7, 2013 Thanks for the tip. Yes, I did try your updated HTA. That's what I meant by "Nice improvement!" Link to comment Share on other sites More sharing options...
13ruce Posted February 14, 2013 Author Share Posted February 14, 2013 So here's what I've got so far, and it seems to work on my local drive. I'm going to update the RtPath to a mapped network share and test it a bit further. Please have a look and tell me what kinds of horrible mistakes I've made.<!-- February-06-13 Hta And Script By Gunsmokingman Aka Jake1Eye, then mangled by 13ruce--> <TITLE>Demo User Input2</TITLE> <HTA:APPLICATION ID="UserIn2" SCROLL="No" SCROLLFLAT ="No" SingleInstance="Yes" ShowInTaskbar="No" SysMenu="No" MaximizeButton="No" MinimizeButton="No" Border="Thin" BORDERSTYLE ="complex" INNERBORDER ="No" Caption="Yes" WindowState="Normal" APPLICATIONNAME="DmUserIn2" Icon="%SystemRoot%\explorer.exe"><STYLE type="text/css"> Body { Font-Size:9.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; BackGround-Color:#EFE9E3; Text-Align:Center; Vertical-Align:Top; } TD { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } .Tbx { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } BUTTON { Height:15pt; width:60pt; Cursor:Hand; Font:8.05pt; Font-weight:bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:#404040; Text-Align:Center; Vertical-Align:Middle; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#E5E5E5',EndColorStr='#7D7D7D'); Margin:1; Margin-Top:15pt; Padding:2; Border-Left: 1px Transparent; Border-Right: 2px Transparent; Border-Top: 1px Transparent; Border-Bottom: 2px Transparent; } </STYLE> <script LANGUAGE='VBScript'>'-> Resize And Place In Approx Center Of Screen Dim Wth, Hht :Wth = int(475) :Hht = int(255) window.ResizeTo Wth, Hht MoveTo ((Screen.Width / 2) - (Wth / 2)),((Screen.Height / 2) - (Hht / 2)) Dim Tm1'-> Function To Process The Submit Button Function MySubmit() If Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) >= 1 Then If Len(In2.value) = 5 Then Menu.style.visibility = "" In1a.value=In1.value In2a.value=In2.value In3a.value=In3.value Else alert("Error Needs The Last Five Digits From Invoice Number : " & In2.value) End If Else alert("Error: Please complete all fields:") End If End Function'-> Process Varibles And Display Message Function JobBuilder()Dim Client, Invoice, JobConst RtPath = "c:\temp\DirectoryTest\"Client = In1.valueInvoice = In2.valueJob = In3.value'->SPath = Series folder: The first three digits of the invoice number'->followed by "00 PC. IE.: 12300 PC (with Invoice value of 12345)SPath = RtPath & (Left(Invoice,3)) & "00 PC\"'->Cpath = Path to client folder within seriesCPath = Spath & Client & "\"'->Jpath = Path to Specific JobJPath = CPath & Invoice & " " & Job & "\"'->Mpath = Path to job's materials folderMPath = Jpath & "Materials\"'->Fpath = Path to generic files received folder. Date to be updated by user.FPath = MPath & "YYYY.MM.DD Files Received\"'->Dpath = Path to Design folderDPath = Jpath & "Design\"'->Hpath = Path to HSD folderHPath = Jpath & "HSD\"'->PPath = Path to Proof folderPPath = Jpath & "Proof\"set oFSO = CreateObject("Scripting.FileSystemObject")'->Check to see if series folder exists. If not, build everything.If Not oFSO.FolderExists(SPath) Then oFSO.CreateFolder SPath oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New Series Created") '-> Check to see if Client folder exists within Series Folder. If not, build the rest. ElseIf Not oFSO.FolderExists(CPath) Then oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("Client path created") '-> Check to see if Job folder exists. If not, build all job folders. ElseIf Not oFSO.FolderExists(JPath) Then oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New job folder created") '-> Check to see if a Materials folder exists. If not, build it and add a Files Received subfolder. ElseIf Not oFSO.FolderExists(MPath) Then oFSO.CreateFolder MPath oFSO.CreateFolder FPath alert("Job exists. Materials folder created.") '-> Check to see if a Files Received folder exists. If not, build it. ElseIf Not oFSO.FolderExists(FPath) Then oFSO.CreateFolder FPath alert("Job Exists. New Files Received folder created.") Else alert("Directory already exists: " & JPath)End If End Function</SCRIPT><BODY><!-- Customer Name Area --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1' Class='Tbx' Size='40' MAXLENGTH='128'> <TD></TABLE><!-- Two Textboxes Start --><TABLE><!-- Invoice Number Area --> <TD Style='width:100;'>Invoice Number</TD> <TD><INPUT Type='TextBox' ID='In2' Class='Tbx' Size='5' MAXLENGTH='5' Style='Margin-Right:15;' Title="Use Only The Last Five Digits Of The Invoice Number"></TD><!-- Type Of Job Area --><TD Style='width:89;'>Type Of Job</TD><TD><INPUT Type='TextBox' ID='In3' Class='Tbx' Size='13' MAXLENGTH='128'><TD></TABLE><!-- Buttons Start --><BUTTON ID='Bn1' OnClick='MySubmit()'>Submit</BUTTON><BUTTON ID='Bn2' OnClick='window.close()'>Close</BUTTON><!-- Text Display For Script Messages --><DIV ID='Tx1' Style="visibility:hidden;Width:100%;Text-Align:Center;"></DIV><!-- Pop Up Dialog --> <DIV ID='Menu' Style="visibility:hidden;Position:Absolute; Top:9;Left:9;Width:425;Height:195;Text-Align:Left;Padding:3pt; Border-Left: 1px Solid; Border-Right: 2px Solid; Border-Top: 1px Solid; Border-Bottom: 2px Solid; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#EFEAE4',EndColorStr='#9E9E9E'); "><!-- Textboxes Customer Name To Edit --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1a' Class='Tbx' Size='40' MAXLENGTH='128'> </TD></TABLE><!-- Textboxes Invoice Number To Edit --> <TABLE><TD Style='width:101;'>Invoice Number</TD><TD> <INPUT Type='TextBox' ID='In2a' Class='Tbx' Size='5' MAXLENGTH='128'> </TD></TABLE><!-- Textboxes Type Of Job To Edit --> <TABLE><TD Style='width:101;'>Type Of Job</TD><TD> <INPUT Type='TextBox' ID='In3a' Class='Tbx' Size='13' MAXLENGTH='16'> </TD></TABLE><!-- Text Option For Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Left;Padding:3;'> Please verify the above information. Correct as necessary. </TD></TABLE><!-- Button To Control Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Center;'> <BUTTON OnClick="In1.value='' :In2.value='' :In3.value='' :A=1 In1.value=In1a.value :In2.value=In2a.value :In3.value=In3a.value Menu.style.visibility = 'hidden' :JobBuilder()">Continue</BUTTON> <BUTTON OnClick='window.close()'>Cancel</BUTTON> </TD></TABLE> </DIV></BODY> Link to comment Share on other sites More sharing options...
13ruce Posted February 14, 2013 Author Share Posted February 14, 2013 I've added a bit of code that opens Explorer to the job folder:Const NORMAL_WINDOW = 1Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "explorer.exe", JPath, , , NORMAL_WINDOWI've placed that just before JobBuilder's "End Function." How do I get the app to automatically close afterward? Link to comment Share on other sites More sharing options...
13ruce Posted February 14, 2013 Author Share Posted February 14, 2013 To clarify: I would like the first input window to vanish as the second window pops up, as it is no longer needed. Link to comment Share on other sites More sharing options...
13ruce Posted February 14, 2013 Author Share Posted February 14, 2013 Nevermind. I added "window.close" at the end of the bit that invokes Windows Explorer and it closes everything perfectly. Link to comment Share on other sites More sharing options...
gunsmokingman Posted February 14, 2013 Share Posted February 14, 2013 Another way of opening Explorer.exeCreateObject("Wscript.Shell").Run("explorer.exe D:\"),1,False Perhaps change this areaEnd If End Function</SCRIPT>To thisEnd If CreateObject("Wscript.Shell").Run("explorer.exe D:\"),1,False window.closeEnd Function</SCRIPT>The above code will open Explorer without waiting for the Explorer to be closed,it will then close the HTA. So you should be left with the Explorer window open. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now