Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

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(-)