Bt Window Still Invisible After Setting Visiblewindows As All S’abonner

0
Avatar
Legacy Poster

The following is my system's environment:
   .net 4.0

   IIS7

   vs 2010

   win7

   Bartender 10.0SR4 Automation

 

In task manager, there is a bartend.exe instance but there is no visble window of the BT instance.

The development server runs without a problem.

 

codes:

 

                try
                {
                    Engine btEngine = new Engine();
                    btEngine.Start();

                    // Make BarTender visible to the user.
                    btEngine.Window.Visible = true;
                    btEngine.Window.VisibleWindows = Seagull.BarTender.Print.VisibleWindows.All;

                    Messages message = new Messages();
                    LabelFormat lf = new LabelFormat(this.Server.MapPath(@"../LabelTemplates/94X158-v3.btw"));

                    LabelFormatDocument btFormat = btEngine.Documents.Open(lf, out message);
                    if (!(btFormat is LabelFormatDocument))
                    {
                        btEngine.Stop();
                        continue;
                    }

                    btFormat.SubStrings["PO"].Value = io.PO;
                    btFormat.SubStrings["POItem"].Value = hl.CustomerPoItem;
                    ...
                }
                catch (Exception ex)
                {
                    Master.ValidationErrors.Add("Error.");
                    Master.ValidationErrors.Add(ex.Message);
                    Master.ValidationErrors.Add(ex.InnerException.Message);
                    return;
                }

5 commentaires

0
Avatar
Domingo Rodriguez
Modérateur
Actions pour les commentaires Permalien

What happens if immediately after making the Window visible you sleep the system for 5 seconds, will you then see the visible window?

 

// Wait five seconds so the user can see the window.
      System.Threading.Thread.Sleep(5000);

Furthermore, the bartend.exe process you see in task manager, is it running under the same Windows account than you're currently logged under?

0
Avatar
Legacy Poster
Actions pour les commentaires Permalien

What happens if immediately after making the Window visible you sleep the system for 5 seconds, will you then see the visible window?

 

// Wait five seconds so the user can see the window.
      System.Threading.Thread.Sleep(5000);

Furthermore, the bartend.exe process you see in task manager, is it running under the same Windows account than you're currently logged under?

 

No, it is the same as before.

 

And the bartend.exe is running under the same Windows account.

0
Avatar
Domingo Rodriguez
Modérateur
Actions pour les commentaires Permalien

If BarTender is being run under a service context (which seems to be the case as you're using IIS), BarTender cannot be made visible because interactive dialogs are not allowed in newer versions of Windows. This is because Windows discovered that this was a security flaw.

0
Avatar
Legacy Poster
Actions pour les commentaires Permalien

If BarTender is being run under a service context (which seems to be the case as you're using IIS), BarTender cannot be made visible because interactive dialogs are not allowed in newer versions of Windows. This is because Windows discovered that this was a security flaw.

 

Is there any workaround? Does Windows XP work this way?

0
Avatar
Domingo Rodriguez
Modérateur
Actions pour les commentaires Permalien

Services cannot directly interact with a user as of Windows Vista, so yes, on Windows XP the behaviour should be different, but please be aware that running interactive dialogs while running under a service context is a security risk and this is why Microsoft has blocked this in newer versions of Windows.

Vous devez vous connecter pour laisser un commentaire.