Autostart within Windows 8 Desktop App Certification Requirements - vb.net

The Windows 8 Desktop (not Metro!) App Certification Requirements state
10.2 Your app must avoid starting automatically on startup.
For example, your app should not set any of the following;
Registry run keys HKLM and, or HKCU under
Software\Microsoft\Windows\CurrentVersion
Registry run keys HKLM, and or HKCU under Software\Wow6432Node\Microsoft\windows\CurrentVersion
Start Menu AllPrograms > STARTUP `
I agree that lots of autostart background processes are unneccessary and this should be avoided if possible, but some apps (like mine) sit in the system tray and the user explicitly wants them to auto-start on boot.
Is there anything that's allowed to make the app auto-start?

Task Scheduler can be used to launch programs whenever a user logs on. However, I believe the team does not want certified apps to run automatically at all. Of course drivers will run on startup, but those aren't certified apps. I would guess that screen readers and accessibility tools wouldn't be considered certified apps either, but I'll ask around.

Related

signing of symbian app,is there any way now?

Since nokia doesn't sign symbian apps any more,is there any alternative to sign app for symbian?
may be some behind the scene hack or bypass?
symbiansigned.com and cer.opda.cn are dead, don't even mind getting developer certificates - just hack your phone, no way to do this otherwise nowadays:
https://shahbazalam781.blogspot.com/2013/04/hack-all-symbian-phones-s60v3-s60v5-s3.html
This works great, just try setting your phone Date & Time to somewhere about 2010-2012 when installing apps until it clicks. After hacking phone you won't need to do this anymore.
In case link dies:
SIMPLEST PROCEDURE: First Download 3 Files
DOWNLOAD-Norton-Symbian-Hack http://gallery.mobile9.com/f/3177996/
DOWNLOAD-Rom-Patcher-Plus-v31 http://gallery.mobile9.com/f/3178010/
DOWNLOAD-Xplore V1.58 http://gallery.mobile9.com/f/3175430/
Install “NortonSymbianHack.sisx”.
Launch it.
Go Options – Anti-Virus – Quarantine list.
Go Options – Restore. Accept prompt.
Exit application. Delete Norton from Application Manager (Symantec Symbian Hack). Also delete “C:\shared\” folder.
Install “RomPatcherPlus_3.1.sisx”.
Launch and apply patches:
Open4all for full access to file system.
Installserver for installing any unsigned applications.
(If “Installserver” has red cross, follow steps 8 to 15.) (If checked,
reboot now your phone.)
Note: Set patches to auto if needed. (Options – Add to auto)
Install X-Plore.
Open it.
Press (Menu – Tools – Configuration).
Check all (Show Hidden Files, etc.).
Open “installservers_pack.zip”.
Choose what Symbian OS you have. (List below)
Copy “installserver.exe” from the folder of your OS to “C:/sys/bin”. (No need to apply patch on RomPatcher.)
Reboot phone. Phone is now hacked.
Officially, you could of course continue using the developer certificates you might have, and if they are expired, the device time might be needed to be adjusted for the installation time.
Then also the self-signing works just as it used to. For any new certificates or signings, unfortunately there are no official help available.
You can use this app to sign Symbian apps.
The signing process is fail-able but the self-signing works perfectly.
Here's the link

Add exception to Windows Defender at install time

When running on Windows 8, our application is exceptionally slow unless we add a process exception for it in Windows Defender. (It is mostly from logging operations onto the disk.)
Is there a way to add the exception programmatically during our InstallShield installation? Calling a custom action in C# or VBScript is fine.
Actually i think you look for Add-MpPreference.
Your application is probably slow because you touch a lot of files, and each file you touch gets scanned by the defender.
I use this Powershell command two times, to excluding the exe (-ExclusionProcess) AND the files (-ExclusionPath) during installation.
If it would be so easy to add an exception to Windows Defender by using a VBScript script, Windows Defender would be no protection for your computer because any malware would simply add an exception for itself.
There are some registry keys which define if Windows Defender's real time protection is enabled or not. You can read these values to know if it is active and alert your user that the slowness is caused by Windows Defender. But you cannot modify these keys, not even running in a service with SYSTEM user. These registry keys are protected by Windows to forbid tampering.
Note that since Windows 10 the option to add exceptions to Windows Defender does not exist any more.
The only way to turn on or off Windows Defender:
Manually via Windows Defender configuration panel (MsAscUi.exe)
Install another antivirus program which disables Windows Defender automatically.
If you are interested in the registry keys read my answer in another question:
Find out if Windows Defender disc scan is running?

Can I distribute a Windows 8 Modern UI App without using the Store?

I want to know if I can distribute a copy of a Windows 8 App using some form of package file, avoiding the need to get it from the Store. I want to target average users, not developers.
If you're targeting end users, i.e. consumers, then the answer would be no. I don't even see the advantage of bypassing the store in this case, since it only brings you a larger potential market for your application.
Sideloading of applications (the name used for installing them without publishing to the store) is supported only for the enterprise scenario to allow companies to install their own line of business applications which they don't want to publish in the store. There are multiple requirements for this to work which are not feasible for individual end users.
That being said, nothing prevents you from creating the appx package (Project > Store > Create App Packages... menu in Visual Studio) and distribute it to your users. Along wih the package a PowerShell script is generated (Add-AppDevPackage.ps1) which takes care of installing the application on another machine, including installing the certificate and obtaining the deceloper license (for which he will need a Live account). The user will require administrative privileges to run the script. And he will have to renew the developer licence every 30 day for the app to continue working. Because of all that this process is really only suitable for a small number of users who can test your app before you submit it to the store.
I found the link below as an answer to a previous question. It seems that you could easily install it using the temp folder and NSIS.
How to install a Windows 8 App Without Submitting to Store
The Windows Store is exactly the mechanism you'd want to use to target average users; it's the place they will go to discover and install new applications.
Technically, you can sideload applications; however, that mechanism is for distributing line-of-business applications within an enterprise. You can also install an application package directly on an end-user machine, but that will require a developer license on that machine, and that's explicitly contrary to your goals.

Making an application launcher

Okay so I want to make an application that launches other applications. However, the goal here is to make the app "portable" in that I can go from one windows desktop to another while using the same application from a usb drive. So here is a different rundown of what I mean:
I have aplication X. I use it on machine 1 and I want to use it on machine 2. However, machine 2 is my buddy's and he does not want me installing things on it. So, I take all the files that the installer made on my system, and put them into folders. App X put files in the windows folder that it expects when it is launched. If I merely run the the app and it looks in the windows dir it will not find the files. I do not have/want the ability to put files in the windows dir. I want to tell the app to look in folder a for files in folder b instead of where it would normally look. I could then use this program on any machine without having to modify the machine in any way.
Is this doable? If so what is it called so I can look it up?
EDIT: the win dir was an example. I would like the app to be self contained in a folder on the thumb drive. I want to redirect the where the app looks for files to a folder I specify.
This can be done, but how easily depends entirely on the program that you are launching.
The sorts of things that applications will do are:
Just run happily being executed anywhere (no dependencies). These are very easy!
Require some environment variables to be set up. This is easy to do - you can launch a new process with a modified environment if you wish.
Read files from disk. Usually when loading things like .dlls, applications will search on the PATH for the dlls, so they can be copied into the application folder (next to the .exe) and it will run happily on any system. However, in some cases applications will use fixed (or at least, less flexible) paths so that they will be harder to launch successfully.
Read registry settings. This is trickier. You need to know what state is required by the application, have your launcher record the old registry state, change it and run the application, then wait for application exit to restore the original state. This has to be bullet-proof to avoid corruption of the user's registry.
Ultimately you'll need to investigate, for each app you want to launch, just what it needs to run.
If the apps are commercial, then be careful that you are not breaking any licensing (EULA) terms by running them in this way.
Another alternative would be to set up a virtual PC image and simply execute that on the host PC so there is no need to worry about any special cases for each application. Depending on the VPC software you have available you may need to install software on the host PC to allow a virtual PC session to be run though, which may defeat the purpose/intent.
I think the system you describe is U3 (more info at http://en.wikipedia.org/wiki/U3). It requires the application to follow the U3 protocol, but if the application does, then it can be run off of a U3 flash drive without any install or admin permissions required on the host machine.
It's a proprietary technology, and supported by only a few vendors that I've seen.
If you really want portability and power, consider VMWare Player, and carry and entire machine, customized to your needs, on the flash drive. Of course, your friend would probably have to allow you to install VMWare Player.

Automatically launch app on USB (through autorun?)

Is it possible to automatically launch an application from a USB flash drive (bypassing windows prompt asking user what he wants to do)? on windows XP or vista.
I looked into "autorun.inf" and "open" entry seems to work only for CD drives for Windows XP SP2+ and Vista. Is it possible to launch program automatically on all windows versions?
I don't care if autorun is disabled by user in Windows settings.
First of all, some people choose to disable autorun for security reasons; but Windows computers up to Vista have it enabled. Edit: Apparently the functionality was removed from Windows 7 onwards.
Put a file named autorun.inf in the root of your USB flash drive. This is what's in mine:
[Autorun]
Open=PStart.exe
Action=Start portable apps
Icon=diskicon.ico
What it does: when you insert this disk, starts PStart.exe
On older computers, the program specified in Open= will launch automatically.
On most modern computers (Windows XP SP2+, Vista), dialog "what do you want to do" will be displayed (for security reasons), but what you have in autorun.inf will display as the selected default, with Icon= as icon and Action= as description. If you want to launch it, just click the "OK" button in the dialog.
So, although I'm not aware of any way to start the application (e.g. PStart) immediately, it is possible to insert flash disk with this configuration and start application by clicking OK.
Tested on different computers, running Windows XP without a SP, also on Windows XP sp 1, sp2, sp3, and on various Vistas (not sure which types, but should work all the way from Vista Home Basic to Vista Enterprise Super-Mega-Premium-Extended Edition) and "Windows 7". Also works on Windows 2000 (although autorun on Win2000 for removable drives is not enabled in default configuration).
Note that some applications, in addition, may trigger the "unknown/unsigned exacutable" security dialog, as if you opened them manually.
Edit: For more details, see also:
Autoplay in Windows XP: Automatically Detect and React to New Devices on a System
I've had something set up on my USB keys for a while now. Using the autorun.inf file will work, depending on your system's settings for autorun. Some disable it altogether after that little debacle with Sony a couple years back installing rootkit software on peoples' machines. Here're a couple articles to check out.
Label a Flash Drive with Your Name and Number
Have Your Lost USB Drive Ask For Help (1) or 2
you need UseAutoplay to let this work on usb.
and if you take ShellExecute instead of open you can also open scripts/documents/...
[Autorun]
ShellExecute=System\something.exe
UseAutoplay=1
there are also U3 usb sticks arround, they will be reconised as cdrom drives in windows.
if you put an a autorun.inf on one of those, it will get executed without the user being questioned.
regards morla
I found the solution in this blog
How To Auto-Launch Apps With A USB Stick [Windows]
It worked fine for me
(the article explains how to do it with AutoIT, a 3rd party app that must be installed on the host computer)