ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Post New Requests Here

IDEA: Choose which browser will open a url from external app

<< < (2/6) > >>

steeladept:
it would also be extremely useful if you can say that certain urls (or urls open from certain programs) can launch the configured browser you've already set (without prompt), while others prompt you and let you cancel.  kind of like a browser opening firewall.

i hope here someone will write this.
-mouser (June 23, 2007, 10:52 AM)
--- End quote ---
I  :-* LOVE :-* this idea.  I have many pages that I must open in IE because of the way it is made or, in at least one case, because of the application running to create the page (sharepoint portal).  It just won't open in Firefox without using one of the engine converters (which have their own issues on my machine).

If I can define and set specific URL's to open a new page in IE right out of the application in use at that time (usually Firefox), that would be awesome.

ewemoa:
If FARR could register as the default browser, would this idea be implementable as a FARR plugin? ;)

cyberdiva:
If I can define and set specific URL's to open a new page in IE right out of the application in use at that time (usually Firefox), that would be awesome.
-steeladept (June 24, 2007, 05:34 AM)
--- End quote ---

I should mention that this is possible with the bookmark manager I use, Linkman.  You can set certain bookmarks to open with a specific browser regardless of what your default browser is, and you can also right-click on any bookmark and choose on the fly the browser in which it should open.

skrommel:
 :) Try RunIn!

Shows a list of programs to choose to open associated file types in.

Just compile it and associate the file types you want to control with the compiled exe.

The first time it is run, it creates an ini-file with a list of the programs to choose from. Just edit this file to suit your needs.

It's just an early draft, just test it and see if you can use it.

Skrommel



--- ---;RunIn.ahk
; Shows a list of programs to choose to open associated file types in
;Skrommel @ 2009

#NoEnv
#SingleInstance,Force
SetBatchLines,-1

applicationname=RunIn

INIREAD:
IfNotExist,%applicationname%.ini
{
ini=
(
[1]
name=Notisblokk
exepath=C:\Windows\Notepad.exe
workfolder=
parameters=
iconpath=
iconnumber=

[2]
name=WordPad
exepath=C:\Programfiler\Windows NT\Tilbehør\wordpad.exe
workfolder=
parameters=
iconpath=
iconnumber=

[Settings]
)
FileAppend,%ini%,%applicationname%.ini
ini=
}

; Create the ListView and its columns:
Gui,+ToolWindow +AutoSize +Resize
Gui, Add, ListView, x0 y0 vlistview GLISTVIEW AltSubmit, Name|Program|WorkFolder|Parameters
LV_ModifyCol(3, "Integer")  ; For sorting, indicate that the Size column is an integer.

; Create an ImageList so that the ListView can display some icons:
ImageListID1 := IL_Create(10)
ImageListID2 := IL_Create(10, 10, true)  ; A list of large icons to go with the small ones.

; Attach the ImageLists to the ListView so that it can later display the icons:
LV_SetImageList(ImageListID1)
LV_SetImageList(ImageListID2)

; Ensure the variable has enough capacity to hold the longest file path. This is done
; because ExtractAssociatedIconA() needs to be able to store a new filename in it.
VarSetCapacity(Filename, 260)
sfi_size = 352
VarSetCapacity(sfi, sfi_size)

; Gather a list of file names from the selected folder and append them to the ListView:
GuiControl, -Redraw, listview  ; Improve performance by disabling redrawing during load.
Loop
{
  IniRead,name,%applicationname%.ini,%A_Index%,name
  IniRead,exepath,%applicationname%.ini,%A_Index%,exepath
  IniRead,workfolder,%applicationname%.ini,%A_Index%,workfolder
  IniRead,parameters,%applicationname%.ini,%A_Index%,parameters
  IniRead,iconpath,%applicationname%.ini,%A_Index%,iconpath
  IniRead,iconnumber,%applicationname%.ini,%A_Index%,iconnumber
  If (exepath="" Or exepath="ERROR")
  {
    GuiControl, +Icon, listview    ; Switch to icon view.
    GuiControl, +Redraw, listview  ; Improve performance by disabling redrawing during load.
    Gui,Show
    Return
  }
  If (name="" Or name="ERROR")
    SplitPath,exepath,name
  If (parameters="ERROR")
    parameters=
  If (iconpath="" Or iconpath="ERROR")
    iconpath:=exepath
  FileName:=iconpath  ; Must save it to a writable variable for use below.

  ; Build a unique extension ID to avoid characters that are illegal in variable names,
  ; such as dashes.  This unique ID method also performs better because finding an item
  ; in the array does not require search-loop.
  SplitPath, FileName,,, FileExt  ; Get the file's extension.
  If FileExt in EXE,ICO,ANI,CUR
  {
    ExtID := FileExt  ; Special ID as a placeholder.
    IconNumber = 0  ; Flag it as not found so that these types can each have a unique icon.
  }
  Else  ; Some other extension/file-type, so calculate its unique ID.
  {
    ExtID = 0  ; Initialize to handle extensions that are shorter than others.
    Loop 7     ; Limit the extension to 7 characters so that it fits in a 64-bit value.
    {
      StringMid, ExtChar, FileExt, A_Index, 1
      If not ExtChar  ; No more characters.
        break
      ; Derive a Unique ID by assigning a different bit position to each character:
      ExtID := ExtID | (Asc(ExtChar) << (8 * (A_Index - 1)))
    }
    ; Check if this file extension already has an icon in the ImageLists. If it does,
    ; several calls can be avoided and loading performance is greatly improved,
    ; especially for a folder containing hundreds of files:
    IconNumber := IconArray%ExtID%
  }
  If Not IconNumber  ; There is not yet any icon for this extension, so load it.
  {
    ; Get the high-quality small-icon associated with this file extension:
    If Not DllCall("Shell32\SHGetFileInfoA", "str", FileName, "uint", 0, "str", sfi, "uint", sfi_size, "uint", 0x101)  ; 0x101 is SHGFI_ICON+SHGFI_SMALLICON
      IconNumber = 9999999  ; Set it out of bounds to display a blank icon.
    Else ; Icon successfully loaded.
    {
      ; Extract the hIcon member from the structure:
      hIcon = 0
      Loop 4
        hIcon += *(&sfi + A_Index-1) << 8*(A_Index-1)
      ; Add the HICON directly to the small-icon and large-icon lists.
      ; Below uses +1 to convert the returned index from zero-based to one-based:
      IconNumber := DllCall("ImageList_ReplaceIcon", "uint", ImageListID1, "int", -1, "uint", hIcon) + 1
      DllCall("ImageList_ReplaceIcon", "uint", ImageListID2, "int", -1, "uint", hIcon)
      ; Now that it's been copied into the ImageLists, the original should be destroyed:
      DllCall("DestroyIcon", "uint", hIcon)
      ; Cache the icon to save memory and improve loading performance:
      IconArray%ExtID% := IconNumber
    }
  }

  ; Create the new row in the ListView and assign it the icon number determined above:
  LV_Add("Icon" . IconNumber, name, exepath, workfolder, parameters)
}
GuiControl, +Redraw, listview  ; Re-enable redrawing (it was disabled above).
LV_ModifyCol()  ; Auto-size each column to fit its contents.
LV_ModifyCol(3, 60) ; Make the Size column at little wider to reveal its header.
Return


LISTVIEW:
If A_GuiEvent = Normal  ; There are many other possible values the script can check.
{
  LV_GetText(name, A_EventInfo, 1)  ; Get the text of the first field.
  LV_GetText(exepath, A_EventInfo, 2)  ; Get the text of the second field.
  LV_GetText(workfolder, A_EventInfo, 3)
  LV_GetText(parameters, A_EventInfo, 4)
  Run,%exepath% "%1%" %parameters%,%workfolder%, UseErrorLevel
  If ErrorLevel
    MsgBox,Could not open "%exepath%.
  ExitApp
}
Return


GuiSize:  ; Expand or shrink the ListView in response to the user's resizing of the window.
If A_EventInfo = 1  ; The window has been minimized.  No action needed.
  Return
; Otherwise, the window has been resized or maximized. Resize the ListView to match.
GuiControl, Move, listview, % "W" . (A_GuiWidth) . " H" . (A_GuiHeight)
Return


GuiClose:
ExitApp

sri:
I need a way to specify the browser that will handle the opening of URLs per application.

For example I want all links in outlook to be opened in Maxthon where as links in other applications should continue to be opened w/ my default browser, Firefox.

Possible?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version