MSFN Forum: Menu to run with RunOnceEx to customise install - MSFN Forum

Jump to content



Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Menu to run with RunOnceEx to customise install Rate Topic: -----

#1 User is offline   Pantner 

  • Junior
  • Pip
  • Group: Members
  • Posts: 62
  • Joined: 13-August 05

Posted 27 September 2005 - 07:57 AM

ok...what i want to do is to make a Menu (using batch or vbs maybe?) that will run the first time you get into windows, which will give you different options about what software to install...

i want to be able to use the same disk on 2 (or more) computers, however, one has a LG burner, the other has Pioneer, and the bundled software will only work with the specific drive...and i want Bitcomet installed on one PC, but not the other, etc, etc...

anyone have a way to do it???

doesn't have to be flash...i remember u used to have a menu system as my PC was booting up, which was in the Autoexec.bat and config.sys times...ie,

1.Dos
2.Win95
3.Dos wo/CD Rom
4.Norton Commander

and you just pressed the approtraite number...now, that was some time ago, and have long lost the actual files...

anyone have an easy way to do it??


#2 User is offline   Yzöwl 

  • Wise Owl
  • Group: Super Moderator
  • Posts: 4,117
  • Joined: 13-October 04
  • OS:Windows 7 x64

Posted 27 September 2005 - 03:51 PM

Have you looked at these?

#3 User is offline   gunsmokingman 

  • MSFN Addict
  • Group: Super Moderator
  • Posts: 1,991
  • Joined: 02-August 03
  • OS:none specified
  • Country: Country Flag

Posted 27 September 2005 - 04:21 PM

Here is a VBS script that checks for the CD PNP ID
Blue Text Array Names
1:\ It has a array for the PNP ID check
The Array Name : CheckCD
It has 2 ID in there one is mine and the other is some one elses.
Add yours To It.
2:\ It has 2 other arrays for app to install. I use | this to separate
Example
TweakUi|exe|/passive /qr = TweakUi.exe /passive /qr
The script then check the first array, if true it checks either of these array
Array Name 1 : Computer1
Array Name 2 : Computer2
3:\ It the breaks either Computer1 or Computer2 into new arrays
Array Name : App
4:\ It then Uses the information to start a search for the app

Saves As WHAT_EVER_YOU_WANT.vbs

Quote


  Const ForReading = 1, ForWriting = 2,ForAppending = 8 '''' Constants for Fso text files
  Dim Act, Fso, Ts, App,Install,CName,App1
  Set Act = CreateObject("Wscript.shell")
  Set Fso = CreateObject("Scripting.FileSystemObject")
  '''' EXTRA VARIBLES FOR THE SCRIPT
  Dim Prog, UName : UName = Act.ExpandEnvironmentStrings("%UserName%")
            Prog = Act.ExpandEnvironmentStrings("%ProgramFiles%")
  Dim E_Time, EndTime, FinishTime, MyT, StartTime : StartTime = Timer : MyT = Time()
  Dim DevName,PnPName, Sp3 : Sp3 = Space(3)
  strComputer = "."
          '''' Examples For the Plug N Play ID For CD Or DVD Drive
  CheckCD = Array(_
    ("IDE\CDROMHL-DT-ST_RW/DVD_GCC-4521B_______________1.00____\5&1B4316AD&0&0.1.0"),_
    ("IDE\CDROMHL-DT-ST_CD-RW_GCE-8320B________________1.04____\5&19E23F39&0&0.0.0") )

  '''' Add the list of software to install for the first computer These | are separators
Computer1 = Array("Winamp5|msi|/Xname=Spad Xkey=XXXXX-XXXXX-XXXXX-XXXXX Xagent=1 Xlibrary=0 Xintex=1")
  '''' Add the list of software to install for the second computer
  Computer2 = Array("TweakUi|exe|/passive /qr")
''' CHECKS FOR THE CD PNP ID
Function Check_CD_App
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPEntity")
  For Each objItem in colItems
  '''' VARIBLES FOR THE LOOP
  DevName = objItem.Name
  PnPName = objItem.PNPDeviceID
  '''' CD DEVICE 1 THE ARRAY START AT ZERO EX ZERO = 1 ONE = 2 ETC
  If PnPName = CheckCD(0)Then
  '''' MAKES A NEW ARRAY FROM EXISTING ARRAY
  CName = CheckCD(0)
  CName = Replace(CName,"_______________","\")
  CName = Replace(CName,"____","\")
  CName = Split(CName,"\")
  App = Computer1(0)
  App = Split(Computer1(0) , "|")
  App1 = App(1) & " " & App(2)
    MsgBox "Confirm Match"& vbCrLf & "Software Name = " & App(0) &_
    vbCrLf & "Cd PNPID Original" & vbCrLf & CheckCD(0) &_
    vbCrLf & "Cd PNPID After Split" & vbCrLf & CName(1), 0 + 32, "Cd Confirmed"
    '''' LOOP FOR THE NEW ARRAY
    For Each StrComp1 In Computer1
    AppInstall
    Exit For
    Next
    Run_Report '''' Open The Txt File
    Exit Function
    End If
    '''' CD DEVICE 2
    If PnPName = CheckCD(1) Then
    CName = CheckCD(1)
    CName = Replace(CName,"_______________","\")
    CName = Replace(CName,"____","\")
    CName = Split(CName,"\")
    App = Computer2(1)
  App = Split(Computer2(1) , "|")
    App1 = App(1) & " " & App(2)
    MsgBox "Confirm Match"& vbCrLf & "Software Name = " & App(0) &_
    vbCrLf & "Cd PNPID Original" & vbCrLf & CheckCD(0) &_
    vbCrLf & "Cd PNPID After Split" & vbCrLf & CName(1), 0 + 32, "Cd Confirmed"
    '''' LOOP FOR THE NEW ARRAY
    For Each StrComp2 In Computer2
    AppInstall
    Exit For
    Next
    Run_Report '''' Open The Txt File
    Exit Function
    End If
  '''' IF IT THE WRONG ID
  If PnPName = IsNull("") Then 
  CName1 = CheckCD(0)
  CName1 = Replace(CName1,"_______________","\")
  CName1 = Replace(CName1,"____","\")
  CName1 = Split(CName1,"\")
  CName2 = CheckCD(1)
  CName2 = Replace(CName2,"_______________","\")
  CName2 = Replace(CName2,"____","\")
  CName2 = Split(CName2,"\")
    MsgBox "This Is Not The Correct CD Or DVD PNP ID" & vbCrLf & CName1(1) &_
    vbCrLf & CName2(1), 0 + 32,"Error Wrong CD Or DVD Drive"
    End If   
  Next
  End Function
  '''' WHERE IT NOW FINDS THE LOCATION OF THE APP
  Function AppInstall
  Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  Set ColFiles = objWMI.ExecQuery("Select * from CIM_DataFile Where FileName = '" & App(0) & "' AND Extension = '" & App(1) & "'")
  '''' JUST MAKING A TEXT FILE OF THE SEARCH THIS COULD BE TURNED INTO THE INSTALL SECTIONS
  Set Ts = Fso.CreateTextFile("ReportFile.txt")
  Ts.WriteLine Space(3) & time() & "<----- BEGIN SEARCH ----->" & Space(3) & Date() &_
  vbCrLf & Space(3) & CName(1)
  Ts.Close
  For Each objFile in colFiles
  If ColFiles.count = 0 Then
  Set Ts = Fso.OpenTextFile("ReportFile.txt",ForAppending)
  Ts.WriteLine "Cannot Find This App" & Space(3) & App(0) & "." & App(1)
  Ts.close
  Else
  '''' Extra Varibles If Needed
  FName = Ucase(objFile.FileName)
  Kbname = Ucase(objFile.FileName & "." & objFile.Extension)
  KbPath = UCase(objFile.Drive & objFile.Path)
  TheFile = KbPath & Kbname
  If Fso.FileExists(TheFile) Then
  Set Ts = Fso.OpenTextFile("ReportFile.txt",ForAppending)
      Ts.WriteLine "Array Part 1 = " & App(0) & " <-----> Array Part 2 = " &_
      App(1) & vbCrLf & "<------------------------------>"
      Ts.WriteLine "(""Select * from CIM_DataFile Where FileName = '" & App(0) & "' AND Extension = '" & App(1) & "'"")" &_
      vbCrLf & "<------------------------------>"
      Ts.WriteLine  "<------------------------------>" & vbCrLf &_
      "Act.Run(""" & KbPath & App1 & """)" & vbCrLf & "<------------------------------>"
    FinishTime = Timer
    EndTime = Timer
    E_Time = EndTime - StartTime
    E_Time = Left(E_Time,4)
    Ts.WriteLine V & "<-------------------- TEST TIME RESULTS ------------------------->"
    Ts.WriteLine Sp3 & "The Start Time : " & MyT & V & Sp3 & "The End Time : " & Time() & V &_
    Sp3 & "Time Amount Of Time The Script Ran = " & E_Time & " Seconds" & V
      Ts.Close
    Exit For
    End If
    End If
  Next
  End function
  Check_CD_App
  Function Run_Report
  Act.Run("ReportFile.txt"),1,True
  Gsm = Act.Popup("Did You Want To Keep The Report" &_
  vbCrLf & " Yes To Keep The Report" & vbCrLf & " No To Delete The Report" &_
  vbcrlf & " If Nothing Is Seleted,In" & vbCrLf & "30 seconds It Keeps The Report" &_
  vbCrLf, 30, "Keep Or Delete", 4 + 32)
  If Gsm = Vbyes Then '''' Yes
  Exit Function
  End If
  If Gsm = Vbno Then '''' No
  Fso.DeleteFile("ReportFile.txt")
  Exit Function
  End If
  If Gsm = -1 Then '''' Time Out
  Exit Function
  End If
  End Function
The Report It Produces
Green Text Would Be It Run Command.

Quote

 
  3:16:31 PM<----- BEGIN SEARCH ----->  9/27/2005
  CDROMHL-DT-ST_RW/DVD_GCC-4521B
Array Part 1 = Winamp5 <-----> Array Part 2 = msi
<------------------------------>
("Select * from CIM_DataFile Where FileName = 'Winamp5' AND Extension = 'msi'")
<------------------------------>
<------------------------------>
Act.Run("H:\UA-WORKDIR\UA-SOFTWARE\WINAMP\WINAMP5.MSI /Xname=Spad Xkey=XXXXX-XXXXX-XXXXX-XXXXX Xagent=1 Xlibrary=0 Xintex=1")
<------------------------------>
<-------------------- TEST TIME RESULTS ------------------------->
  The Start Time : 3:16:30 PM  The End Time : 3:16:47 PM  Time Amount Of Time The Script Ran = 17.3 Seconds


#4 User is offline   Pantner 

  • Junior
  • Pip
  • Group: Members
  • Posts: 62
  • Joined: 13-August 05

Posted 27 September 2005 - 06:19 PM

gunsmokingman, on Sep 28 2005, 06:21 AM, said:

Here is a VBS script that checks for the CD PNP ID
Blue Text Array Names
1:\ It has a array for the PNP ID check 
      The Array Name : CheckCD
It has 2 ID in there one is mine and the other is some one elses.
Add yours To It.
2:\ It has 2 other arrays for app to install. I use | this to separate
Example
TweakUi|exe|/passive /qr = TweakUi.exe /passive /qr
The script then check the first array, if true it checks either of these array
  Array Name 1 : Computer1
  Array Name 2 : Computer2
3:\ It the breaks either Computer1 or Computer2 into new arrays
  Array Name : App
4:\ It then Uses the information to start a search for the app

Saves As WHAT_EVER_YOU_WANT.vbs

Quote


  Const ForReading = 1, ForWriting = 2,ForAppending = 8 '''' Constants for Fso text files
  Dim Act, Fso, Ts, App,Install,CName,App1
  Set Act = CreateObject("Wscript.shell")
  Set Fso = CreateObject("Scripting.FileSystemObject")
  '''' EXTRA VARIBLES FOR THE SCRIPT
  Dim Prog, UName : UName = Act.ExpandEnvironmentStrings("%UserName%")
            Prog = Act.ExpandEnvironmentStrings("%ProgramFiles%")
  Dim E_Time, EndTime, FinishTime, MyT, StartTime : StartTime = Timer : MyT = Time()
  Dim DevName,PnPName, Sp3 : Sp3 = Space(3)
  strComputer = "."
           '''' Examples For the Plug N Play ID For CD Or DVD Drive
  CheckCD = Array(_
    ("IDE\CDROMHL-DT-ST_RW/DVD_GCC-4521B_______________1.00____\5&1B4316AD&0&0.1.0"),_
    ("IDE\CDROMHL-DT-ST_CD-RW_GCE-8320B________________1.04____\5&19E23F39&0&0.0.0") )

   '''' Add the list of software to install for the first computer These | are separators
Computer1 = Array("Winamp5|msi|/Xname=Spad Xkey=XXXXX-XXXXX-XXXXX-XXXXX Xagent=1 Xlibrary=0 Xintex=1")
   '''' Add the list of software to install for the second computer
  Computer2 = Array("TweakUi|exe|/passive /qr")
''' CHECKS FOR THE CD PNP ID
Function Check_CD_App
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPEntity")
   For Each objItem in colItems
   '''' VARIBLES FOR THE LOOP
   DevName = objItem.Name
   PnPName = objItem.PNPDeviceID
   '''' CD DEVICE 1 THE ARRAY START AT ZERO EX ZERO = 1 ONE = 2 ETC
  If PnPName = CheckCD(0)Then
  '''' MAKES A NEW ARRAY FROM EXISTING ARRAY
   CName = CheckCD(0)
   CName = Replace(CName,"_______________","\")
   CName = Replace(CName,"____","\")
   CName = Split(CName,"\")
   App = Computer1(0)
   App = Split(Computer1(0) , "|")
   App1 = App(1) & " " & App(2)
    MsgBox "Confirm Match"& vbCrLf & "Software Name = " & App(0) &_
    vbCrLf & "Cd PNPID Original" & vbCrLf & CheckCD(0) &_
    vbCrLf & "Cd PNPID After Split" & vbCrLf & CName(1), 0 + 32, "Cd Confirmed"
    '''' LOOP FOR THE NEW ARRAY
    For Each StrComp1 In Computer1
    AppInstall
     Exit For
    Next
     Run_Report '''' Open The Txt File
     Exit Function
    End If
    '''' CD DEVICE 2
    If PnPName = CheckCD(1) Then
    CName = CheckCD(1)
    CName = Replace(CName,"_______________","\")
    CName = Replace(CName,"____","\")
    CName = Split(CName,"\")
    App = Computer2(1)
   App = Split(Computer2(1) , "|")
    App1 = App(1) & " " & App(2)
    MsgBox "Confirm Match"& vbCrLf & "Software Name = " & App(0) &_
    vbCrLf & "Cd PNPID Original" & vbCrLf & CheckCD(0) &_
    vbCrLf & "Cd PNPID After Split" & vbCrLf & CName(1), 0 + 32, "Cd Confirmed"
    '''' LOOP FOR THE NEW ARRAY
    For Each StrComp2 In Computer2
    AppInstall
     Exit For
     Next
     Run_Report '''' Open The Txt File
     Exit Function
    End If
   '''' IF IT THE WRONG ID
   If PnPName = IsNull("") Then  
   CName1 = CheckCD(0)
   CName1 = Replace(CName1,"_______________","\")
   CName1 = Replace(CName1,"____","\")
   CName1 = Split(CName1,"\")
   CName2 = CheckCD(1)
   CName2 = Replace(CName2,"_______________","\")
   CName2 = Replace(CName2,"____","\")
   CName2 = Split(CName2,"\")
    MsgBox "This Is Not The Correct CD Or DVD PNP ID" & vbCrLf & CName1(1) &_
    vbCrLf & CName2(1), 0 + 32,"Error Wrong CD Or DVD Drive"
    End If    
   Next
  End Function
  '''' WHERE IT NOW FINDS THE LOCATION OF THE APP
  Function AppInstall
  Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  Set ColFiles = objWMI.ExecQuery("Select * from CIM_DataFile Where FileName = '" & App(0) & "' AND Extension = '" & App(1) & "'")
  '''' JUST MAKING A TEXT FILE OF THE SEARCH THIS COULD BE TURNED INTO THE INSTALL SECTIONS
  Set Ts = Fso.CreateTextFile("ReportFile.txt")
   Ts.WriteLine Space(3) & time() & "<----- BEGIN SEARCH ----->" & Space(3) & Date() &_
   vbCrLf & Space(3) & CName(1)
   Ts.Close
  For Each objFile in colFiles
  If ColFiles.count = 0 Then
  Set Ts = Fso.OpenTextFile("ReportFile.txt",ForAppending)
  Ts.WriteLine "Cannot Find This App" & Space(3) & App(0) & "." & App(1)
  Ts.close
   Else
  '''' Extra Varibles If Needed
  FName = Ucase(objFile.FileName)
  Kbname = Ucase(objFile.FileName & "." & objFile.Extension)
  KbPath = UCase(objFile.Drive & objFile.Path)
  TheFile = KbPath & Kbname
   If Fso.FileExists(TheFile) Then
   Set Ts = Fso.OpenTextFile("ReportFile.txt",ForAppending)
      Ts.WriteLine "Array Part 1 = " & App(0) & " <-----> Array Part 2 = " &_
      App(1) & vbCrLf & "<------------------------------>"
      Ts.WriteLine "(""Select * from CIM_DataFile Where FileName = '" & App(0) & "' AND Extension = '" & App(1) & "'"")" &_
      vbCrLf & "<------------------------------>"
      Ts.WriteLine  "<------------------------------>" & vbCrLf &_
      "Act.Run(""" & KbPath & App1 & """)" & vbCrLf & "<------------------------------>"
     FinishTime = Timer
     EndTime = Timer
     E_Time = EndTime - StartTime
     E_Time = Left(E_Time,4)
     Ts.WriteLine V & "<-------------------- TEST TIME RESULTS ------------------------->"
     Ts.WriteLine Sp3 & "The Start Time : " & MyT & V & Sp3 & "The End Time : " & Time() & V &_
     Sp3 & "Time Amount Of Time The Script Ran = " & E_Time & " Seconds" & V
      Ts.Close
     Exit For
    End If
    End If
   Next
  End function
  Check_CD_App
  Function Run_Report
  Act.Run("ReportFile.txt"),1,True
  Gsm = Act.Popup("Did You Want To Keep The Report" &_
  vbCrLf & " Yes To Keep The Report" & vbCrLf & " No To Delete The Report" &_
  vbcrlf & " If Nothing Is Seleted,In" & vbCrLf & "30 seconds It Keeps The Report" &_
  vbCrLf, 30, "Keep Or Delete", 4 + 32)
  If Gsm = Vbyes Then '''' Yes
   Exit Function
  End If
  If Gsm = Vbno Then '''' No
  Fso.DeleteFile("ReportFile.txt")
   Exit Function
  End If
  If Gsm = -1 Then '''' Time Out
   Exit Function
  End If
  End Function


The Report It Produces
Green Text Would Be It Run Command.

Quote

  
   3:16:31 PM<----- BEGIN SEARCH ----->   9/27/2005
   CDROMHL-DT-ST_RW/DVD_GCC-4521B
Array Part 1 = Winamp5 <-----> Array Part 2 = msi
<------------------------------>
("Select * from CIM_DataFile Where FileName = 'Winamp5' AND Extension = 'msi'")
<------------------------------>
<------------------------------>
Act.Run("H:\UA-WORKDIR\UA-SOFTWARE\WINAMP\WINAMP5.MSI /Xname=Spad Xkey=XXXXX-XXXXX-XXXXX-XXXXX Xagent=1 Xlibrary=0 Xintex=1")
<------------------------------>
<-------------------- TEST TIME RESULTS ------------------------->
   The Start Time : 3:16:30 PM   The End Time : 3:16:47 PM   Time Amount Of Time The Script Ran = 17.3 Seconds
<{POST_SNAPBACK}>



whoa...thats quite a script there...wish i could understand it!!!

thx for posting but its not really what i had in mind, however the links that Yzöwl posted look promising...

thx both of you!

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2011 msfn.org
Privacy Policy