controlpanel - Er der nogen måde at åbne et kontrolpanelvindue med en const-søgestreng?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal åbne et kontrolpanelvindue med en const-søgningstreng: date direkte.


Sådan her:


Kontrolpanel med søgestreng


Er der nogen måde at gemme et search.exe søgeresultat på og genbruge det som vi gør indenfor explorer.exe for at gøre dette job?


Eller andre måder er alle acceptable.


Bare giv mig en vejledning, specifikke koder er ikke nødvendigvis.

Bedste reference


Jeg prøvede nogle ideer i de sidste minutter, så jeg vil bare lade mine resultater her:



  1. Stifinder søgning : Hvis du bruger søgefunktionen i en normal mappe, kan du gemme din søgning og kalde filen for at starte den igen. Der er en tråd i superuser stackexchange hvordan man gør dette. Den nævnte .search.ms -fil er baseret på XML, så måske kan nogen med bedre kendskab til Windows-path ids ændre en sådan fil, så den passer til din sag. [10]

  2. Parametre for control.exe : Jeg antager, at du allerede har fundet control.exe eksekverbar i System32, som åbner kontrolpanelet og giver forskellige underpaneler via specielle navne [[.cpl filer eller /page parameteren. Jeg kunne ikke finde en fuld kommando referencen til control.exe, så måske er der en parameter til et første søgeord, men efter min mening er det meget usandsynligt.

  3. Beskidte hacks : Jeg har bemærket, at når du åbner kontrolpanelet, bliver søgefeltet fokuseret, så jeg skrev et script, der bruger klippebordet til at indsætte et søgeord. Jeg brugte powershell, men det meste af dette script er kopieret fra forskellige stackoverflow-tråde, så det har meget lav kvalitet , men det virker. Måske kan du forbedre dette og slippe af med Start-Sleep del, fordi den nødvendige ventetid afhænger af tidspunktet for åbning af kontrolpanelet.


    [void][System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
    "date" | clip
    Start-Process control.exe
    Start-Sleep -Milliseconds 200
    [System.Windows.Forms.SendKeys]::SendWait("^{v}")