DanysysTeam / PS-SFTA

PowerShell Set File Type Association
253 stars 53 forks source link

Does not change file associations #24

Closed JohnTravolski closed 1 year ago

JohnTravolski commented 1 year ago

I'm not sure if I'm using this incorrectly, but when I attempt the following:

import-module .\SFTA.ps1
Set-FTA "C:\Program Files\JPEGView64\JPEGView.exe" .gif

Windows Explorer refreshes, but then the file type association remains unchanged (the .gif file still opens with Internet Explorer, rather than JPEGView). Am I doing something wrong?

I'm on Windows 10 version 1607 (LTSC 2016).

Danyfirex commented 1 year ago

Hello, Can You run with -verbose parameter and show output here?

JohnTravolski commented 1 year ago

Let me know if this helps:

PS C:\Users\John\Downloads\SFTA> import-module .\SFTA.ps1
PS C:\Users\John\Downloads\SFTA> Set-FTA -verbose "C:\Program Files\JPEGView64\JPEGView.exe" .gif
VERBOSE: ProgId: C:\Program Files\JPEGView64\JPEGView.exe
VERBOSE: Extension/Protocol: .gif
VERBOSE: Getting Hash For C:\Program Files\JPEGView64\JPEGView.exe   .gif
VERBOSE: Use Get-UserSid
VERBOSE: baseInfo: .gifs-1-5-21-2530944992-3347900734-157161566-1001c:\program files\jpegview64\jpegview.exe01d938664c2d5800user choice set via windows user experience
 {d18b6dd5-6124-4341-9318-804003bafa0b}
VERBOSE: Hash: p2uj9j0q1Gk=
VERBOSE: Write Reg ApplicationAssociationToasts OK: C:\Program Files\JPEGView64\JPEGView.exe_.gif
VERBOSE: Write Reg ApplicationAssociationToastsList OK: Applications\Illustrator.exegiffile   _.gif
VERBOSE: Write Registry Extension: .gif
VERBOSE: Remove Extension UserChoice Key If Exist: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.gif\UserChoice
VERBOSE: Write Reg Extension UserChoice OK
Danyfirex commented 1 year ago

I think your issue is that you're using Set-FTA which is used to associate an application already registered in the system with a ProgId registered. I your case You need to use Register-FTA to create a custom/default ProgId. So The correct way to go is this:

import-module .\SFTA.ps1
Register-FTA "C:\Program Files\JPEGView64\JPEGView.exe" .gif
JohnTravolski commented 1 year ago

I think your issue is that you're using Set-FTA which is used to associate an application already registered in the system with a ProgId registered. I your case You need to use Register-FTA to create a custom/default ProgId. So The correct way to go is this:

import-module .\SFTA.ps1
Register-FTA "C:\Program Files\JPEGView64\JPEGView.exe" .gif

This worked. Thanks!