Saving Files to Desktop That is Synced Via OneDrive (1 Viewer)

tmyers

Well-known member
Local time
Today, 06:24
Joined
Sep 8, 2020
Messages
1,090
I am trying to save files to users desktop, or even their Documents folder but several people have OneDrive enabled and are syncing either one or both of them which changes their path completely.

Any code I run, whether it is Python or VBA, while it doesn't seem to explicitly fail, doesn't work either. The code runs and a file is supposedly created but never actually appears and becomes "lost". From what I have read it is likely due to OneDrive catching the file during its creation and trying to do something with it but fails.

Would any happen to know a way to bypass OneDrive, or work with it in the event it is enabled? I remember reading somewhere that I likely have to work with its API.

For the record, this is what I was trying to use to check for its use:

Python:
        is_onedrive_in_use = False

        try:
            # Open OneDrive registry key
            with winreg.OpenKeyEx(
                winreg.HKEY_LOCAL_MACHINE,
                r'Software\Microsoft\OneDrive\Settings',
                0,
                winreg.KEY_READ
            ) as key:
                # Get value of the UserFolder key
                user_folder_value = winreg.QueryValueEx(key, 'UserFolder')[0]

                # Check if it being redirected to OneDrive
                if user_folder_value != os.path.expanduser('~\\Desktop'):
                    is_onedrive_in_use = True
        except Exception as e:
            print(e)

        target_desktop_path = os.path.expanduser('~\\Desktop')
        if is_onedrive_in_use:
            target_desktop_path = user_folder_value

        return target_desktop_path
 

tvanstiphout

Active member
Local time
Today, 03:24
Joined
Jan 22, 2016
Messages
222
Could you create the files in the %TEMP% folder, then copy them?
 

tmyers

Well-known member
Local time
Today, 06:24
Joined
Sep 8, 2020
Messages
1,090
Could you create the files in the %TEMP% folder, then copy them?
I have tried creating files elsewhere then tried pushing them to the desktop but that also results in the file becoming lost as OneDrive tries to redirect it. Admittedly I have not tried using the temp folder specifically.
 

theDBguy

I’m here to help
Staff member
Local time
Today, 03:24
Joined
Oct 29, 2018
Messages
21,473
Hi. I just tried to create a file on my desktop using VBA, and it worked, as long as I use the OneDrive address. Is your question how to determine the name of the OneDrive folder?
 

tmyers

Well-known member
Local time
Today, 06:24
Joined
Sep 8, 2020
Messages
1,090
The overarching question I guess would be how to detect if it is in use so I can properly direct the file to the right spot. As currently trying to force it to the desktop when it is in use results in the file becoming lost.
 

theDBguy

I’m here to help
Staff member
Local time
Today, 03:24
Joined
Oct 29, 2018
Messages
21,473
The overarching question I guess would be how to detect if it is in use so I can properly direct the file to the right spot. As currently trying to force it to the desktop when it is in use results in the file becoming lost.
I'm not sure I understand what you mean by "in use." Are you saying some users have One Drive and other don't? Is this not in a business environment?
 

tmyers

Well-known member
Local time
Today, 06:24
Joined
Sep 8, 2020
Messages
1,090
I'm not sure I understand what you mean by "in use." Are you saying some users have One Drive and other don't? Is this not in a business environment?
It is but it is up to each person whether they choose to enable OneDrive or not. Each person has a subscription and up to 1tb of storage but not everyone has it turned on and not everyone syncs the same folders (some only do documents rather than desktop).

As a business it isn't something we push as much as it just comes part of 365 and people choose whether or not to use it.
 

theDBguy

I’m here to help
Staff member
Local time
Today, 03:24
Joined
Oct 29, 2018
Messages
21,473
It is but it is up to each person whether they choose to enable OneDrive or not. Each person has a subscription and up to 1tb of storage but not everyone has it turned on and not everyone syncs the same folders (some only do documents rather than desktop).

As a business it isn't something we push as much as it just comes part of 365 and people choose whether or not to use it.
So, if I understand it correctly, you want to get the sync folder that the user selected when they enabled OneDrive. I converted your python code to VBA, and it didn't work in my environment. My corporate machine didn't have that specific Reg Key. Instead, I found my sync folder in the HKCU hive.
 

Users who are viewing this thread

Top Bottom