Autostart ClickOnce program i en stille modus

stemmer
1

Jeg har et program som bruker ClickOnce å distribuere, og jeg har klart å få programmet starter når en bruker logger inn.

Mine problemer er at jeg trenger programmet til å starte opp skjult (Jeg ønsker ikke en bruker til å minimere det før de trenger det - jeg vil den skal sitte i systemstatusfeltet). Før du bruker ClickOnce Jeg bare sjekket argumentene for å se om / stille ble vedtatt i. Det synes å være noen måte å gjøre dette på en ClickOnce program (du kan sjekke om en URI søkestrengen er gått inn, men fordi dette er løpe fra en .appref ms snarvei det synes å være noen måte å få /silentargument)

Hvordan kan jeg få /silentargument, eller hvordan kan jeg vite om programmet har startet som følge av at brukeren logge på (i stedet for at brukeren starter programmet fra en snarvei)?

Det er viktig at det foreslåtte løsningen ikke krever administratortillatelser, men språket som brukes er ikke så viktig som jeg kan trolig port den til .NET.

Publisert på 16/07/2009 klokken 19:38
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Jeg tror ikke det er en veldig ren måte å gjøre dette siden kommando argumenter ikke fungerer, og du kan ikke bruke søkestreng argumenter.

Men prøv å utplassere en annen liten kjørbar med ClickOnce distribusjon. Det ville være ansvarlig for å sette en "oppstart" flagg (i en konfigurasjonsfil, register, uansett) og deretter lansere selve søknaden. Din søknad vil sjekke flagget for å avgjøre om det skal starte stille og tilbake flagget. Så du ville bare ha liten kjørbar start med Windows i stedet for hoved søknad.

Selvfølgelig jeg ikke prøve noe av dette ut.

Svarte 17/07/2009 kl. 11:51
kilden bruker

stemmer
0

Du kan gjøre det på denne måten:

I hoved-metoden:

if ((args.Length > 0 && args[0].ToLower() == "minimized") ||
    (AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0 &&
    AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0] == "minimized"))//ClickOnce arguments
{

    //My code to start minimized. My system tray is always visible
    main.WindowState = FormWindowState.Minimized;
    main.Hide();
    main.ShowInTaskbar = false;
}
else {

    //Code to start normally
    main.WindowState = FormWindowState.Normal;
    main.ShowInTaskbar = true;
    main.Show();
}

Deretter kan du bare passere argumentet 'minimert' med ClickOnce-programmet for å starte den minimert.

Å starte min ClickOnce programmet automatisk, gjør jeg en snarvei som dette:

CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + @"\LVH Tools\MyMiniTools.appref-ms", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\MyMiniTools", "minimized")

'MyMiniTools' er navnet på programmet, og 'LVH Tools' er utgivernavnet.

Lag snarvei:

    public void CreateShortcut(string destinationPath, string shortcutPath, string arguments = "")
    {
        IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();

        shortcutPath = Path.ChangeExtension(shortcutPath, "lnk");

        IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(shortcutPath);

        shortcut.TargetPath = destinationPath;
        shortcut.IconLocation = destinationPath;
        shortcut.Arguments = arguments;

        shortcut.Description = Path.GetFileNameWithoutExtension(destinationPath);

        shortcut.Save();
    }

En annen metode for å muliggjøre automatisk start med ClickOnce er forklart i ClickOnce søknad automatisk start og ren avinstallering eller måten å tilpasse ClickOnce installasjon .

Svarte 21/05/2013 kl. 13:20
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more