Aktuelle Zeit: 24.05.2013 22:13

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Datei-Selektion ohne Extension im WindowsXP-Explorer
BeitragVerfasst: 22.12.2010 20:44 
Offline
Benutzeravatar

Registriert: 22.04.2010 18:28
Wohnort: #PB_Any
Folgender Code selektiert nur das Präfix einer Datei wenn diese zum Umbenennen im Windows-Explorer angeklickt worden ist.

Es fehlt noch die Ausklammerung von Ordnern. Ordner werden aber nur berücksichtigt wenn sie sich im zweigeteilten Fenster auf der rechten Seite befinden und mindestens einen Punkt enthalten.

Beendet wird das Tool per Linksklick auf das rote Systrayicon.

Wer noch unter XP arbeitet kann den Code vielleicht gebrauchen denn ab Vista soll sowas ja nativ enthalten sein.
Code:
EnableExplicit
Global hWnd.l, Titel$, p.w, s.w, x.b

If OpenWindow(0, 0, 0, 0, 0, "", #PB_Window_Invisible)
  AddSysTrayIcon(0, WindowID(0), LoadIcon_(0, #IDI_ERROR))
EndIf

Repeat
  Delay(100)
 
  hWnd = FindWindow_("ExploreWClass", 0)
  If hWnd
    hWnd = FindWindowEx_(hWnd, 0, "SHELLDLL_DefView", 0)
    If hWnd
      hWnd = FindWindowEx_(hWnd, 0, "SysListView32", "FolderView")
      If hWnd
        hWnd = FindWindowEx_(hWnd, 0, "Edit", 0)
        If Not hWnd
          hWnd = FindWindow_("CabinetWClass", 0)
          If hWnd
            hWnd = FindWindowEx_(hWnd, 0, "SHELLDLL_DefView", 0)
            If hWnd
              hWnd = FindWindowEx_(hWnd, 0, "SysListView32", "FolderView")
              If hWnd
                hWnd = FindWindowEx_(hWnd, 0, "Edit", 0)
              EndIf
            EndIf
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
 
  If Not hWnd And x=1
    x=0
  EndIf
 
  If hWnd And x=0
    Titel$ = Space(1024)
    GetWindowText_(hWnd, @Titel$, 1024)
    p = Len(Titel$)
    s = Len(StringField(Titel$, CountString(Titel$, ".")+1, "."))+1
    SendMessage_(hWnd, #EM_SETSEL, 0, p-s)
    x=1
  EndIf

  Select WindowEvent()
    Case #PB_Event_SysTray
      Select EventGadget()
        Case 0
          Select EventType()
            Case #PB_EventType_LeftClick
              Break
          EndSelect
      EndSelect
  EndSelect
ForEver
End

_________________
[WinXP SP2 (x86)] [PB 4.51 (x86)] [Suche] [MsgBoxMaker] Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Datei-Selektion ohne Extension im WindowsXP-Explorer
BeitragVerfasst: 29.12.2010 16:03 
Offline
Benutzeravatar

Registriert: 22.04.2010 18:28
Wohnort: #PB_Any
1. überarbeitete Auflage:
Code:
EnableExplicit
Global hWnd.l, Length.l, Titel.s, p.w, s.w, x.b

If OpenWindow(0, 0, 0, 0, 0, "", #PB_Window_Invisible)
  AddSysTrayIcon(0, WindowID(0), LoadIcon_(0, #IDI_ERROR))
  AddWindowTimer(0, 0, 100)
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Timer
      Select EventTimer()
        Case 0
          hWnd = GetForegroundWindow_()
          If hWnd = FindWindow_("ExploreWClass", 0) Or FindWindow_("CabinetWClass", 0)
            hWnd = FindWindowEx_(hWnd, 0, "SHELLDLL_DefView", 0)
            If hWnd
              hWnd = FindWindowEx_(hWnd, 0, "SysListView32", "FolderView")
              If hWnd
                hWnd = FindWindowEx_(hWnd, 0, "Edit", 0)
                If hWnd And x=0
                  Length = GetWindowTextLength_(hWnd)
                  Titel = Space(Length)
                  GetWindowText_(hWnd, @Titel, @Length)
                  p = Len(Titel)
                  s = Len(StringField(Titel, CountString(Titel, ".")+1, "."))+1
                  If p-s > -1
                    SendMessage_(hWnd, #EM_SETSEL, 0, p-s)
                  EndIf
                  x=1
                ElseIf Not hWnd And x=1
                  x=0
                EndIf
              EndIf
            EndIf
          EndIf
      EndSelect
    Case #PB_Event_SysTray
      Select EventGadget()
        Case 0
          Select EventType()
            Case #PB_EventType_LeftClick
              Break
          EndSelect
      EndSelect
  EndSelect
ForEver
End

_________________
[WinXP SP2 (x86)] [PB 4.51 (x86)] [Suche] [MsgBoxMaker] Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye