Processing Ajax...

Title

Message

Confirm

Confirm

Confirm

Confirm

Are you sure you want to delete this item?

Confirm

Are you sure you want to delete this item?

Confirm

Are you sure?

User Image
Jojosan
2 discussion posts
Hey there,

i have a problem to get the script from orlando2bjr to work properly.

Code

using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
//replace these variables with ones that will work on your system
string defaultProfile = "[your default profile]";
string bigPictureProfile = "[your big picture profile]";
string steamDirectory = @"J:\Program Files (x86)\Steam\Steam.exe"; //Environment.GetEnvironmentVariable("ProgramFiles(x86)") + "\\Steam\\Steam.exe";
const int waitForever = 0;

// get current profile name
string currentProfileName = BFS.DisplayFusion.GetCurrentMonitorProfile();
if(currentProfileName == "")
currentProfileName = defaultProfile;

// close Steam if it is running
uint steamID;
bool wasSteamRunning = BFS.Application.IsAppRunningByFile(steamDirectory);
if(wasSteamRunning)
{
steamID = BFS.Application.GetAppIDByFile(steamDirectory);
BFS.Application.Kill(steamID);

// wait for Steam to exit
BFS.Application.WaitForExitByAppID(steamID, waitForever);
}

// wake up the monitors
BFS.General.WakeMonitors();

// load the big picture monitor profile and wait for it to switch
BFS.DisplayFusion.LoadMonitorProfile(bigPictureProfile);
string profileName = BFS.DisplayFusion.GetCurrentMonitorProfile();
while(!profileName.Equals(bigPictureProfile, StringComparison.OrdinalIgnoreCase))
{
BFS.General.ThreadWait(100);
profileName = BFS.DisplayFusion.GetCurrentMonitorProfile();
}

// start Steam in Big Picture mode
steamID = BFS.Application.Start(steamDirectory, "-bigpicture");

// wait for Steam to exit
BFS.Application.WaitForExitByAppID(steamID, waitForever);

// restart Steam in normal mode
if(wasSteamRunning)
BFS.Application.Start(steamDirectory, "");

// wake up the monitors
BFS.General.WakeMonitors();

// load the last running monitor profile and wait for it to switch
BFS.DisplayFusion.LoadMonitorProfile(currentProfileName);
}
}


I've set my default and Big Picture profie and also the path to steam. When i start the script the monitor change to the other and steam get closed but dont start again.

What did i do wrong?

Thx and greeetings
Aug 3, 2015 (modified Aug 5, 2015)  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Ah, the path to Steam needs to have double-backslashes for the directory delimiters, like this:

Code

string steamDirectory = @"J:\\Program Files (x86)\\Steam\\Steam.exe";


I'll fix that up in the repository, thanks!
Aug 5, 2015  • #2
User Image
Jojosan
2 discussion posts
Ok, thank you. I've changed this, but it don't work again.

What's about:

//Environment.GetEnvironmentVariable("ProgramFiles(x86)") + "\\Steam\\Steam.exe";

Is this important? Nonetheless i have found an alternative solution:

Code

using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
//Laedt das Steam Big Picture Profil (Steam zuvor auf Big Picture einstellen)
BFS.DisplayFusion.LoadMonitorProfile("Steam Big Picture");

//Laedt das entsprechende Audio-Geraet fuer HDMI (kann auch in den Bildschrimprofilen eingestellt werden)
BFS.Audio.SetDefaultPlaybackSounds("Panasonic-TV-4 (Nvidia High Definition Audio)");
        
//Starte Steam im Big Picture Mode
BFS.Application.Start("D:\\Steam\\Steam.exe", "");

//beim beenden auf Steam warten
BFS.Application.WaitForExitByFile("*Steam.exe", 0);

//Laedt das Default Monitor Profil
BFS.DisplayFusion.LoadMonitorProfile("GW2760 only TV out");

//Laedt wieder das Standard Audio-Geraet (kann auch in den Bildschrimprofilen eingestellt werden)
BFS.Audio.SetDefaultPlaybackSounds("Speakers (Sound Blaster Z)");
}
}


You see i switch to another audio-source even. OK, i know you can do this in monitor profiles, but why not directly in the script?

When i found a solution to start Steam immediately in Big Picture Mode, i will update the whole script.

Greetings

Update:
I've uploaded the correct script to your database. It works like charm now.
Aug 6, 2015 (modified Aug 6, 2015)  • #3
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Awesome, glad to hear you were able to get it sorted! We'll add it to the online repository :)
Aug 6, 2015  • #4
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)