Can I auto-start HWiNFO only after RTSS is itself running? HWiNFO overlay parts can fail otherwise

Discussion in 'Rivatuner Statistics Server (RTSS) Forum' started by BlindBison, May 30, 2021.

  1. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
    I have a HWiNFO overlay setup like this:

    upload_2021-5-30_16-49-28.png
    Now, the issue is with that bottom FPS line -- I've set this up in HWiNFO here in the RTSS section:

    upload_2021-5-30_16-50-1.png
    Now, what I've noticed is a problem where when both RTSS and HWiNFO are set to be autostarted with windows, RTSS won't open til after HWiNFO sometimes which makes the FPS line of the overlay not work correctly. HWiNFO has to itself be manually restarted once RTSS is open, then that line/section draws in correctly.

    Is there a way for me to autostart both apps, but only start HWiNFO after RTSS itself has been opened? That would resolve this problem I believe. Thanks!
     
  2. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    15,391
    Likes Received:
    2,661
    It needs to be addressed on HwInfo side.
     
    BlindBison likes this.
  3. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
    Thanks! That's great to know, so far I haven't found a way to manually assign launch orders in windows so I might just have to do it manually or give up on the overlay/that part of it. Ah well, good to know in any case, thanks a lot.
     
  4. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    You should be able to do it by creating a task in Task Scheduler yourself which at logon starts RTSS and right after that starts HWInfo.
    I think you can assign multiple items to a single task and they are performed in order, IIRC you can even add a delay to the latter operation (start HWInfo).

    At my work PC now so can't verify just now but in any case this should be possible, if not with one task then two separate tasks.

    Remember to disable auto-startup from both RTSS and HWInfo first to not "interfere".
     
    BlindBison likes this.

  5. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    Tried with home PC and you need to create 2 tasks.
    While you can add multiple programs to run into one task, the latter will run only when the former is exited / terminated.

    Here's an example with RTSS and 3DMark (substitute HWInfo for 3DMark for your case):
    tasks.png

    task_delay.png


    Both tasks have trigger "At log on of any user" but to make sure RTSS runs first, "3DMark" task has a 5 second delay defined.
    Note you can type in the delay yourself instead of just choosing from the few options in the drop-down menu, just type it exactly as you want like "5 seconds" or "1 minute" without quotes.

    To get started just click on "Create Task..." on the right pane in Task Scheduler:

    create_task.png


    It's pretty self-explanatory after that, define task name and description, Trigger (=At log on), Action (=Start a program) and you're set.

    Do remember to tick "Run with highest privileges" in both tasks, otherwise UAC will prevent them from running as RTSS and HWInfo need admin rights to run:

    task_privileges.png
     
    Last edited: May 31, 2021
    BlindBison likes this.
  6. Astyanax

    Astyanax Ancient Guru

    Messages:
    10,612
    Likes Received:
    3,889
    GPU:
    GTX 1080ti
    Hrm,

    RTSS will autostart AIDA if its not running and the aida plugin is enabled, it doesn't do this with HWInfo?
     
  7. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
    Thank you very much, this is very helpful, you're the man
     
    AsiJu likes this.
  8. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    I am the man, thank you for noticing :p
    j/k

    EDIT: btw you needn't create that OWN TASKS folder shown in screenshots, I just created it to have those 2 tasks separate from others.

    You can create your tasks direct to the Task Scheduler Library.
     
    BlindBison likes this.
  9. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    15,391
    Likes Received:
    2,661
    OP doesn't use MSI AB/RTSS plugins. He wants reverse thing - monitor data imported from RTSS (framerate and frametime) in own HwInfo's GUI, which is only available there when HwInfo is started and RTSS is already running. That' should be handled at HwInfo side, it may either start RTSS or adopt to dynamic RTSS start/stop scenario.
     
    BlindBison likes this.
  10. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
    I was surprised that this was still a problem with HWiNFO, but @AsiJu 's solution with the manual task scheduling has appeared to work in my local tests.

    Now, it will start up both at log in and it will startup HWiNFO a few seconds later and I've not run into the issue of HWiNFO opening before RTSS yet with that in place. Still, this is sort of a pain to handle so here's hoping the startup ordering is resolved or that HWiNFO can check if RTSS is open for that data even if its opened first in the future.
     
    AsiJu likes this.

  11. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
    Oh, I ended up created a separate folder labeled "myCustomTasks" or some such -- I actually kinda like it as then my own tasks can be separated out from the one's created by windows or the ones created automatically by other applications for example. Thanks for the advice your strategy does seem to work -- really I just hope this is something HWiNFO fixes down the line, but who knows if that'll happen.
     
  12. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,808
    Likes Received:
    8,062
    GPU:
    GF RTX 2070 Super
    In old days you could use bat-file which starts apps in proper order.
    Nowadays Task Scheduler is a thing.
     
    Last edited: Jun 2, 2021
    AsiJu and BlindBison like this.
  13. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    Could use a batch file too but you'd still need to run the batch file with Task Scheduler so its' just as well, I think.

    Btw now that @mbk1969 is here:

    does Windows track and associate events with applications launching or with tasks run?
    Asking out of interest because it would be a smarter way to create the latter task, make it depend on event = RTSS is launched or the former task is run.

    Or is it even possible to track an individual executable or task via events?
    As far as I can tell events are pretty "general" in type, as in a certain event code refers to application hang but the event code does not describe what app hung.
     
    BlindBison likes this.
  14. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,808
    Likes Received:
    8,062
    GPU:
    GF RTX 2070 Super
    @AsiJu

    You still can launch apps and bat-files from old auto-start places like menu and registry.

    As for task scheduler events, there is event log "Microsoft-Windows-TaskScheduler/Operational", here is a senquense of events on task launched in Task Scheduler:
    Code:
    •    DESCRIPTION
    Task Scheduler launch task "\Opera scheduled Autoupdate 1561480693", instance "C:\Program Files\Opera\launcher.exe" with process ID 4940.
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>129</EventID>
        <Version>0</Version>
        <Level>4</Level>
        <Task>129</Task>
        <TaskName xmlns="">Created Task Process</TaskName>
        <Opcode>0</Opcode>
        <OpcodeName xmlns="">Info</OpcodeName>
        <Keywords>0x8000000000000000</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:14.2787076Z" />
        <EventRecordID>17</EventRecordID>
        <Correlation />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="CreatedTaskProcess">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="Path">C:\Program Files\Opera\launcher.exe</Data>
        <Data Name="ProcessID">4940</Data>
        <Data Name="Priority">16384</Data>
      </EventData>
    </Event>
    
    Code:
    •    DESCRIPTION
    Task Scheduler started "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" instance of the "\Opera scheduled Autoupdate 1561480693" task for user "NT AUTHORITY\SYSTEM".
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>100</EventID>
        <Version>0</Version>
        <Level>4</Level>
        <Task>100</Task>
        <TaskName xmlns="">Task Started</TaskName>
        <Opcode>1</Opcode>
        <OpcodeName xmlns="">Start</OpcodeName>
        <Keywords>0x8000000000000001</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:14.2791514Z" />
        <EventRecordID>18</EventRecordID>
        <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="TaskStartEvent">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="UserContext">NT AUTHORITY\SYSTEM</Data>
        <Data Name="InstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
      </EventData>
    </Event>
    
    Code:
    •    DESCRIPTION
    Task Scheduler launched action "C:\Program Files\Opera\launcher.exe" in instance "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" of task "\Opera scheduled Autoupdate 1561480693".
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>200</EventID>
        <Version>1</Version>
        <Level>4</Level>
        <Task>200</Task>
        <TaskName xmlns="">Action started</TaskName>
        <Opcode>1</Opcode>
        <OpcodeName xmlns="">Start</OpcodeName>
        <Keywords>0x8000000000000000</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:14.2791568Z" />
        <EventRecordID>19</EventRecordID>
        <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="ActionStart">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="ActionName">C:\Program Files\Opera\launcher.exe</Data>
        <Data Name="TaskInstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
        <Data Name="EnginePID">4940</Data>
      </EventData>
    </Event>
    
    Code:
    •    DESCRIPTION
    Task Scheduler launched "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" instance of task "\Opera scheduled Autoupdate 1561480693" for user "System" .
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>110</EventID>
        <Version>0</Version>
        <Level>4</Level>
        <Task>110</Task>
        <TaskName xmlns="">Task triggered by user</TaskName>
        <Opcode>0</Opcode>
        <OpcodeName xmlns="">Info</OpcodeName>
        <Keywords>0x8000000000000000</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:14.2796502Z" />
        <EventRecordID>20</EventRecordID>
        <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="TaskRunEvent">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="InstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
        <Data Name="UserContext">System</Data>
      </EventData>
    </Event>
    
    Code:
    •    DESCRIPTION
    Task Scheduler successfully completed task "\Opera scheduled Autoupdate 1561480693" , instance "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" , action "C:\Program Files\Opera\launcher.exe" with return code 0.
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>201</EventID>
        <Version>2</Version>
        <Level>4</Level>
        <Task>201</Task>
        <TaskName xmlns="">Action completed</TaskName>
        <Opcode>2</Opcode>
        <OpcodeName xmlns="">Stop</OpcodeName>
        <Keywords>0x8000000000000000</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:21.0000881Z" />
        <EventRecordID>21</EventRecordID>
        <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="ActionSuccess">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="TaskInstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
        <Data Name="ActionName">C:\Program Files\Opera\launcher.exe</Data>
        <Data Name="ResultCode">0</Data>
        <Data Name="EnginePID">4940</Data>
      </EventData>
    </Event>
    
    Code:
    •    DESCRIPTION
    Task Scheduler successfully finished "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" instance of the "\Opera scheduled Autoupdate 1561480693" task for user "NT AUTHORITY\SYSTEM".
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
        <EventID>102</EventID>
        <Version>0</Version>
        <Level>4</Level>
        <Task>102</Task>
        <TaskName xmlns="">Task completed</TaskName>
        <Opcode>2</Opcode>
        <OpcodeName xmlns="">Stop</OpcodeName>
        <Keywords>0x8000000000000001</Keywords>
        <TimeCreated SystemTime="2021-06-10T10:52:21.0004973Z" />
        <EventRecordID>22</EventRecordID>
        <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
        <Execution ProcessID="1268" ThreadID="6132" />
        <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
        <Computer>DESKTOP-4JFJ57B</Computer>
        <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="TaskSuccessEvent">
        <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
        <Data Name="UserContext">NT AUTHORITY\SYSTEM</Data>
        <Data Name="InstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
      </EventData>
    </Event>
    
    It is possible to create a trigger (for task) based on events in event logs, and you can even use custom XPath query in it.

    PS
    You can use such custom event trigger on this event:
    Code:
    •    DESCRIPTION
    Task Scheduler successfully completed task "\Opera scheduled Autoupdate 1561480693" , instance "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" , action "C:\Program Files\Opera\launcher.exe" with return code 0.
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
       <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
       <EventID>201</EventID>
       <Version>2</Version>
       <Level>4</Level>
       <Task>201</Task>
       <TaskName xmlns="">Action completed</TaskName>
       <Opcode>2</Opcode>
       <OpcodeName xmlns="">Stop</OpcodeName>
       <Keywords>0x8000000000000000</Keywords>
       <TimeCreated SystemTime="2021-06-10T10:52:21.0000881Z" />
       <EventRecordID>21</EventRecordID>
       <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
       <Execution ProcessID="1268" ThreadID="6132" />
       <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
       <Computer>DESKTOP-4JFJ57B</Computer>
       <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="ActionSuccess">
       <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
       <Data Name="TaskInstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
       <Data Name="ActionName">C:\Program Files\Opera\launcher.exe</Data>
       <Data Name="ResultCode">0</Data>
       <Data Name="EnginePID">4940</Data>
      </EventData>
    </Event>
    
    - all fields can be checked in XPath query:
    • EventID = 201
    • Opcode = 2 (OpcodeName=Stop)
    • Channel=Microsoft-Windows-TaskScheduler/Operational
    • EventData.TaskName = "\Opera scheduled Autoupdate 1561480693"
    • EventData.ActionName = C:\Program Files\Opera\launcher.exe
    • EventData.ResultCode=0
    PPS
    But obviously you were asking about event for starting second task on start of the first task. Which you can with the help of custom XPath filter by the name of the task and/or the path of exe-file, event ID and opcode.
     
    Last edited: Jun 10, 2021
    BlindBison and AsiJu like this.
  15. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    Thanks!

    Are Event IDs unique, as in your example task:

    - Task Scheduler successfully completed task "\Opera scheduled Autoupdate 1561480693"
    - EventID = 201

    so if I'd use EventID = 201 as trigger, would that always use successful completion of that particular task as trigger?
    Or is it "task completed" trigger in general and I'd need to further specify eg.:

    - EventData.ActionName = C:\Program Files\Opera\launcher.exe
     
    BlindBison likes this.

  16. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,808
    Likes Received:
    8,062
    GPU:
    GF RTX 2070 Super
    You actually want to use event for the started task, not finished task, so you have to use this event:
    Code:
    •    DESCRIPTION
    Task Scheduler started "{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" instance of the "\Opera scheduled Autoupdate 1561480693" task for user "NT AUTHORITY\SYSTEM".
    •    XML
    <?xml version="1.0" encoding="utf-16"?>
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
       <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" />
       <EventID>100</EventID>
       <Version>0</Version>
       <Level>4</Level>
       <Task>100</Task>
       <TaskName xmlns="">Task Started</TaskName>
       <Opcode>1</Opcode>
       <OpcodeName xmlns="">Start</OpcodeName>
       <Keywords>0x8000000000000001</Keywords>
       <TimeCreated SystemTime="2021-06-10T10:52:14.2791514Z" />
       <EventRecordID>18</EventRecordID>
       <Correlation ActivityID="{b6606a0f-6c2e-4c07-a937-6bb4030b668a}" />
       <Execution ProcessID="1268" ThreadID="6132" />
       <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel>
       <Computer>DESKTOP-4JFJ57B</Computer>
       <Security UserID="S-1-5-18" />
      </System>
      <EventData Name="TaskStartEvent">
       <Data Name="TaskName">\Opera scheduled Autoupdate 1561480693</Data>
       <Data Name="UserContext">NT AUTHORITY\SYSTEM</Data>
       <Data Name="InstanceId">{b6606a0f-6c2e-4c07-a937-6bb4030b668a}</Data>
      </EventData>
    </Event>
    
    Event ID is unique in context of that provider/channel. Event ID=100 means "Task Started" (TaskName field). Opcode=1 also means "Start", but you can ignore that field.
    I can write XPath query for you, since I have means to try out - https://forums.guru3d.com/threads/alternative-event-viewer-for-windows.431209/
     
    BlindBison likes this.
  17. AsiJu

    AsiJu Ancient Guru

    Messages:
    7,254
    Likes Received:
    2,196
    GPU:
    MSI 6800XT GamingX
    To use my own example above, I'd then want to query Event Id = 100 for task named "Rivatuner" (that is then the trigger for task 3DMark).

    @BlindBison could then just substitute (?) the correct task name for his task trigger.
     
    BlindBison likes this.
  18. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,808
    Likes Received:
    8,062
    GPU:
    GF RTX 2070 Super
    Here is the text of custom XPath query for event from Task Scheduler created for the task`s start:
    Code:
    *[System/EventID=100 and System/Provider/@Name="Microsoft-Windows-TaskScheduler" and EventData/Data="<location of the task><name of the task>"]
    
    For example:
    Code:
    *[System/EventID=100 and System/Provider/@Name="Microsoft-Windows-TaskScheduler" and EventData/Data="\Opera scheduled Autoupdate 1561480693"]
    
    where "\" is the location of the task, and "Opera scheduled Autoupdate 1561480693" is the name of the task
    [​IMG]
     
    Last edited: Jun 10, 2021
    AsiJu and BlindBison like this.
  19. BlindBison

    BlindBison Master Guru

    Messages:
    674
    Likes Received:
    130
    GPU:
    RTX 2080 Super
  20. RealNC

    RealNC Ancient Guru

    Messages:
    3,387
    Likes Received:
    1,581
    GPU:
    EVGA GTX 980 Ti FTW
    @BlindBison Instead of editing anything, simply try this:

    Open the file manager (explorer). Go to the URL bar (ctrl+L) and enter:

    shell:startup

    This will bring you to the correct folder for autostart stuff. Then simply copy the shortcuts for RTSS and hwinfo into that folder. Prepend numbers to the names of the shortcuts. Like "00 RTSS" and "01 HwInfo". See if Windows will then start them in alphabetical order. If yes, then that's all you need.
     
    BlindBison likes this.

Share This Page